note
	description: "[

		]"
	author:    "Jimmy J. Johnson"
	date:      "11/11/23"
	copyright: "Copyright (c) 2023, Jimmy J. Johnson"
	license:   "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"

class
	ALLIED_ORDER_OF_APPEARANCE_CHART_VIEW

inherit

	ORDER_OF_APPEARANCE_VIEW
		redefine
			create_interface_objects,
			initialize,
			add_widgets,
			add_units,
			add_miscellaneous_text,
			add_copyright_text,
			set_target,
			widget_factory,
			draw
		end

create
	make

feature {NONE} -- Initialization

	create_interface_objects
			-- Set up Current
		do
			Precursor {ORDER_OF_APPEARANCE_VIEW}
			create group_widgets.make
		end

	initialize
			-- Set up attributes
		do
			nationality := {NATIONALITY_CONSTANTS}.allied
			Precursor
			flag.hide
			big_marker.hide
			little_marker.hide
		end

	add_widgets
			-- Create the widgets for the chart
		do
			Precursor
			add_removals
			add_uncommitted_box
		end

	add_turns
			-- Add the "TURN X" and "TO date" texts
		local
			i: INTEGER
		do
			from i := 2
			until i > 9
			loop
				add_turn_text (i)
				i := i + 1
			end
		end

	add_units
			-- Add {ATTACK_UNIT_WIDGETS} to Current
		do
				-- Turn 1 widgets or on a different chart
				-- Turn 2
			add_model (positioned_widget (widget_factory.royal_sovereign_widget, Royal_sovereign_cp))
			add_model (positioned_widget (widget_factory.ramilies_widget, ramilies_cp))
			add_model (positioned_widget (widget_factory.resolution_widget, resolution_cp))
			add_model (positioned_widget (widget_factory.warspite_widget, warspite_cp))
			add_model (positioned_widget (widget_factory.indomitable_widget, indomitable_cp))
			add_model (positioned_widget (widget_factory.formidable_widget, formidable_cp))
			add_model (positioned_widget (widget_factory.cornwall_widget, cornwall_cp))
			add_model (positioned_widget (widget_factory.dorestshire_widget, dorestshire_cp))
			add_model (positioned_widget (widget_factory.new_mexico_widget, new_mexico_cp))
			add_model (positioned_widget (widget_factory.idaho_widget, idaho_cp))
			add_model (positioned_widget (widget_factory.tenth_af_widget, tenth_af_cp))
			add_model (positioned_widget (widget_factory.eleventh_af_widget, eleventh_af_cp))
				-- Turn 3
			add_model (positioned_widget (widget_factory.north_carolina_widget, north_carolina_cp))
			add_model (positioned_widget (widget_factory.mississippi_widget, mississippi_cp))
			add_model (positioned_widget (widget_factory.colorado_widget,colorado_cp))
			add_model (positioned_widget (widget_factory.marines_1_widget, marines_1_cp))
			add_model (positioned_widget (widget_factory.marines_2_widget, marines_2_cp))
			add_model (positioned_widget (widget_factory.raaf_widget, raaf_cp))
			add_model (positioned_widget (widget_factory.rnzaf_widget, rnzaf_cp))
			add_model (positioned_widget (widget_factory.valiant_widget, valiant_cp))
			add_model (positioned_widget (widget_factory.illustrious_widget, illustrious_cp))
				-- Turn 4
			add_model (positioned_widget (widget_factory.south_dakota_widget, south_dakota_cp))
			add_model (positioned_widget (widget_factory.indiana_widget, indiana_cp))
			add_model (positioned_widget (widget_factory.washington_widget, washington_cp))
			add_model (positioned_widget (widget_factory.wasp_widget, wasp_cp))
			add_model (positioned_widget (widget_factory.marine_widget, marine_cp))
			add_model (positioned_widget (widget_factory.thirteenth_af_widget, thirteenth_af_cp))
			add_model (positioned_widget (widget_factory.devonshire_widget, devonshire_cp))
			add_model (positioned_widget (widget_factory.shropshire_widget, shropshire_cp))
				-- Turn 5
			add_model (positioned_widget (widget_factory.massachusetts_widget, massachusetts_cp))
			add_model (positioned_widget (widget_factory.wichita_widget, wichita_cp))
			add_model (positioned_widget (widget_factory.victorious_widget, victorious_cp))
			add_model (positioned_widget (widget_factory.marines_3_widget, marines_3_cp))
			add_model (positioned_widget (widget_factory.fourteenth_af_widget, fourteenth_af_cp))
			add_model (positioned_widget (widget_factory.naval_widget, naval_cp))
				-- Turn 6
			add_model (positioned_widget (widget_factory.alabama_widget, alabama_cp))
			add_model (positioned_widget (widget_factory.essex_widget, essex_cp))
			add_model (positioned_widget (widget_factory.cv_10_widget, cv_10_cp))
			add_model (positioned_widget (widget_factory.cv_16_widget, cv_16_cp))
			add_model (positioned_widget (widget_factory.independence_widget, independence_cp))
			add_model (positioned_widget (widget_factory.princeton_widget, princeton_cp))
			add_model (positioned_widget (widget_factory.belleau_wood_widget, belleau_wood_cp))
			add_model (positioned_widget (widget_factory.cowpens_widget, cowpens_cp))
			add_model (positioned_widget (widget_factory.monterey_widget, monterey_cp))
			add_model (positioned_widget (widget_factory.baltimore_widget, baltimore_cp))
			add_model (positioned_widget (widget_factory.boston_widget, boston_cp))
			add_model (positioned_widget (widget_factory.marines_4_widget, marines_4_cp))
				-- Turn 7
			add_model (positioned_widget (widget_factory.iowa_widget, iowa_cp))
			add_model (positioned_widget (widget_factory.new_jersey_widget, new_jersey_cp))
			add_model (positioned_widget (widget_factory.intrepid_widget, intrepid_cp))
			add_model (positioned_widget (widget_factory.cv_12_widget, cv_12_cp))
			add_model (positioned_widget (widget_factory.bunker_hill_widget, bunker_hill_cp))
			add_model (positioned_widget (widget_factory.cv_18_widget, cv_18_cp))
			add_model (positioned_widget (widget_factory.bataan_widget, bataan_cp))
			add_model (positioned_widget (widget_factory.cabot_widget, cabot_cp))
			add_model (positioned_widget (widget_factory.langley_ii_widget, langley_ii_cp))
			add_model (positioned_widget (widget_factory.canberra_ii_widget, canberra_ii_cp))
			add_model (positioned_widget (widget_factory.quincy_ii_widget, quincy_ii_cp))
			add_model (positioned_widget (widget_factory.f_boat_widget, f_boat_cp))
				-- Turn 8
			add_model (positioned_widget (widget_factory.wisconsin_widget, wisconsin_cp))
			add_model (positioned_widget (widget_factory.missouri_widget, missouri_cp))
			add_model (positioned_widget (widget_factory.ticonderoga_widget, ticonderoga_cp))
			add_model (positioned_widget (widget_factory.san_jacinto_widget, san_jacinto_cp))
			add_model (positioned_widget (widget_factory.marines_5_widget, marines_5_cp))
				-- Turn 9
			add_model (positioned_widget (widget_factory.new_york_widget, new_york_cp))
			add_model (positioned_widget (widget_factory.texas_widget, texas_cp))
			add_model (positioned_widget (widget_factory.alaska_widget, alaska_cp))
			add_model (positioned_widget (widget_factory.franklin_widget, franklin_cp))
			add_model (positioned_widget (widget_factory.shangri_la_widget, shangri_la_cp))
		end

	add_removals
			-- All removal widgets and "REMOVALS" texts
		local
			wf: like widget_factory
		do
			wf := widget_factory
			world.extend (positioned_widget (wf.first_027_removal_widget, first_027_removal_cp))
			world.extend (positioned_widget (wf.second_027_removal_widget, second_027_removal_cp))
			world.extend (positioned_widget (wf.resolution_removal_widget, resolution_removal_cp))
			world.extend (positioned_widget (wf.revenge_removal_widget, revenge_removal_cp))
			world.extend (positioned_widget (wf.valiant_removal_widget, valiant_removal_cp))
			world.extend (positioned_widget (wf.warspite_removal_widget, warspite_removal_cp))
			world.extend (positioned_widget (wf.victorious_removal_widget, victorious_removal_cp))
			world.extend (positioned_widget (wf.third_027_removal_widget, third_027_removal_cp))
			world.extend (positioned_widget (wf.first_443_removal_widget, first_443_removal_cp))
				-- Set flipped
			wf.first_027_removal_widget.set_flipped
			wf.second_027_removal_widget.set_flipped
			wf.resolution_removal_widget.set_flipped
			wf.revenge_removal_widget.set_flipped
			wf.valiant_removal_widget.set_flipped
			wf.warspite_removal_widget.set_flipped
			wf.victorious_removal_widget.set_flipped
			wf.third_027_removal_widget.set_flipped
			wf.first_443_removal_widget.set_flipped
				-- Set flat
			wf.first_027_removal_widget.set_flat
			wf.second_027_removal_widget.set_flat
			wf.resolution_removal_widget.set_flat
			wf.revenge_removal_widget.set_flat
			wf.valiant_removal_widget.set_flat
			wf.warspite_removal_widget.set_flat
			wf.victorious_removal_widget.set_flat
			wf.third_027_removal_widget.set_flat
			wf.first_443_removal_widget.set_flat
		end

	add_uncommitted_box
			-- Add the uncommitted box, making spots for possible widgets
		local
			rec: EV_MODEL_RECTANGLE
			bot_rt: EV_COORDINATE
			t: EV_MODEL_TEXT
			cp: EV_COORDINATE
			wf: like widget_factory
		do
			create bot_rt.make (uncommitted_box_cp.x + (1.5 * ship_size).floor, uncommitted_box_cp.y + 2 * ship_size)
			create rec.make_with_points (uncommitted_box_cp, bot_rt)
			world.extend (rec)
			rec.set_foreground_color (color)
			rec.set_background_color (lightened (color, 2.8))
			t := new_text ("Groups W, X, Y, Z%N    uncommitted %N       on Turn 1", turn_x_losses_font)
			t.set_x_y (rec.x, rec.y)
			world.extend (t)
				-- Add widgets to the box using offset's from the `uncommitted_box_cp'
			create cp
			wf := widget_factory
				-- Group W - Enterprise
			cp.set_position (uncommitted_box_cp.x + gap_size, uncommitted_box_cp.y - 3 * gap_size)
			world.extend (positioned_widget (wf.chester_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.northampton_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.salt_lake_city_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.enterprise_widget, cp))
				-- Group X - Lexington
			cp.set_position (uncommitted_box_cp.x + 3 * gap_size, uncommitted_box_cp.y)
			world.extend (positioned_widget (wf.astoria_widget, cp))
			cp.set_position (cp.x + 1, cp.y - 2)
			world.extend (positioned_widget (wf.portland_widget, cp))
			cp.set_position (cp.x + 1, cp.y - 2)
			world.extend (positioned_widget (wf.chicago_widget, cp))
			cp.set_position (cp.x + 1, cp.y - 2)
			world.extend (positioned_widget (wf.lexington_widget, cp))
				-- Group Y -Saratoga
			cp.set_position (uncommitted_box_cp.x + 4 * gap_size, uncommitted_box_cp.y + ship_size + 2 * gap_size)
			world.extend (positioned_widget (wf.saratoga_widget, cp))
				-- Group Z - Hornet
			cp.set_position (uncommitted_box_cp.x - gap_size, uncommitted_box_cp.y + ship_size + gap_size)
			world.extend (positioned_widget (wf.quincy_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.vincennes_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.yorktown_widget, cp))
			cp.set_position (cp.x - 1, cp.y - 2)
			world.extend (positioned_widget (wf.hornet_widget, cp))
				-- Hide Group W
			wf.chester_widget.hide
			wf.northampton_widget.hide
			wf.salt_lake_city_widget.hide
			wf.enterprise_widget.hide
				-- Hide Group X
			wf.astoria_widget.hide
			wf.portland_widget.hide
			wf.chicago_widget.hide
			wf.lexington_widget.hide
				-- Hide Group Y
			wf.saratoga_widget.hide
				-- Hide group Z
			wf.quincy_widget.hide
			wf.vincennes_widget.hide
			wf.yorktown_widget.hide
			wf.hornet_widget.hide
		end

	add_miscellaneous_text
			-- Add the remaining text fields
		local
			cp: EV_COORDINATE
			t: EV_MODEL_TEXT
			s: STRING
		do
			create cp
			s := "      AUSTRALIA  1 Repair Point Each Turn %N"
			s := s + "AT CEYLON  1 Repair Point Each Turn"
			t := new_text (s, at_port_font)
			cp.set (resolution_cp.x, turn_2_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (" 3 Repair Points %N PEARL HARBOR", at_port_font)
			cp.set (new_mexico_cp.x - gap_size, turn_2_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      6 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_3_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      9 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_4_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      12 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_5_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      15 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_6_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      15 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_7_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("      15 Repair Points %N AT PEARL HARBOR", at_port_font)
			cp.set (colorado_cp.x, turn_8_cp.y)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("AT PEARL HARBOR   15 Repair Points", at_port_font)
			cp.set (colorado_cp.x, new_york_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
				-- some more text
			t := new_text ("AT CEYLON", at_port_font)
			cp.set (valiant_cp.x + 2 * gap_size, valiant_cp.y - 3 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text ("AT CEYLON", at_port_font)
			cp.set (devonshire_cp.x + 2 * gap_size, devonshire_cp.y - 3 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
				-- also available
			t := new_text ("  Also %NAvailable", turn_x_losses_font)
			cp.set (tenth_af_cp.x, tenth_af_cp.y - 3 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			s := "Also Available"
			t := new_text (s, turn_x_losses_font)
			cp.set (raaf_cp.x + 2 * gap_size, raaf_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (s, turn_x_losses_font)
			cp.set (marine_cp.x + 2 * gap_size, marine_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (s, turn_x_losses_font)
			cp.set (fourteenth_af_cp.x + 2 * gap_size, fourteenth_af_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
				-- Also Available for F-boat
			t := new_text ("Also Available", turn_x_losses_font)
			cp.set (f_boat_cp.x, f_boat_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
				-- Replace with texts
			s := "(replace with other British if sunk)"
			t := new_text (s, small_font)
			cp.set (first_027_removal_cp.x, first_027_removal_cp.y + ship_size + gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (s, small_font)
			cp.set (revenge_removal_cp.x, revenge_removal_cp.y + ship_size + gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			s := "(replace with other %NBritish if sunk)"
			t := new_text (s, small_font)
			cp.set (victorious_removal_cp.x + ship_size + gap_size, victorious_removal_cp.y + gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
				-- REMOVAL texts
			s := "REMOVALS"
			t := new_text (s, turn_x_losses_font)
			cp.set (first_027_removal_cp.x + 5 * gap_size, first_027_removal_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (s, turn_x_losses_font)
			cp.set (revenge_removal_cp.x + 5 * gap_size, revenge_removal_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			t := new_text (s, turn_x_losses_font)
			cp.set (third_027_removal_cp.x + 5 * gap_size, third_027_removal_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
			s := "REMOVAL"
			t := new_text (s, turn_x_losses_font)
			cp.set (victorious_removal_cp.x + gap_size, victorious_removal_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
		end

	add_copyright_text
			-- Add the copy-right notices to each chart
		local
			cp: EV_COORDINATE
			t: EV_MODEL_TEXT
			s: STRING
			f: EV_FONT
		do
			create cp
				-- Copyright
			s := "Copyright 1977,  The Avalon Hill Game Co. Balto, MD  Printed in U.S.A."
			f := small_font
			t := new_text (s, f)
			cp.set (bottom_right_cp.x - t.width - gap_size, bottom_right_cp.y - 2 * gap_size)
			t.set_point_position (cp.x, cp.y)
			world.extend (t)
		end

feature -- Access

	location: LOCATION
			-- A {LOCATION} from the {VITP_GAME} used in `draw' to determine
			-- if a unit is on this chart or somewhere else (i.e. in the game.)
		do
			Result := game.allied_oa_chart
		end

	title: STRING = "Allied Order of Appearance Chart"
			-- The text at the top of this chart

feature -- Element change

	set_target (a_item: like game)
			-- Associate `a_item' with Current.
		local
			afw: like widget_factory.allied_forces_widgets
		do
			Precursor (a_item)
			afw := widget_factory.allied_forces_widgets
				-- Make the widgets white
--			afw.first_027_removal_widget.set_flipped
--			afw.second_027_removal_widget.set_flipped
--			afw.resolution_removal_widget.set_flipped
--			afw.revenge_removal_widget.set_flipped
--			afw.valiant_removal_widget.set_flipped
--			afw.warspite_removal_widget.set_flipped
--			afw.victorious_removal_widget.set_flipped
--			afw.third_027_removal_widget.set_flipped
--			afw.first_443_removal_widget.set_flipped
--				-- Make it look like print
--			afw.first_027_removal_widget.set_flat
--			afw.second_027_removal_widget.set_flat
--			afw.resolution_removal_widget.set_flat
--			afw.revenge_removal_widget.set_flat
--			afw.valiant_removal_widget.set_flat
--			afw.warspite_removal_widget.set_flat
--			afw.victorious_removal_widget.set_flat
--			afw.third_027_removal_widget.set_flat
--			afw.first_443_removal_widget.set_flat
		end

feature -- Basic operations

	draw
			-- Redraw the view.
			-- Redefined to account for "Location Uncertain" widgets from turn 1.
		local
			t: VITP_WIDGET_TABLE [ATTACK_UNIT_WIDGET, ATTACK_UNIT]
			w: ATTACK_UNIT_WIDGET
--			s: STRING
			u: ATTACK_UNIT
		do
			Precursor
			from group_widgets.start
			until group_widgets.after
			loop
				w := group_widgets.item
				if not w.is_view_empty and then w.unit.location = location then
					w.show
				else
					w.hide
				end
				group_widgets.forth
			end
		end

feature {NONE} -- Implementation

	widget_factory: ALLIED_FORCES_WIDGET_FACTORY
			-- Container for all the widget (e.g. attack widget,
			-- location widget, etc)

	group_widgets: LINKED_LIST [SHIP_WIDGET]
			-- To keep track of the "Location Uncertain" widgets, so they
			-- can be shown in `draw' only if they are on this chart.

feature {NONE} -- Control point constants

	bottom_right_cp: EV_COORDINATE once create Result.make (260, 355) end
		-- Change the Turn-x control points
	turn_1_cp: EV_COORDINATE do create Result end
	turn_2_cp: EV_COORDINATE do create Result.make (7, 14) end
	turn_3_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 50) end
	turn_4_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 85) end
	turn_5_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 120) end
	turn_6_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 155) end
	turn_7_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 215) end
	turn_8_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 275) end
	turn_9_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, 310) end
		-- To some date text
	to_dec_41_cp: EV_COORDINATE do create Result.make (turn_1_cp.x + 2, turn_1_cp.y + 8)  end
	to_may_42_cp: EV_COORDINATE do create Result.make (turn_2_cp.x + 2, turn_2_cp.y + 8)  end
	to_sep_42_cp: EV_COORDINATE do create Result.make (turn_3_cp.x + 2, turn_3_cp.y + 8)  end
	to_jan_43_cp: EV_COORDINATE do create Result.make (turn_4_cp.x + 2, turn_4_cp.y + 8)  end
	to_jun_43_cp: EV_COORDINATE do create Result.make (turn_5_cp.x + 2, turn_5_cp.y + 8)  end
	to_jan_44_cp: EV_COORDINATE do create Result.make (turn_6_cp.x + 2, turn_6_cp.y + 8)  end
	to_may_44_cp: EV_COORDINATE do create Result.make (turn_7_cp.x + 2, turn_7_cp.y + 8)  end
	to_oct_44_cp: EV_COORDINATE do create Result.make (turn_8_cp.x + 2, turn_8_cp.y + 8)  end
	to_jan_45_cp: EV_COORDINATE do create Result.make (turn_9_cp.x + 2, turn_9_cp.y + 8)  end
		-- Change the Turn-x-losses control points
	turn_1_losses_cp: EV_COORDINATE do create Result.make (194, 64) end
	turn_2_losses_cp: EV_COORDINATE do create Result.make (204, 98) end
	turn_3_losses_cp: EV_COORDINATE do create Result.make (200, 132) end
	turn_4_losses_cp: EV_COORDINATE do create Result.make (194, 192) end
	turn_5_losses_cp: EV_COORDINATE do create Result.make (194, 254) end
	turn_6_losses_cp: EV_COORDINATE do create Result.make (194, 288) end
	turn_7_losses_cp: EV_COORDINATE do create Result.make (194, 324) end

		-- Turn 2
	Royal_sovereign_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, Turn_2_cp.y + 12) end
	ramilies_cp: EV_COORDINATE do create Result.make (royal_sovereign_cp.x + ship_size, royal_sovereign_cp.y) end
	resolution_cp: EV_COORDINATE do create Result.make (ramilies_cp.x + ship_size, royal_sovereign_cp.y) end
	warspite_cp: EV_COORDINATE do create Result.make (resolution_cp.x + ship_size, royal_sovereign_cp.y) end
	indomitable_cp: EV_COORDINATE do create Result.make (warspite_cp.x + ship_size, royal_sovereign_cp.y) end
	formidable_cp: EV_COORDINATE do create Result.make (indomitable_cp.x + ship_size, royal_sovereign_cp.y) end
	cornwall_cp: EV_COORDINATE do create Result.make (formidable_cp.x + ship_size, royal_sovereign_cp.y) end
	dorestshire_cp: EV_COORDINATE do create Result.make (cornwall_cp.x + ship_size, royal_sovereign_cp.y) end
	new_mexico_cp: EV_COORDINATE do create Result.make (dorestshire_cp.x + ship_size + gap_size, royal_sovereign_cp.y) end
	idaho_cp: EV_COORDINATE do create Result.make (new_mexico_cp.x + ship_size, royal_sovereign_cp.y) end
	uncommitted_box_cp: EV_COORDINATE do create Result.make (idaho_cp.x + ship_size, Turn_2_cp.y + gap_size)  end
	tenth_af_cp: EV_COORDINATE do create Result.make (240, 22) end
	eleventh_af_cp: EV_COORDINATE do create Result.make (tenth_af_cp.x, tenth_af_cp.y + air_size) end
		-- Turn 3
	north_carolina_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, Turn_3_cp.y + 12) end
	mississippi_cp: EV_COORDINATE do create Result.make (north_carolina_cp.x + ship_size, north_carolina_cp.y) end
	colorado_cp: EV_COORDINATE do create Result.make (mississippi_cp.x + ship_size, north_carolina_cp.y) end
	marines_1_cp: EV_COORDINATE do create Result.make (colorado_cp.x + ship_size, north_carolina_cp.y + ship_size - air_size) end
	marines_2_cp: EV_COORDINATE do create Result.make (marines_1_cp.x + air_size, marines_1_cp.y) end
	raaf_cp: EV_COORDINATE do create Result.make (marines_2_cp.x + air_size + 2 * gap_size, marines_1_cp.y) end
	rnzaf_cp: EV_COORDINATE do create Result.make (raaf_cp.x + air_size, marines_1_cp.y) end
	valiant_cp: EV_COORDINATE do create Result.make (rnzaf_cp.x + air_size + 4 * gap_size, north_carolina_cp.y) end
	illustrious_cp: EV_COORDINATE do create Result.make (valiant_cp.x + ship_size, north_carolina_cp.y) end
		-- Turn 4
	south_dakota_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_4_cp.y + 12) end
	indiana_cp: EV_COORDINATE do create Result.make (south_dakota_cp.x + ship_size, south_dakota_cp.y) end
	washington_cp: EV_COORDINATE do create Result.make (indiana_cp.x + ship_size, south_dakota_cp.y) end
	wasp_cp: EV_COORDINATE do create Result.make (washington_cp.x + ship_size, south_dakota_cp.y) end
	marine_cp: EV_COORDINATE do create Result.make (wasp_cp.x + ship_size + gap_size, south_dakota_cp.y + ship_size - air_size) end
	thirteenth_af_cp: EV_COORDINATE do create Result.make (marine_cp.x + air_size, marine_cp.y) end
	devonshire_cp: EV_COORDINATE do create Result.make (thirteenth_af_cp.x + air_size + gap_size, south_dakota_cp.y) end
	shropshire_cp: EV_COORDINATE do create Result.make (devonshire_cp.x + ship_size, south_dakota_cp.y) end
	first_027_removal_cp: EV_COORDINATE do create Result.make (shropshire_cp.x + ship_size + gap_size, south_dakota_cp.y) end
	second_027_removal_cp: EV_COORDINATE do create Result.make (first_027_removal_cp.x + ship_size, south_dakota_cp.y) end
		-- Turn 5
	massachusetts_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_5_cp.y + 12) end
	wichita_cp: EV_COORDINATE do create Result.make (massachusetts_cp.x + ship_size, massachusetts_cp.y) end
	victorious_cp: EV_COORDINATE do create Result.make (wichita_cp.x + ship_size, massachusetts_cp.y) end
	marines_3_cp: EV_COORDINATE do create Result.make (victorious_cp.x + ship_size, massachusetts_cp.y + ship_size - air_size) end
	fourteenth_af_cp: EV_COORDINATE do create Result.make (marines_3_cp.x + air_size + gap_size, marines_3_cp.y) end
	naval_cp: EV_COORDINATE do create Result.make (fourteenth_af_cp.x + air_size, fourteenth_af_cp.y) end
	resolution_removal_cp: EV_COORDINATE do create Result.make (naval_cp.x + air_size + 2 * gap_size, massachusetts_cp.y) end
	revenge_removal_cp: EV_COORDINATE do create Result.make (resolution_removal_cp.x + ship_size, massachusetts_cp.y) end
	valiant_removal_cp: EV_COORDINATE do create Result.make (revenge_removal_cp.x + ship_size, massachusetts_cp.y) end
	warspite_removal_cp: EV_COORDINATE do create Result.make (valiant_removal_cp.x + ship_size, massachusetts_cp.y) end
		-- Turn 6
	alabama_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_6_cp.y + 12) end
	essex_cp: EV_COORDINATE do create Result.make (alabama_cp.x + ship_size, alabama_cp.y) end
	cv_10_cp: EV_COORDINATE do create Result.make (essex_cp.x + ship_size, alabama_cp.y) end
	cv_16_cp: EV_COORDINATE do create Result.make (cv_10_cp.x + ship_size, alabama_cp.y) end
	independence_cp: EV_COORDINATE do create Result.make (cv_16_cp.x + ship_size, alabama_cp.y) end
	princeton_cp: EV_COORDINATE do create Result.make (independence_cp.x + ship_size, alabama_cp.y) end
	belleau_wood_cp: EV_COORDINATE do create Result.make (princeton_cp.x + ship_size, alabama_cp.y) end
	cowpens_cp: EV_COORDINATE do create Result.make (belleau_wood_cp.x + ship_size, alabama_cp.y) end
	monterey_cp: EV_COORDINATE do create Result.make (cowpens_cp.x + ship_size, alabama_cp.y) end
	baltimore_cp: EV_COORDINATE do create Result.make (monterey_cp.x + ship_size, alabama_cp.y) end
	boston_cp: EV_COORDINATE do create Result.make (baltimore_cp.x + ship_size, alabama_cp.y) end
	marines_4_cp: EV_COORDINATE do create Result.make (boston_cp.x + ship_size, alabama_cp.y + ship_size - air_size) end
	victorious_removal_cp: EV_COORDINATE do create Result.make (alabama_cp.x, turn_6_cp.y + 39) end
		-- Turn 7
	iowa_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_7_cp.y + 12) end
	new_jersey_cp: EV_COORDINATE do create Result.make (iowa_cp.x + ship_size, iowa_cp.y) end
	intrepid_cp: EV_COORDINATE do create Result.make (new_jersey_cp.x + ship_size, iowa_cp.y) end
	cv_12_cp: EV_COORDINATE do create Result.make (intrepid_cp.x + ship_size, iowa_cp.y) end
	bunker_hill_cp: EV_COORDINATE do create Result.make (cv_12_cp.x + ship_size, iowa_cp.y) end
	cv_18_cp: EV_COORDINATE do create Result.make (bunker_hill_cp.x + ship_size, iowa_cp.y) end
	bataan_cp: EV_COORDINATE do create Result.make (cv_18_cp.x + ship_size, iowa_cp.y) end
	cabot_cp: EV_COORDINATE do create Result.make (bataan_cp.x + ship_size, iowa_cp.y) end
	langley_ii_cp: EV_COORDINATE do create Result.make (cabot_cp.x + ship_size, iowa_cp.y) end
	canberra_ii_cp: EV_COORDINATE do create Result.make (langley_ii_cp.x + ship_size, iowa_cp.y) end
	quincy_ii_cp: EV_COORDINATE do create Result.make (canberra_ii_cp.x + ship_size, iowa_cp.y) end
	f_boat_cp: EV_COORDINATE do create Result.make (quincy_ii_cp.x + ship_size + 4 * gap_size, iowa_cp.y) end
	third_027_removal_cp: EV_COORDINATE do create Result.make (iowa_cp.x, iowa_cp.y + ship_size + 3 * gap_size) end
	first_443_removal_cp: EV_COORDINATE do create Result.make (third_027_removal_cp.x + ship_size, third_027_removal_cp.y) end
		-- Turn 8
	wisconsin_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_8_cp.y + 12) end
	missouri_cp: EV_COORDINATE do create Result.make (wisconsin_cp.x + ship_size, wisconsin_cp.y) end
	ticonderoga_cp: EV_COORDINATE do create Result.make (missouri_cp.x + ship_size, wisconsin_cp.y) end
	san_jacinto_cp: EV_COORDINATE do create Result.make (ticonderoga_cp.x + ship_size, wisconsin_cp.y) end
	marines_5_cp: EV_COORDINATE do create Result.make (san_jacinto_cp.x + ship_size, wisconsin_cp.y + ship_size - air_size) end
		-- Turn_9
	new_york_cp: EV_COORDINATE do create Result.make (turn_2_cp.x, turn_9_cp.y + 12) end
	texas_cp: EV_COORDINATE do create Result.make (new_york_cp.x + ship_size, new_york_cp.y) end
	alaska_cp: EV_COORDINATE do create Result.make (texas_cp.x + ship_size, new_york_cp.y) end
	franklin_cp: EV_COORDINATE do create Result.make (alaska_cp.x + ship_size, new_york_cp.y) end
	shangri_la_cp: EV_COORDINATE do create Result.make (franklin_cp.x + ship_size, new_york_cp.y) end

end
