# # blaster.icn - main module for Kuhn and Jeffery's Blasteroids # import gui $include "guih.icn" link random class blaster : Dialog( text_menu_item_3, text_menu_item_2, text_menu_item_1, text_menu_item_6, check_box_menu_item_1, check_box_menu_item_2, text_menu_item_5, text_menu_item_4, roids, optionsbox, doneoptions) method handle_text_menu_item_3(ev) roids.tapped := 2 roids.gamestart := 1 roids.handle_event() end method handle_text_menu_item_2(ev) end method handle_text_menu_item_1(ev) dispose() end method handle_text_menu_item_6(ev) if doneoptions = 0 then { doneoptions := 1 optionsbox.num_ships := 3 optionsbox.num_range := 10 optionsbox.chk_explode := (1=1) optionsbox.chk_sound := &null optionsbox.num_torpedos := 3 optionsbox.num_speed := 5 optionsbox.num_rotation := 5 optionsbox.num_level := 1 } optionsbox.show_modal() if optionsbox.hitokay = 1 then { optionsbox.hitokay := 0 roids.num_ships := optionsbox.num_ships roids.num_range := optionsbox.num_range roids.chk_explode := optionsbox.chk_explode roids.chk_sound := optionsbox.chk_sound roids.num_torpedos := optionsbox.num_torpedos roids.num_speed := optionsbox.num_speed roids.num_rotation := optionsbox.num_rotation roids.num_level := optionsbox.num_level } end method handle_check_box_menu_item_1(ev) end method handle_check_box_menu_item_2(ev) if f := open("highscor") then { L := [ ] while put(L, read(f)) close(f) sort(L) write("HIGH SCORES:") every write(!L) } end method handle_text_menu_item_5(ev) end method handle_text_menu_item_4(ev) dialogabout().show_modal() end method handle_default(ev) end method dialog_event(ev) case ev.get_component() of { text_menu_item_3 : handle_text_menu_item_3(ev) text_menu_item_2 : handle_text_menu_item_2(ev) text_menu_item_1 : handle_text_menu_item_1(ev) text_menu_item_6 : handle_text_menu_item_6(ev) check_box_menu_item_1 : handle_check_box_menu_item_1(ev) check_box_menu_item_2 : handle_check_box_menu_item_2(ev) text_menu_item_5 : handle_text_menu_item_5(ev) text_menu_item_4 : handle_text_menu_item_4(ev) default : handle_default(ev) } end method init_dialog() WAttrib(win, "inputmask=k") end method end_dialog() end method handle_v2_events(ev) dialog_event(V2TOV1(ev)) end method setup() local menu_1, menu_2, menu_3, menu_bar_1, menu_separator_1 self.set_attribs("size=500,500", "bg=pale gray") menu_bar_1 := MenuBar() menu_bar_1.set_pos("0", "0") menu_1 := Menu() menu_1.set_label("Game") text_menu_item_3 := TextMenuItem() text_menu_item_3.set_label("New") text_menu_item_3.connect(self, "handle_v2_events", ACTION_EVENT) menu_1.add(text_menu_item_3) text_menu_item_2 := TextMenuItem() text_menu_item_2.set_label("High Scores...") text_menu_item_2.connect(self, "handle_v2_events", ACTION_EVENT) menu_1.add(text_menu_item_2) text_menu_item_1 := TextMenuItem() text_menu_item_1.set_label("Quit") text_menu_item_1.connect(self, "handle_v2_events", ACTION_EVENT) menu_1.add(text_menu_item_1) menu_bar_1.add(menu_1) menu_2 := Menu() menu_2.set_label("Options") text_menu_item_6 := TextMenuItem() text_menu_item_6.set_label("Games Options...") text_menu_item_6.connect(self, "handle_v2_events", ACTION_EVENT) menu_2.add(text_menu_item_6) check_box_menu_item_1 := CheckBoxMenuItem() check_box_menu_item_1.set_label("Sound") check_box_menu_item_1.connect(self, "handle_v2_events", ACTION_EVENT) check_box_menu_item_1.set_is_checked() menu_2.add(check_box_menu_item_1) check_box_menu_item_2 := CheckBoxMenuItem() check_box_menu_item_2.set_label("Explosions") check_box_menu_item_2.connect(self, "handle_v2_events", ACTION_EVENT) check_box_menu_item_2.set_is_checked() menu_2.add(check_box_menu_item_2) menu_bar_1.add(menu_2) menu_3 := Menu() menu_3.set_label("Help") text_menu_item_5 := TextMenuItem() text_menu_item_5.set_label("Game Play...") text_menu_item_5.connect(self, "handle_v2_events", ACTION_EVENT) menu_3.add(text_menu_item_5) menu_separator_1 := MenuSeparator() menu_separator_1.set_is_shaded() menu_3.add(menu_separator_1) text_menu_item_4 := TextMenuItem() text_menu_item_4.set_label("About...") text_menu_item_4.connect(self, "handle_v2_events", ACTION_EVENT) menu_3.add(text_menu_item_4) menu_bar_1.add(menu_3) self.add(menu_bar_1) roids := Blasteroids_Game() roids.set_pos("0", "26") roids.set_size("100%", "100%-26") self.add(roids) self.connect(self, "handle_v2_events", &null) end method component_setup() self.setup() end initially optionsbox := optionsdialog() doneoptions := 0 self.Dialog.initially() end procedure main() local d d := blaster() d.show_modal() end ### Ivib-v2 layout ## #class|Canvas|17|Name Table|table|integer|0|6|string|check_box_menu_ite #m|integer|2|string|custom|integer|1|string|menu|integer|3|string|menu_ #bar|integer|1|string|menu_separator|integer|1|string|text_menu_item|in #teger|6|SuperClass Name|string|Dialog|Import Name|string|gui|Button Gr #oups|class|ButtonGroupSet|2|Parent Canvas|1|Boxes|list|0|Checkbox Grou #ps|class|CheckBoxGroupSet|2|Parent Canvas|1|Boxes|list|0|Gen Indent|in #teger|3|Gen Main|integer|1|Gen Component Setup|integer|1|Gen Init Dial #og|integer|1|Gen Initially|integer|1|Dialog Struct|class|CDialog|4|Min # Width|null|Min Height|null|Ticker Rate|null|Attribs|list|1|string|bg= #pale gray|Name|string|blaster|Width|integer|500|Height|integer|500|Ite #ms|list|2|class|CanvasMenuBar|26|Parent Canvas|1|Name|string|menu_bar_ #1|Class Name|string|MenuBar|Import Name|string|gui|X Fix|null|Y Fix|nu #ll|W Fix|null|H Fix|null|W Default|integer|1|H Default|integer|1|X Spe #c|string|0|Y Spec|string|0|W Spec|string|100%|H Spec|integer|23|X Alig #n|string|l|Y Align|string|t|Is shaded|null|Is Button Subclass|null|Dra #w Border|null|Attribs|list|0|Tooltip|null|Accel|null|Event Handlers|nu #ll|Class Variable|null|Parent Component|1|Menus|list|3|class|CanvasMen #u|17|Name|string|menu_1|Class Name|string|Menu|Import Name|string|gui| #Accel|null|Label|string|Game|Label Left|null|Label Right|null|Is shade #d|null|Img Left|null|Img Left Width|null|Img Left Height|null|Img Righ #t|string|9,c1,0~~~~~~~~000~~~~~~00000~~~~0000000~~0000000000000000~~00 #000~~~~000~~~~~~0~~~~~~~~|Img Right Width|integer|9|Img Right Height|i #nteger|9|Event Method|null|Class Variable|null|Children|list|3|class|C #anvasTextMenuItem|16|Name|string|text_menu_item_3|Class Name|string|Te #xtMenuItem|Import Name|string|gui|Accel|null|Label|string|New|Label Le #ft|null|Label Right|null|Is shaded|null|Img Left|null|Img Left Width|n #ull|Img Left Height|null|Img Right|null|Img Right Width|null|Img Right # Height|null|Event Method|string|handle_v2_events|Class Variable|integ #er|1|class|CanvasTextMenuItem|16|Name|string|text_menu_item_2|Class Na #me|string|TextMenuItem|Import Name|string|gui|Accel|null|Label|string| #High Scores...|Label Left|null|Label Right|null|Is shaded|null|Img Lef #t|null|Img Left Width|null|Img Left Height|null|Img Right|null|Img Rig #ht Width|null|Img Right Height|null|Event Method|string|handle_v2_even #ts|Class Variable|integer|1|class|CanvasTextMenuItem|16|Name|string|te #xt_menu_item_1|Class Name|string|TextMenuItem|Import Name|string|gui|A #ccel|null|Label|string|Quit|Label Left|null|Label Right|null|Is shaded #|null|Img Left|null|Img Left Width|null|Img Left Height|null|Img Right #|null|Img Right Width|null|Img Right Height|null|Event Method|string|h #andle_v2_events|Class Variable|integer|1|class|CanvasMenu|17|Name|stri #ng|menu_2|Class Name|string|Menu|Import Name|string|gui|Accel|null|Lab #el|string|Options|Label Left|null|Label Right|null|Is shaded|null|Img #Left|null|Img Left Width|null|Img Left Height|null|Img Right|string|9, #c1,0~~~~~~~~000~~~~~~00000~~~~0000000~~0000000000000000~~00000~~~~000~ #~~~~~0~~~~~~~~|Img Right Width|integer|9|Img Right Height|integer|9|Ev #ent Method|null|Class Variable|null|Children|list|3|class|CanvasTextMe #nuItem|16|Name|string|text_menu_item_6|Class Name|string|TextMenuItem| #Import Name|string|gui|Accel|null|Label|string|Games Options...|Label #Left|null|Label Right|null|Is shaded|null|Img Left|null|Img Left Width #|null|Img Left Height|null|Img Right|null|Img Right Width|null|Img Rig #ht Height|null|Event Method|string|handle_v2_events|Class Variable|int #eger|1|class|CanvasCheckBoxMenuItem|20|Name|string|check_box_menu_item #_1|Class Name|string|CheckBoxMenuItem|Import Name|string|gui|Accel|nul #l|Label|string|Sound|Label Left|null|Label Right|null|Is shaded|null|I #mg Left|string|(b=black;0=shadow;1=hilite;~=trans)13,c6,~~~~~~~~~~~~~~ #00000000001~~00000000001~~00~~~~~~~11~~00~bbbbb~11~~00~bbbbb~11~~00~bb #bbb~11~~00~bbbbb~11~~00~bbbbb~11~~00~~~~~~~11~~01111111111~~1111111111 #1~~~~~~~~~~~~~~|Img Left Width|integer|13|Img Left Height|integer|13|I #mg Right|null|Img Right Width|null|Img Right Height|null|Event Method| #string|handle_v2_events|Class Variable|integer|1|Img Up|string|(0=shad #ow;1=hilite;~=trans)13,c6,~~~~~~~~~~~~~~11111111111~~11111111110~~11~~ #~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~ #00~~11~~~~~~~00~~11000000000~~10000000000~~~~~~~~~~~~~~|Img Down|strin #g|(b=black;0=shadow;1=hilite;~=trans)13,c6,~~~~~~~~~~~~~~00000000001~~ #00000000001~~00~~~~~~~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~11~~00~bb #bbb~11~~00~bbbbb~11~~00~~~~~~~11~~01111111111~~11111111111~~~~~~~~~~~~ #~~|Is Checked Flag|integer|1|Parent CheckBoxGroup|null|class|CanvasChe #ckBoxMenuItem|20|Name|string|check_box_menu_item_2|Class Name|string|C #heckBoxMenuItem|Import Name|string|gui|Accel|null|Label|string|Explosi #ons|Label Left|null|Label Right|null|Is shaded|null|Img Left|string|(b #=black;0=shadow;1=hilite;~=trans)13,c6,~~~~~~~~~~~~~~00000000001~~0000 #0000001~~00~~~~~~~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~ #11~~00~bbbbb~11~~00~~~~~~~11~~01111111111~~11111111111~~~~~~~~~~~~~~|I #mg Left Width|integer|13|Img Left Height|integer|13|Img Right|null|Img # Right Width|null|Img Right Height|null|Event Method|string|handle_v2_ #events|Class Variable|integer|1|Img Up|string|(0=shadow;1=hilite;~=tra #ns)13,c6,~~~~~~~~~~~~~~11111111111~~11111111110~~11~~~~~~~00~~11~~~~~~ #~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~11~~~~~~~00~~ #11000000000~~10000000000~~~~~~~~~~~~~~|Img Down|string|(b=black;0=shad #ow;1=hilite;~=trans)13,c6,~~~~~~~~~~~~~~00000000001~~00000000001~~00~~ #~~~~~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~11~~00~bbbbb~ #11~~00~~~~~~~11~~01111111111~~11111111111~~~~~~~~~~~~~~|Is Checked Fla #g|integer|1|Parent CheckBoxGroup|null|class|CanvasMenu|17|Name|string| #menu_3|Class Name|string|Menu|Import Name|string|gui|Accel|null|Label| #string|Help|Label Left|null|Label Right|null|Is shaded|null|Img Left|n #ull|Img Left Width|null|Img Left Height|null|Img Right|string|9,c1,0~~ #~~~~~~000~~~~~~00000~~~~0000000~~0000000000000000~~00000~~~~000~~~~~~0 #~~~~~~~~|Img Right Width|integer|9|Img Right Height|integer|9|Event Me #thod|null|Class Variable|null|Children|list|3|class|CanvasTextMenuItem #|16|Name|string|text_menu_item_5|Class Name|string|TextMenuItem|Import # Name|string|gui|Accel|null|Label|string|Game Play...|Label Left|null| #Label Right|null|Is shaded|null|Img Left|null|Img Left Width|null|Img #Left Height|null|Img Right|null|Img Right Width|null|Img Right Height| #null|Event Method|string|handle_v2_events|Class Variable|integer|1|cla #ss|CanvasMenuSeparator|16|Name|string|menu_separator_1|Class Name|stri #ng|MenuSeparator|Import Name|string|gui|Accel|null|Label|null|Label Le #ft|null|Label Right|null|Is shaded|integer|1|Img Left|null|Img Left Wi #dth|null|Img Left Height|null|Img Right|null|Img Right Width|null|Img #Right Height|null|Event Method|null|Class Variable|null|class|CanvasTe #xtMenuItem|16|Name|string|text_menu_item_4|Class Name|string|TextMenuI #tem|Import Name|string|gui|Accel|null|Label|string|About...|Label Left #|null|Label Right|null|Is shaded|null|Img Left|null|Img Left Width|nul #l|Img Left Height|null|Img Right|null|Img Right Width|null|Img Right H #eight|null|Event Method|string|handle_v2_events|Class Variable|integer #|1|class|CanvasCustom|25|Parent Canvas|1|Name|string|roids|Class Name| #string|Blasteroids_Game|Import Name|string|gui|X Fix|null|Y Fix|null|W # Fix|null|H Fix|null|W Default|null|H Default|null|X Spec|string|0|Y S #pec|string|26|W Spec|string|100%|H Spec|string|100%-26|X Align|string| #l|Y Align|string|t|Is shaded|null|Is Button Subclass|null|Draw Border| #null|Attribs|list|0|Tooltip|null|Accel|null|Event Handlers|list|0|Clas #s Variable|integer|1|Parent Component|1|Initial Focus|null|Event Handl #ers|list|1|list|2|string|&null|string|handle_v2_events|