note description: "[ Class incapsulating each {VITP_WIDGET} in VITP and responsible for the creation of those attributes. Decomposed into this class so that {WIDGET_FACTORY} would not be such a large file. These attributes are used as pseudo-constants. I elected not to use once features because the order of calls to once featues may not work for persistence. ]" author: "Jimmy J. Johnson" deferred class VITP_GAME_ATTRIBUTES feature -- Access vitp: VITP_GAME -- The {VITP_GAME} to which these widgets will be paired. deferred end world: EV_MODEL_WORLD -- The world to which some or all of these widgets can be -- added by calls to the `extend_xxx' features. -- Effected by descendents of are {EV_CELL_VIEW}. deferred end feature -- Basic operations extend_sea_areas -- Add each {SEA_AREA_WIDGET} to `world' do -- Add widgets to the view world.extend (bay_of_bengal_widget) world.extend (central_pacific_ocean_widget) world.extend (coral_sea_widget) world.extend (hawaiian_islands_widget) world.extend (indian_ocean_widget) world.extend (indonesia_widget) world.extend (japanese_islands_widget) world.extend (marianas_islands_widget) world.extend (north_pacific_ocean_widget) world.extend (south_pacific_ocean_widget) world.extend (us_mandate_widget) world.extend (marshall_islands_widget) world.extend (aleutian_islands_widget) -- test code: -- Pick the Houston (stationed in Phillipines) -- It is droppable on Indonesia and no where else -- Indonesia_widget.drop_actions.world.extend (agent on_move (?, Indonesia)) -- See `build_attack_unit_widgets' where trying to add pick actions. end extend_ports -- Add each {PORT_WIDGET} to "world'. do world.extend (andaman_islands_widget) world.extend (attu_widget) world.extend (australia_widget) world.extend (ceylon_widget) world.extend (dutch_harbor_widget) world.extend (guadalcanal_widget) world.extend (johnston_island_widget) world.extend (kwajalein_widget) world.extend (lae_widget) world.extend (maloelap_widget) world.extend (midway_widget) world.extend (new_hebrides_widget) world.extend (okinawa_widget) world.extend (pearl_harbor_widget) world.extend (philippines_widget) world.extend (port_moresby_widget) world.extend (saigon_widget) world.extend (saipan_widget) world.extend (samoa_widget) world.extend (singapore_widget) world.extend (truk_widget) world.extend (yokosuka_navy_yard_widget) end extend_attack_unit_widgets -- Put each {ATTACK_UNIT_WIDGET} into `world'. do extend_japanese_attack_unit_widgets extend_allied_attack_unit_widgets end extend_allied_attack_unit_widgets -- Put each Allied {ATTACK_UNIT_WIDGET} into `world. do extend_allied_starting_forces_widgets extend_remaining_allied_unit_widgets end extend_allied_starting_forces_widgets -- Put each allied starting-forces {ATTACK_UNIT_WIDGET} into `world'. do -- On Battleship Row (Pearl Harbor) world.extend (nevada_widget) world.extend (arizona_widget) world.extend (west_virginia_widget) world.extend (tennessee_widget) world.extend (oklahoma_widget) world.extend (maryland_widget) world.extend (california_widget) world.extend (pennsylvania_widget) world.extend (new_orleans_widget) world.extend (san_francisco_widget) world.extend (seventh_af_widget) -- At sea (cannot move) world.extend (hermes_widget) world.extend (revenge_widget) world.extend (prince_of_wales_widget) world.extend (repulse_widget) world.extend (fifth_af_widget) world.extend (louisville_widget) world.extend (pensacola_widget) world.extend (indianapolis_widget) world.extend (minneapolis_widget) -- In port (may move) world.extend (houston_widget) world.extend (exeter_widget) world.extend (de_ruyter_widget) world.extend (australia_ship_widget) world.extend (canberra_widget) -- Location Uncertain, group W world.extend (enterprise_widget) world.extend (salt_lake_city_widget) world.extend (northampton_widget) world.extend (chester_widget) -- Location Uncertain, group X world.extend (lexington_widget) world.extend (chicago_widget) world.extend (portland_widget) world.extend (astoria_widget) -- Location Uncertain, group Y world.extend (saratoga_widget) -- Location Uncertain, group W world.extend (hornet_widget) world.extend (yorktown_widget) world.extend (vincennes_widget) world.extend (quincy_widget) end extend_remaining_allied_unit_widgets -- Put turn-two to turn-nine allied {ATTACK_UNIT_WIDGET} into `world'. do -- Turn 2 world.extend (royal_sovereign_widget) world.extend (ramilies_widget) world.extend (resolution_widget) world.extend (warspite_widget) world.extend (indomitable_widget) world.extend (formidable_widget) world.extend (cornwall_widget) world.extend (dorestshire_widget) world.extend (new_mexico_widget) world.extend (idaho_widget) world.extend (tenth_af_widget) world.extend (eleventh_af_widget) -- Turn 3 world.extend (north_carolina_widget) world.extend (mississippi_widget) world.extend (colorado_widget) world.extend (marines_1_widget) world.extend (marines_2_widget) world.extend (raaf_widget) world.extend (rnzaf_widget) world.extend (valiant_widget) world.extend (illustrious_widget) -- Turn 4 world.extend (south_dakota_widget) world.extend (indiana_widget) world.extend (washington_widget) world.extend (wasp_widget) world.extend (marine_widget) world.extend (thirteenth_af_widget) world.extend (devonshire_widget) world.extend (shropshire_widget) -- Turn 5 world.extend (massachusetts_widget) world.extend (wichita_widget) world.extend (victorious_widget) world.extend (marines_3_widget) world.extend (fourteenth_af_widget) world.extend (naval_widget) -- Turn 6 world.extend (alabama_widget) world.extend (essex_widget) world.extend (cv_10_widget) world.extend (cv_16_widget) world.extend (independence_widget) world.extend (princeton_widget) world.extend (belleau_wood_widget) world.extend (cowpens_widget) world.extend (monterey_widget) world.extend (baltimore_widget) world.extend (boston_widget) world.extend (marines_4_widget) -- Turn 7 world.extend (iowa_widget) world.extend (new_jersey_widget) world.extend (intrepid_widget) world.extend (cv_12_widget) world.extend (bunker_hill_widget) world.extend (cv_18_widget) world.extend (bataan_widget) world.extend (cabot_widget) world.extend (langley_ii_widget) world.extend (canbera_ii_widget) world.extend (quincy_ii_widget) world.extend (f_boat_widget) -- Turn 8 world.extend (wisconsin_widget) world.extend (missouri_widget) world.extend (ticonderoga_widget) world.extend (san_jacinto_widget) world.extend (marines_5_widget) -- Turn 9 world.extend (new_york_widget) world.extend (texas_widget) world.extend (alaska_widget) world.extend (franklin_widget) world.extend (shangri_la_widget) end extend_japanese_attack_unit_widgets -- Put each Japanese {ATTACK_UNIT_WIDGET} into `world'. do -- Turn 1, row 1 world.extend (shokaku_widget) world.extend (zuikaku_widget) world.extend (akagi_widget) world.extend (kaga_widget) world.extend (soryu_widget) world.extend (hiryu_widget) world.extend (ryujo_widget) world.extend (hosho_widget) world.extend (zuiho_widget) world.extend (mutsu_widget) world.extend (nagato_widget) world.extend (fuso_widget) -- Turn 1, row 2 world.extend (hyuga_widget) world.extend (ise_widget) world.extend (yamashiro_widget) world.extend (haruna_widget) world.extend (hiei_widget) world.extend (kirishima_widget) world.extend (kongo_widget) world.extend (ashigara_widget) world.extend (atago_widget) world.extend (chokai_widget) world.extend (haguro_widget) world.extend (maya_widget) -- Turn 1, row 3 world.extend (myoko_widget) world.extend (nachi_widget) world.extend (takao_widget) world.extend (chikuma_widget) world.extend (kumano_widget) world.extend (mikuma_widget) world.extend (mogami_widget) world.extend (suzuya_widget) world.extend (tone_widget) world.extend (aoba_widget) world.extend (furutaka_widget) world.extend (kako_widget) -- Turn 1, row 4 world.extend (kinugasa_widget) world.extend (kitakami_widget) world.extend (oi_widget) world.extend (yokosuka_widget) -- Turn 1, also available world.extend (airflot_21_widget) world.extend (airflot_22_widget) world.extend (airflot_23_widget) world.extend (airflot_24_widget) world.extend (airflot_25_widget) world.extend (airflot_26_widget) world.extend (i_boat_widget) -- Turn 2 world.extend (shoho_widget) world.extend (junyo_widget) world.extend (sasebo_widget) -- Turn 3 world.extend (hiyo_widget) world.extend (yamato_widget) world.extend (kure_widget) -- Turn 5 world.extend (musashi_widget) -- Turn 7 world.extend (chiyoda_widget) world.extend (chitose_widget) world.extend (ryuho_widget) world.extend (taiho_widget) -- Turn 8 world.extend (unryu_widget) world.extend (amagi_widget) -- Turn 9 world.extend (katsuragi_widget) world.extend (shinano_widget) end pair_widgets -- Associate the matching widget with a {VITP_ITEM} from -- the {VITP_GAME} (i.e. from `vitp'). -- Called by `set_target'. require has_game: -- ??? do pair_location_widgets pair_attack_unit_widgets end pair_location_widgets -- Associate each {PORT_WIDGET} and {SEA_AREA_WIDGET} (i.e. each -- {LOCATION_WIDGET} with the appropriate item from `vitp. do -- location_widgets.wipe_out -- Add each {SEA_AREA_WIDGET} to table pair_port_widgets pair_sea_area_widgets end pair_sea_area_widgets -- Associate the matching {SEA_AREA_WIDGET} with a {SEA_AREA} from -- the {VITP_GAME} attached to `vitp'. do -- sea_area_widgets.wipe_out -- Add to table sea_area_widgets.force (Aleutian_islands_widget, vitp.Aleutian_islands) sea_area_widgets.force (Bay_of_bengal_widget, vitp.Bay_of_bengal) sea_area_widgets.force (Central_pacific_ocean_widget, vitp.Central_pacific_ocean) sea_area_widgets.force (Coral_sea_widget, vitp.Coral_sea) sea_area_widgets.force (Hawaiian_islands_widget, vitp.Hawaiian_islands) sea_area_widgets.force (Indian_ocean_widget, vitp.Indian_ocean) sea_area_widgets.force (Indonesia_widget, vitp.Indonesia) sea_area_widgets.force (Japanese_islands_widget, vitp.Japanese_islands) sea_area_widgets.force (Marianas_islands_widget, vitp.Marianas_islands) sea_area_widgets.force (Marshall_islands_widget, vitp.Marshall_islands) sea_area_widgets.force (North_pacific_ocean_widget, vitp.North_pacific_ocean) sea_area_widgets.force (South_pacific_ocean_widget, vitp.South_pacific_ocean) sea_area_widgets.force (US_mandate_widget, vitp.US_mandate) -- Also pair in `location_widgets' location_widgets.merge (sea_area_widgets) end pair_port_widgets -- Associate the matching {PORT_WIDGET} with a {PORT} from -- the {VITP_GAME} attached to `vitp'. do -- port_widgets.wipe_out -- Add to table port_widgets.force (Andaman_islands_widget, vitp.Andaman_islands) port_widgets.force (Attu_widget, vitp.Attu) port_widgets.force (Australia_widget, vitp.Australia) port_widgets.force (Ceylon_widget, vitp.Ceylon) port_widgets.force (Dutch_harbor_widget, vitp.Dutch_harbor) port_widgets.force (Guadalcanal_widget, vitp.Guadalcanal) port_widgets.force (Johnston_island_widget, vitp.Johnston_island) port_widgets.force (Kwajalein_widget, vitp.Kwajalein) port_widgets.force (Lae_widget, vitp.Lae) port_widgets.force (Maloelap_widget, vitp.Maloelap) port_widgets.force (Midway_widget, vitp.Midway) port_widgets.force (New_hebrides_widget, vitp.New_hebrides) port_widgets.force (Okinawa_widget, vitp.Okinawa) port_widgets.force (Pearl_harbor_widget, vitp.Pearl_harbor) port_widgets.force (Philippines_widget, vitp.Philippines) port_widgets.force (Port_moresby_widget, vitp.Port_moresby) port_widgets.force (Saigon_widget, vitp.Saigon) port_widgets.force (Saipan_widget, vitp.Saipan) port_widgets.force (Samoa_widget, vitp.Samoa) port_widgets.force (Singapore_widget, vitp.Singapore) port_widgets.force (Truk_widget, vitp.Truk) port_widgets.force (Yokosuka_navy_yard_widget, vitp.Yokosuka_navy_yard) -- Also pair in `location_widgets' location_widgets.merge (port_widgets) end pair_attack_unit_widgets -- Associate each {ATTACK_UNIT_WIDGET} with an {ATTACK_UNIT} from -- the {VITP_GAME} attached to `vitp. do pair_japanese_attack_unit_widgets pair_allied_attack_unit_widgets end pair_allied_attack_unit_widgets -- Associate each Allied {ATTACK_UNIT_WIDGET} with an {ATTACK_UNIT} from -- the {VITP_GAME} attached to `vitp. do pair_allied_starting_forces_widgets pair_remaining_allied_attack_unit_widgets end pair_allied_starting_forces_widgets -- Associate each Allied starting-forces {ATTACK_UNIT_WIDGET} with -- an {ATTACK_UNIT} from the {VITP_GAME} attached to `vitp. do -- On Battleship Row (Pearl Harbor) attack_widgets.force (nevada_widget, vitp.nevada) attack_widgets.force (arizona_widget, vitp.arizona) attack_widgets.force (west_virginia_widget, vitp.west_virginia) attack_widgets.force (tennessee_widget, vitp.tennessee) attack_widgets.force (oklahoma_widget, vitp.oklahoma) attack_widgets.force (maryland_widget, vitp.maryland) attack_widgets.force (california_widget, vitp.california) attack_widgets.force (pennsylvania_widget, vitp.pennsylvania) attack_widgets.force (new_orleans_widget, vitp.new_orleans) attack_widgets.force (san_francisco_widget, vitp.san_francisco) attack_widgets.force (seventh_af_widget, vitp.seventh_af) -- At sea (cannot move) attack_widgets.force (hermes_widget, vitp.hermes) attack_widgets.force (revenge_widget, vitp.revenge) attack_widgets.force (prince_of_wales_widget, vitp.prince_of_wales) attack_widgets.force (repulse_widget, vitp.repulse) attack_widgets.force (fifth_af_widget, vitp.fifth_af) attack_widgets.force (louisville_widget, vitp.louisville) attack_widgets.force (pensacola_widget, vitp.pensacola) attack_widgets.force (indianapolis_widget, vitp.indianapolis) attack_widgets.force (minneapolis_widget, vitp.minneapolis) -- In port (may move) attack_widgets.force (houston_widget, vitp.houston) attack_widgets.force (exeter_widget, vitp.exeter) attack_widgets.force (de_ruyter_widget, vitp.de_ruyter) attack_widgets.force (australia_ship_widget, vitp.australia_ship) attack_widgets.force (canberra_widget, vitp.canberra) -- Location Uncertain, group W attack_widgets.force (enterprise_widget, vitp.enterprise) attack_widgets.force (salt_lake_city_widget, vitp.salt_lake_city) attack_widgets.force (northampton_widget, vitp.northampton) attack_widgets.force (chester_widget, vitp.chester) -- Location Uncertain, group X attack_widgets.force (lexington_widget, vitp.lexington) attack_widgets.force (chicago_widget, vitp.chicago) attack_widgets.force (portland_widget, vitp.portland) attack_widgets.force (astoria_widget, vitp.astoria) -- Location Uncertain, group Y attack_widgets.force (saratoga_widget, vitp.saratoga) -- Location Uncertain (group Z attack_widgets.force (hornet_widget, vitp.hornet) attack_widgets.force (yorktown_widget, vitp.yorktown) attack_widgets.force (vincennes_widget, vitp.vincennes) attack_widgets.force (quincy_widget, vitp.quincy) end pair_remaining_allied_attack_unit_widgets -- Associate turn-one to turn-nine Allied {ATTACK_UNIT_WIDGET} with -- an {ATTACK_UNIT} from the {VITP_GAME} attached to `vitp. do -- Turn 2 attack_widgets.force (royal_sovereign_widget, vitp.royal_sovereign) attack_widgets.force (ramilies_widget, vitp.ramilies) attack_widgets.force (resolution_widget, vitp.resolution) attack_widgets.force (warspite_widget, vitp.warspite) attack_widgets.force (indomitable_widget, vitp.indomitable) attack_widgets.force (formidable_widget, vitp.formidable) attack_widgets.force (cornwall_widget, vitp.cornwall) attack_widgets.force (dorestshire_widget, vitp.dorestshire) attack_widgets.force (new_mexico_widget, vitp.new_mexico) attack_widgets.force (idaho_widget, vitp.idaho) attack_widgets.force (tenth_af_widget, vitp.tenth_af) attack_widgets.force (eleventh_af_widget, vitp.eleventh_af) -- Turn 3 attack_widgets.force (north_carolina_widget, vitp.north_carolina) attack_widgets.force (mississippi_widget, vitp.mississippi) attack_widgets.force (colorado_widget, vitp.colorado) attack_widgets.force (marines_1_widget, vitp.marines_1) attack_widgets.force (marines_2_widget, vitp.marines_2) attack_widgets.force (raaf_widget, vitp.raaf) attack_widgets.force (rnzaf_widget, vitp.rnzaf) attack_widgets.force (valiant_widget, vitp.valiant) attack_widgets.force (illustrious_widget, vitp.illustrious) -- Turn 4 attack_widgets.force (south_dakota_widget, vitp.south_dakota) attack_widgets.force (indiana_widget, vitp.indiana) attack_widgets.force (washington_widget, vitp.washington) attack_widgets.force (wasp_widget, vitp.wasp) attack_widgets.force (marine_widget, vitp.marine) attack_widgets.force (thirteenth_af_widget, vitp.thirteenth_af) attack_widgets.force (devonshire_widget, vitp.devonshire) attack_widgets.force (shropshire_widget, vitp.shropshire) -- Turn 5 attack_widgets.force (massachusetts_widget, vitp.massachusetts) attack_widgets.force (wichita_widget, vitp.wichita) attack_widgets.force (victorious_widget, vitp.victorious) attack_widgets.force (marines_3_widget, vitp.marines_3) attack_widgets.force (fourteenth_af_widget, vitp.fourteenth_af) attack_widgets.force (naval_widget, vitp.naval) -- Turn 6 attack_widgets.force (alabama_widget, vitp.alabama) attack_widgets.force (essex_widget, vitp.essex) attack_widgets.force (cv_10_widget, vitp.cv_10) attack_widgets.force (cv_16_widget, vitp.cv_16) attack_widgets.force (independence_widget, vitp.independence) attack_widgets.force (princeton_widget, vitp.princeton) attack_widgets.force (belleau_wood_widget, vitp.belleau_wood) attack_widgets.force (cowpens_widget, vitp.cowpens) attack_widgets.force (monterey_widget, vitp.monterey) attack_widgets.force (baltimore_widget, vitp.baltimore) attack_widgets.force (boston_widget, vitp.boston) attack_widgets.force (marines_4_widget, vitp.marines_4) -- Turn 7 attack_widgets.force (iowa_widget, vitp.iowa) attack_widgets.force (new_jersey_widget, vitp.new_jersey) attack_widgets.force (intrepid_widget, vitp.intrepid) attack_widgets.force (cv_12_widget, vitp.cv_12) attack_widgets.force (bunker_hill_widget, vitp.bunker_hill) attack_widgets.force (cv_18_widget, vitp.cv_18) attack_widgets.force (bataan_widget, vitp.bataan) attack_widgets.force (cabot_widget, vitp.cabot) attack_widgets.force (langley_ii_widget, vitp.langley_ii) attack_widgets.force (canbera_ii_widget, vitp.canbera_ii) attack_widgets.force (quincy_ii_widget, vitp.quincy_ii) attack_widgets.force (f_boat_widget, vitp.f_boat) -- Turn 8 attack_widgets.force (wisconsin_widget, vitp.wisconsin) attack_widgets.force (missouri_widget, vitp.missouri) attack_widgets.force (ticonderoga_widget, vitp.ticonderoga) attack_widgets.force (san_jacinto_widget, vitp.san_jacinto) attack_widgets.force (marines_5_widget, vitp.marines_5) -- Turn 9 attack_widgets.force (new_york_widget, vitp.new_york) attack_widgets.force (texas_widget, vitp.texas) attack_widgets.force (alaska_widget, vitp.alaska) attack_widgets.force (franklin_widget, vitp.franklin) attack_widgets.force (shangri_la_widget, vitp.shangri_la) end pair_japanese_attack_unit_widgets -- Associate each Japanese {ATTACK_UNIT_WIDGET} with -- an {ATTACK_UNIT} from the {VITP_GAME} attached to `vitp. do -- Turn 1, row 1 attack_widgets.force (shokaku_widget, vitp.shokaku) attack_widgets.force (zuikaku_widget, vitp.zuikaku) attack_widgets.force (akagi_widget, vitp.akagi) attack_widgets.force (kaga_widget, vitp.kaga) attack_widgets.force (soryu_widget, vitp.soryu) attack_widgets.force (hiryu_widget, vitp.hiryu) attack_widgets.force (ryujo_widget, vitp.ryujo) attack_widgets.force (hosho_widget, vitp.hosho) attack_widgets.force (zuiho_widget, vitp.zuiho) attack_widgets.force (mutsu_widget, vitp.mutsu) attack_widgets.force (nagato_widget, vitp.nagato) attack_widgets.force (fuso_widget, vitp.fuso) -- Turn 1, row 2 attack_widgets.force (hyuga_widget, vitp.hyuga) attack_widgets.force (ise_widget, vitp.ise) attack_widgets.force (yamashiro_widget, vitp.yamashiro) attack_widgets.force (haruna_widget, vitp.haruna) attack_widgets.force (hiei_widget, vitp.hiei) attack_widgets.force (kirishima_widget, vitp.kirishima) attack_widgets.force (kongo_widget, vitp.kongo) attack_widgets.force (ashigara_widget, vitp.ashigara) attack_widgets.force (atago_widget, vitp.atago) attack_widgets.force (chokai_widget, vitp.chokai) attack_widgets.force (haguro_widget, vitp.haguro) attack_widgets.force (maya_widget, vitp.maya) -- Turn 1, row 3 attack_widgets.force (myoko_widget, vitp.myoko) attack_widgets.force (nachi_widget, vitp.nachi) attack_widgets.force (takao_widget, vitp.takao) attack_widgets.force (chikuma_widget, vitp.chikuma) attack_widgets.force (kumano_widget, vitp.kumano) attack_widgets.force (mikuma_widget, vitp.mikuma) attack_widgets.force (mogami_widget, vitp.mogami) attack_widgets.force (suzuya_widget, vitp.suzuya) attack_widgets.force (tone_widget, vitp.tone) attack_widgets.force (aoba_widget, vitp.aoba) attack_widgets.force (furutaka_widget, vitp.furutaka) attack_widgets.force (kako_widget, vitp.kako) -- Turn 1, row 4 attack_widgets.force (kinugasa_widget, vitp.kinugasa) attack_widgets.force (kitakami_widget, vitp.kitakami) attack_widgets.force (oi_widget, vitp.oi) attack_widgets.force (yokosuka_widget, vitp.yokosuka) -- Turn 1, also available attack_widgets.force (airflot_21_widget, vitp.airflot_21) attack_widgets.force (airflot_22_widget, vitp.airflot_22) attack_widgets.force (airflot_23_widget, vitp.airflot_23) attack_widgets.force (airflot_24_widget, vitp.airflot_24) attack_widgets.force (airflot_25_widget, vitp.airflot_25) attack_widgets.force (airflot_26_widget, vitp.airflot_26) attack_widgets.force (i_boat_widget, vitp.i_boat) -- Turn 2 attack_widgets.force (shoho_widget, vitp.shoho) attack_widgets.force (junyo_widget, vitp.junyo) attack_widgets.force (sasebo_widget, vitp.sasebo) -- Turn 3 attack_widgets.force (hiyo_widget, vitp.hiyo) attack_widgets.force (yamato_widget, vitp.yamato) attack_widgets.force (kure_widget, vitp.kure) -- Turn 5 attack_widgets.force (musashi_widget, vitp.musashi) -- Turn 7 attack_widgets.force (chiyoda_widget, vitp.chiyoda) attack_widgets.force (chitose_widget, vitp.chitose) attack_widgets.force (ryuho_widget, vitp.ryuho) attack_widgets.force (taiho_widget, vitp.taiho) -- Turn 8 attack_widgets.force (unryu_widget, vitp.unryu) attack_widgets.force (amagi_widget, vitp.amagi) -- Turn 9 attack_widgets.force (katsuragi_widget, vitp.katsuragi) attack_widgets.force (shinano_widget, vitp.shinano) end is_widget_pairing_complete: BOOLEAN -- Have all widgets been associated with a VITP_ITEM and -- are all those items in the current VITP_GAME? do -- Check the table counts Result := attack_widgets.count <= 169 and sea_area_widgets.count = 13 and port_widgets.count = 22 and location_widgets.count <= 35 and -- Verify table contents are correct for current game across attack_widgets as aw all aw.item.vitp = vitp end and across sea_area_widgets as sw all sw.item.vitp = vitp end and across port_widgets as pw all pw.item.vitp = vitp end and across location_widgets as lw all lw.item.vitp = vitp end end fill_widgets -- Called by `set_target' to place each item into -- its associated widget. do fill_port_widgets fill_sea_area_widgets fill_attack_unit_widgets end fill_port_widgets -- Call `set_target' for each {PORT_WIDGET}. do -- Fill ports Andaman_islands_widget.set_target (vitp.Andaman_islands) Attu_widget.set_target (vitp.Attu) Australia_widget.set_target (vitp.Australia) Ceylon_widget.set_target (vitp.Ceylon) Dutch_harbor_widget.set_target (vitp.Dutch_harbor) Guadalcanal_widget.set_target (vitp.Guadalcanal) Johnston_island_widget.set_target (vitp.Johnston_island) Kwajalein_widget.set_target (vitp.Kwajalein) Lae_widget.set_target (vitp.Lae) Maloelap_widget.set_target (vitp.Maloelap) Midway_widget.set_target (vitp.Midway) New_hebrides_widget.set_target (vitp.New_hebrides) Okinawa_widget.set_target (vitp.Okinawa) Pearl_harbor_widget.set_target (vitp.Pearl_harbor) Philippines_widget.set_target (vitp.Philippines) Port_moresby_widget.set_target (vitp.Port_moresby) Saigon_widget.set_target (vitp.Saigon) Saipan_widget.set_target (vitp.Saipan) Samoa_widget.set_target (vitp.Samoa) Singapore_widget.set_target (vitp.Singapore) Truk_widget.set_target (vitp.Truk) Yokosuka_navy_yard_widget.set_target (vitp.Yokosuka_navy_yard) end fill_sea_area_widgets -- Call `set_target' for each {SEA_AREA_WIDGET}. do Aleutian_islands_widget.set_target (vitp.Aleutian_islands) Bay_of_bengal_widget.set_target (vitp.Bay_of_bengal) Central_pacific_ocean_widget.set_target (vitp.Central_pacific_ocean) Coral_sea_widget.set_target (vitp.Coral_sea) Hawaiian_islands_widget.set_target (vitp.Hawaiian_islands) Indian_ocean_widget.set_target (vitp.Indian_ocean) Indonesia_widget.set_target (vitp.Indonesia) Japanese_islands_widget.set_target (vitp.Japanese_islands) Marianas_islands_widget.set_target (vitp.Marianas_islands) Marshall_islands_widget.set_target (vitp.Marshall_islands) North_pacific_ocean_widget.set_target (vitp.North_pacific_ocean) South_pacific_ocean_widget.set_target (vitp.South_pacific_ocean) US_mandate_widget.set_target (vitp.US_mandate) end fill_attack_unit_widgets -- Call `set_target' for each {ATTACK_UNIT_WIDGET}. do fill_allied_attack_unit_widgets fill_japanese_attack_unit_widgets end fill_allied_attack_unit_widgets -- Call `set_target' for each {ATTACK_UNIT_WIDGET}. do fill_allied_starting_forces_widgets fill_remaining_allied_attack_unit_widgets end fill_allied_starting_forces_widgets -- Call `set_target' for each allied {ATTACK_UNIT_WIDGET} -- that is in the starting forces (i.e. turn 1). local t: VITP_TABLE [ATTACK_UNIT] u: ATTACK_UNIT w: ATTACK_UNIT_WIDGET do t := vitp.allied_turn_1_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- -- On Battleship Row (Pearl Harbor) -- nevada_widget.set_target (vitp.nevada) -- arizona_widget.set_target (vitp.arizona) -- west_virginia_widget, vitp.west_virginia) -- tennessee_widget, vitp.tennessee) -- oklahoma_widget, vitp.oklahoma) -- maryland_widget, vitp.maryland) -- california_widget, vitp.california) -- pennsylvania_widget, vitp.pennsylvania) -- new_orleans_widget, vitp.new_orleans) -- san_francisco_widget, vitp.san_francisco) -- seventh_af_widget, vitp.seventh_af) -- -- At sea (cannot move) -- hermes_widget, vitp.hermes) -- revenge_widget, vitp.revenge) -- prince_of_wales_widget, vitp.prince_of_wales) -- repulse_widget, vitp.repulse) -- fifth_af_widget, vitp.fifth_af) -- louisville_widget, vitp.louisville) -- pensacola_widget, vitp.pensacola) -- indianapolis_widget, vitp.indianapolis) -- minneapolis_widget, vitp.minneapolis) -- -- In port (may move) -- houston_widget, vitp.houston) -- exeter_widget, vitp.exeter) -- de_ruyter_widget, vitp.de_ruyter) -- attack_widgets.force (australia_ship_widget, vitp.australia_ship) -- attack_widgets.force (canberra_widget, vitp.canberra) -- -- Location Uncertain, group W -- attack_widgets.force (enterprise_widget, vitp.enterprise) -- attack_widgets.force (salt_lake_city_widget, vitp.salt_lake_city) -- attack_widgets.force (northampton_widget, vitp.northampton) -- attack_widgets.force (chester_widget, vitp.chester) -- -- Location Uncertain, group X -- attack_widgets.force (lexington_widget, vitp.lexington) -- attack_widgets.force (chicago_widget, vitp.chicago) -- attack_widgets.force (portland_widget, vitp.portland) -- attack_widgets.force (astoria_widget, vitp.astoria) -- -- Location Uncertain, group Y -- attack_widgets.force (saratoga_widget, vitp.saratoga) -- -- Location Uncertain (group Z -- attack_widgets.force (hornet_widget, vitp.hornet) -- attack_widgets.force (yorktown_widget, vitp.yorktown) -- attack_widgets.force (vincennes_widget, vitp.vincennes) -- attack_widgets.force (quincy_widget, vitp.quincy) end fill_remaining_allied_attack_unit_widgets -- Call `set_target' for each allied {ATTACK_UNIT_WIDGET} -- that is in turns two through nine. local t: VITP_TABLE [ATTACK_UNIT] u: ATTACK_UNIT w: ATTACK_UNIT_WIDGET do -- Turn 2 t := vitp.allied_turn_2_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 3 t := vitp.allied_turn_3_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 4 t := vitp.allied_turn_4_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 5 t := vitp.allied_turn_5_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 6 t := vitp.allied_turn_6_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 7 t := vitp.allied_turn_7_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 8 t := vitp.allied_turn_8_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end -- Turn 9 t := vitp.allied_turn_9_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end end fill_japanese_attack_unit_widgets -- Call `set_target' for each Japanese {ATTACK_UNIT_WIDGET}. local t: VITP_TABLE [ATTACK_UNIT] u: ATTACK_UNIT w: ATTACK_UNIT_WIDGET do t := vitp.japanese_attack_units from t.start until t.after loop u := t.item_for_iteration w := attack_widgets.widget (u) w.set_target (u) t.forth end end feature -- Access (tables) land_widgets: VITP_WIDGET_TABLE [LOCATION_WIDGET, LOCATION] -- Keeps track of the "other" land widgets attribute create Result.make (100) end port_widgets: VITP_WIDGET_TABLE [PORT_WIDGET, PORT] -- Keeps track of widgets indexed by a {PORT} attribute create Result.make (100) end sea_area_widgets: VITP_WIDGET_TABLE [SEA_AREA_WIDGET, SEA_AREA] -- Keeps track of widgets indexed by a {SEA_AREA} attribute create Result.make (100) end location_widgets: VITP_WIDGET_TABLE [LOCATION_WIDGET, LOCATION] -- Keeps track of sea areas and ports attribute create Result.make (100) end allied_attack_unit_widgets: VITP_WIDGET_TABLE [ATTACK_UNIT_WIDGET, ATTACK_UNIT] -- Keeps track of Allied attack units attribute create Result.make (100) end attack_widgets: VITP_WIDGET_TABLE [ATTACK_UNIT_WIDGET, ATTACK_UNIT] -- Keeps track of all widgets in Current attribute create Result.make (100) end task_force_widgets: VITP_WIDGET_TABLE [TASK_FORCE_WIDGET, TASK_FORCE] -- Unlike the other widget tables, this table may or may not -- contain a widget for a particular task force. attribute create Result.make (100) end feature -- Land widgets -- board_widget: BOARD_WIDGET asia_widget: ASIA_WIDGET attribute create Result end kamchatka_widget: KAMCHATKA_WIDGET attribute create Result end aleutians_widget: ALEUTIANS_WIDGET attribute create Result end solomans_widget: SOLOMANS_WIDGET attribute create Result end marshalls_north_widget: MARSHALLS_NORTH_WIDGET attribute create Result end marshalls_south_widget: MARSHALLS_SOUTH_WIDGET attribute create Result end feature -- Sea area widgets Aleutian_islands_widget: ALEUTIAN_ISLANDS_WIDGET attribute create Result end Bay_of_bengal_widget: BAY_OF_BENGAL_WIDGET attribute create Result end Central_pacific_ocean_widget: CENTRAL_PACIFIC_OCEAN_WIDGET attribute create Result end Coral_sea_widget: CORAL_SEA_WIDGET attribute create Result end Hawaiian_islands_widget: HAWAIIAN_ISLANDS_WIDGET attribute create Result end Indian_ocean_widget: INDIAN_OCEAN_WIDGET attribute create Result end Indonesia_widget: INDONESIA_WIDGET attribute create Result end Japanese_islands_widget: JAPANESE_ISLANDS_WIDGET attribute create Result end Marianas_islands_widget: MARIANAS_ISLANDS_WIDGET attribute create Result end Marshall_islands_widget: MARSHALL_ISLANDS_WIDGET attribute create Result end North_pacific_ocean_widget: NORTH_PACIFIC_OCEAN_WIDGET attribute create Result end South_pacific_ocean_widget: SOUTH_PACIFIC_OCEAN_WIDGET attribute create Result end US_mandate_widget: US_MANDATE_WIDGET attribute create Result end feature -- Port widgets Andaman_islands_widget: ANDAMAN_ISLANDS_WIDGET attribute create Result end Attu_widget: ATTU_WIDGET attribute create Result end Australia_widget: AUSTRALIA_WIDGET attribute create Result end Ceylon_widget: CEYLON_WIDGET attribute create Result end Dutch_harbor_widget: DUTCH_HARBOR_WIDGET attribute create Result end Guadalcanal_widget: GUADALCANAL_WIDGET attribute create Result end Johnston_island_widget: JOHNSTON_ISLAND_WIDGET attribute create Result end Kwajalein_widget: KWAJALEIN_WIDGET attribute create Result end Lae_widget: LAE_WIDGET attribute create Result end Maloelap_widget: MALOELAP_WIDGET attribute create Result end Midway_widget: MIDWAY_WIDGET attribute create Result end New_hebrides_widget: NEW_HEBRIDES_WIDGET attribute create Result end Okinawa_widget: OKINAWA_WIDGET attribute create Result end Pearl_harbor_widget: PEARL_HARBOR_WIDGET attribute create Result end Philippines_widget: PHILIPPINES_WIDGET attribute create Result end Port_moresby_widget: PORT_MORESBY_WIDGET attribute create Result end Saigon_widget: SAIGON_WIDGET attribute create Result end Saipan_widget: SAIPAN_WIDGET attribute create Result end Samoa_widget: SAMOA_WIDGET attribute create Result end Singapore_widget: SINGAPORE_WIDGET attribute create Result end Truk_widget: TRUK_WIDGET attribute create Result end Yokosuka_navy_yard_widget: YOKOSUKA_NAVY_YARD_WIDGET attribute create Result end feature -- Access (Japanese unit widgets) -- Turn 1, row 1 shokaku_widget: SHIP_WIDGET attribute create Result end zuikaku_widget: SHIP_WIDGET attribute create Result end akagi_widget: SHIP_WIDGET attribute create Result end kaga_widget: SHIP_WIDGET attribute create Result end soryu_widget: SHIP_WIDGET attribute create Result end hiryu_widget: SHIP_WIDGET attribute create Result end ryujo_widget: SHIP_WIDGET attribute create Result end hosho_widget: SHIP_WIDGET attribute create Result end zuiho_widget: SHIP_WIDGET attribute create Result end mutsu_widget: SHIP_WIDGET attribute create Result end nagato_widget: SHIP_WIDGET attribute create Result end fuso_widget: SHIP_WIDGET attribute create Result end -- Turn 1, row 2 hyuga_widget: SHIP_WIDGET attribute create Result end ise_widget: SHIP_WIDGET attribute create Result end yamashiro_widget: SHIP_WIDGET attribute create Result end haruna_widget: SHIP_WIDGET attribute create Result end hiei_widget: SHIP_WIDGET attribute create Result end kirishima_widget: SHIP_WIDGET attribute create Result end kongo_widget: SHIP_WIDGET attribute create Result end ashigara_widget: SHIP_WIDGET attribute create Result end atago_widget: SHIP_WIDGET attribute create Result end chokai_widget: SHIP_WIDGET attribute create Result end haguro_widget: SHIP_WIDGET attribute create Result end maya_widget: SHIP_WIDGET attribute create Result end -- Turn 1, row 3 myoko_widget: SHIP_WIDGET attribute create Result end nachi_widget: SHIP_WIDGET attribute create Result end takao_widget: SHIP_WIDGET attribute create Result end chikuma_widget: SHIP_WIDGET attribute create Result end kumano_widget: SHIP_WIDGET attribute create Result end mikuma_widget: SHIP_WIDGET attribute create Result end mogami_widget: SHIP_WIDGET attribute create Result end suzuya_widget: SHIP_WIDGET attribute create Result end tone_widget: SHIP_WIDGET attribute create Result end aoba_widget: SHIP_WIDGET attribute create Result end furutaka_widget: SHIP_WIDGET attribute create Result end kako_widget: SHIP_WIDGET attribute create Result end -- Turn 1, row 4 kinugasa_widget: SHIP_WIDGET attribute create Result end kitakami_widget: SHIP_WIDGET attribute create Result end oi_widget: SHIP_WIDGET attribute create Result end yokosuka_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end -- Turn 1, also available airflot_21_widget: AIR_UNIT_WIDGET attribute create Result end airflot_22_widget: AIR_UNIT_WIDGET attribute create Result end airflot_23_widget: AIR_UNIT_WIDGET attribute create Result end airflot_24_widget: AIR_UNIT_WIDGET attribute create Result end airflot_25_widget: AIR_UNIT_WIDGET attribute create Result end airflot_26_widget: AIR_UNIT_WIDGET attribute create Result end i_boat_widget: SUBMARINE_WIDGET attribute create Result end -- Turn 2 shoho_widget: SHIP_WIDGET attribute create Result end junyo_widget: SHIP_WIDGET attribute create Result end sasebo_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end -- Turn 3 hiyo_widget: SHIP_WIDGET attribute create Result end yamato_widget: SHIP_WIDGET attribute create Result end kure_widget: SHIP_WIDGET attribute create Result end -- Turn 5 musashi_widget: SHIP_WIDGET attribute create Result end -- Turn 7 chiyoda_widget: SHIP_WIDGET attribute create Result end chitose_widget: SHIP_WIDGET attribute create Result end ryuho_widget: SHIP_WIDGET attribute create Result end taiho_widget: SHIP_WIDGET attribute create Result end -- Turn 8 unryu_widget: SHIP_WIDGET attribute create Result end amagi_widget: SHIP_WIDGET attribute create Result end -- Turn 9 katsuragi_widget: SHIP_WIDGET attribute create Result end shinano_widget: SHIP_WIDGET attribute create Result end feature -- Access (Allied unit widgets) -- On Battleship Row (Pearl Harbor) nevada_widget: SHIP_WIDGET attribute create Result end arizona_widget: SHIP_WIDGET attribute create Result end west_virginia_widget: SHIP_WIDGET attribute create Result end tennessee_widget: SHIP_WIDGET attribute create Result end oklahoma_widget: SHIP_WIDGET attribute create Result end maryland_widget: SHIP_WIDGET attribute create Result end california_widget: SHIP_WIDGET attribute create Result end pennsylvania_widget: SHIP_WIDGET attribute create Result end new_orleans_widget: SHIP_WIDGET attribute create Result end san_francisco_widget: SHIP_WIDGET attribute create Result end seventh_af_widget: AIR_UNIT_WIDGET attribute create Result end -- At sea (cannot move) hermes_widget: SHIP_WIDGET attribute create Result end revenge_widget: SHIP_WIDGET attribute create Result end prince_of_wales_widget: SHIP_WIDGET attribute create Result end repulse_widget: SHIP_WIDGET attribute create Result end fifth_af_widget: SHIP_WIDGET attribute create Result end louisville_widget: SHIP_WIDGET attribute create Result end pensacola_widget: SHIP_WIDGET attribute create Result end indianapolis_widget: SHIP_WIDGET attribute create Result end minneapolis_widget: SHIP_WIDGET attribute create Result end -- In port (may move) houston_widget: SHIP_WIDGET attribute create Result end exeter_widget: SHIP_WIDGET attribute create Result end de_ruyter_widget: SHIP_WIDGET attribute create Result end australia_ship_widget: SHIP_WIDGET attribute create Result end canberra_widget: SHIP_WIDGET attribute create Result end -- Location Uncertain, group W enterprise_widget: SHIP_WIDGET attribute create Result end salt_lake_city_widget: SHIP_WIDGET attribute create Result end northampton_widget: SHIP_WIDGET attribute create Result end chester_widget: SHIP_WIDGET attribute create Result end -- Location Uncertain, group X lexington_widget: SHIP_WIDGET attribute create Result end chicago_widget: SHIP_WIDGET attribute create Result end portland_widget: SHIP_WIDGET attribute create Result end astoria_widget: SHIP_WIDGET attribute create Result end -- Location Uncertain, group Y saratoga_widget: SHIP_WIDGET attribute create Result end -- Location Uncertain, group W hornet_widget: SHIP_WIDGET attribute create Result end yorktown_widget: SHIP_WIDGET attribute create Result end vincennes_widget: SHIP_WIDGET attribute create Result end quincy_widget: SHIP_WIDGET attribute create Result end -- Turn 2 royal_sovereign_widget: SHIP_WIDGET attribute create Result end ramilies_widget: SHIP_WIDGET attribute create Result end resolution_widget: SHIP_WIDGET attribute create Result end warspite_widget: SHIP_WIDGET attribute create Result end indomitable_widget: SHIP_WIDGET attribute create Result end formidable_widget: SHIP_WIDGET attribute create Result end cornwall_widget: SHIP_WIDGET attribute create Result end dorestshire_widget: SHIP_WIDGET attribute create Result end new_mexico_widget: SHIP_WIDGET attribute create Result end idaho_widget: SHIP_WIDGET attribute create Result end tenth_af_widget: AIR_UNIT_WIDGET attribute create Result end eleventh_af_widget: AIR_UNIT_WIDGET attribute create Result end -- Turn 3 north_carolina_widget: SHIP_WIDGET attribute create Result end mississippi_widget: SHIP_WIDGET attribute create Result end colorado_widget: SHIP_WIDGET attribute create Result end marines_1_widget: AMPHIBIOUS_UNIT_wIDGET attribute create Result end marines_2_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end raaf_widget: AIR_UNIT_WIDGET attribute create Result end rnzaf_widget: AIR_UNIT_WIDGET attribute create Result end valiant_widget: SHIP_WIDGET attribute create Result end illustrious_widget: SHIP_WIDGET attribute create Result end -- Turn 4 south_dakota_widget: SHIP_WIDGET attribute create Result end indiana_widget: SHIP_WIDGET attribute create Result end washington_widget: SHIP_WIDGET attribute create Result end wasp_widget: SHIP_WIDGET attribute create Result end marine_widget: SHIP_WIDGET attribute create Result end thirteenth_af_widget: AIR_UNIT_WIDGET attribute create Result end devonshire_widget: SHIP_WIDGET attribute create Result end shropshire_widget: SHIP_WIDGET attribute create Result end -- Turn 5 massachusetts_widget: SHIP_WIDGET attribute create Result end wichita_widget: SHIP_WIDGET attribute create Result end victorious_widget: SHIP_WIDGET attribute create Result end marines_3_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end fourteenth_af_widget: AIR_UNIT_WIDGET attribute create Result end naval_widget: AIR_UNIT_WIDGET attribute create Result end -- Turn 6 alabama_widget: SHIP_WIDGET attribute create Result end essex_widget: SHIP_WIDGET attribute create Result end cv_10_widget: SHIP_WIDGET attribute create Result end cv_16_widget: SHIP_WIDGET attribute create Result end independence_widget: SHIP_WIDGET attribute create Result end princeton_widget: SHIP_WIDGET attribute create Result end belleau_wood_widget: SHIP_WIDGET attribute create Result end cowpens_widget: SHIP_WIDGET attribute create Result end monterey_widget: SHIP_WIDGET attribute create Result end baltimore_widget: SHIP_WIDGET attribute create Result end boston_widget: SHIP_WIDGET attribute create Result end marines_4_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end -- Turn 7 iowa_widget: SHIP_WIDGET attribute create Result end new_jersey_widget: SHIP_WIDGET attribute create Result end intrepid_widget: SHIP_WIDGET attribute create Result end cv_12_widget: SHIP_WIDGET attribute create Result end bunker_hill_widget: SHIP_WIDGET attribute create Result end cv_18_widget: SHIP_WIDGET attribute create Result end bataan_widget: SHIP_WIDGET attribute create Result end cabot_widget: SHIP_WIDGET attribute create Result end langley_ii_widget: SHIP_WIDGET attribute create Result end canbera_ii_widget: SHIP_WIDGET attribute create Result end quincy_ii_widget: SHIP_WIDGET attribute create Result end f_boat_widget: SUBMARINE_WIDGET attribute create Result end -- Turn 8 wisconsin_widget: SHIP_WIDGET attribute create Result end missouri_widget: SHIP_WIDGET attribute create Result end ticonderoga_widget: SHIP_WIDGET attribute create Result end san_jacinto_widget: SHIP_WIDGET attribute create Result end marines_5_widget: AMPHIBIOUS_UNIT_WIDGET attribute create Result end -- Turn 9 new_york_widget: SHIP_WIDGET attribute create Result end texas_widget: SHIP_WIDGET attribute create Result end alaska_widget: SHIP_WIDGET attribute create Result end franklin_widget: SHIP_WIDGET attribute create Result end shangri_la_widget: SHIP_WIDGET attribute create Result end end