DECLARE SUB GetKey () DECLARE SUB FillScreen () DECLARE SUB DrawBox (x1!, y1!, x2!, y2!) DECLARE SUB DoColor (hue!, r!, g!, B!) COMMON SHARED fjf$, ActiveSubMenu$, SubMenuX, SubMenuY '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN '*************************************************************** SET UP SCREEN SCREEN 12 GOSUB SetUpMenuScreen: ActiveSubMenu$ = "c" fjf$ = "c" '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU '******************************************************************* MAIN MENU BeginMenu: SELECT CASE ActiveSubMenu$ CASE "c" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12, 93, 34 GOSUB RedrawMenu: COLOR 8: LOCATE 2, 3: PRINT "Character" FOR x = 13 TO 92 FOR y = 15 TO 33 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "f" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 12, 93, 34 + 16 * 12 GOSUB RedrawMenu: COLOR 8: LOCATE 14, 3: PRINT " Feats" FOR x = 13 TO 92 FOR y = 15 + 16 * 12 TO 33 + 16 * 12 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "o" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 6, 93, 34 + 16 * 6 GOSUB RedrawMenu: COLOR 8: LOCATE 8, 3: PRINT " Option" FOR x = 13 TO 92 FOR y = 15 + 16 * 6 TO 33 + 16 * 6 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "j" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 2, 93, 34 + 16 * 2 GOSUB RedrawMenu: COLOR 8: LOCATE 4, 3: PRINT " Journal" FOR x = 13 TO 92 FOR y = 15 + 16 * 2 TO 33 + 16 * 2 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "a" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 4, 93, 34 + 16 * 4 GOSUB RedrawMenu: COLOR 8: LOCATE 6, 3: PRINT " Action" FOR x = 13 TO 92 FOR y = 15 + 16 * 4 TO 33 + 16 * 4 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "e" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 8, 93, 34 + 16 * 8 GOSUB RedrawMenu: COLOR 8: LOCATE 10, 3: PRINT " Equip" FOR x = 13 TO 92 FOR y = 15 + 16 * 8 TO 33 + 16 * 8 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "m" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 10, 93, 34 + 16 * 10 GOSUB RedrawMenu: COLOR 8: LOCATE 12, 3: PRINT " Magic" FOR x = 13 TO 92 FOR y = 15 + 16 * 10 TO 33 + 16 * 10 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "i" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 14, 93, 34 + 16 * 14 GOSUB RedrawMenu: COLOR 8: LOCATE 16, 3: PRINT " Item" FOR x = 13 TO 92 FOR y = 15 + 16 * 14 TO 33 + 16 * 14 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "s" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 16, 93, 34 + 16 * 16 GOSUB RedrawMenu: COLOR 8: LOCATE 18, 3: PRINT " Save" FOR x = 13 TO 92 FOR y = 15 + 16 * 16 TO 33 + 16 * 16 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "q" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 18, 93, 34 + 16 * 18 GOSUB RedrawMenu: COLOR 8: LOCATE 20, 3: PRINT " Quit" FOR x = 13 TO 92 FOR y = 15 + 16 * 18 TO 33 + 16 * 18 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE "h" LINE (7, 7)-(96, 366), 0, BF DrawBox 10, 12 + 16 * 20, 93, 34 + 16 * 20 GOSUB RedrawMenu: COLOR 8: LOCATE 22, 3: PRINT " Help" FOR x = 13 TO 92 FOR y = 15 + 16 * 20 TO 33 + 16 * 20 IF POINT(x, y) = 0 THEN PSET (x, y), 12 NEXT y NEXT x CASE ELSE END SELECT IF fjf$ = "q" THEN GOSUB BeginQuit: IF fjf$ = "f" THEN GOSUB BeginFeats: 'IF fjf$ = "i" THEN GOSUB BeginItems: 'IF fjf$ = "e" THEN GOSUB BeginEquip: 'IF fjf$ = "m" THEN GOSUB BeginMagic: 'IF fjf$ = "a" THEN GOSUB BeginActions: 'IF fjf$ = "s" THEN GOSUB BeginSave: IF fjf$ = "o" THEN GOSUB BeginOptions: 'IF fjf$ = "h" THEN GOSUB BeginHelp: 'IF fjf$ = "j" THEN GOSUB BeginJournal: 'IF fjf$ = "w" THEN GOSUB BeginWorldMap: IF fjf$ = "c" THEN GOSUB BeginCharacter: IF fjf$ = "r" THEN GOTO EndMenu: GetKey IF fjf$ = "q" AND ActiveSubMenu$ = "q" THEN END ActiveSubMenu$ = fjf$ GOTO BeginMenu: '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** GOSUBS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS '********************************************************************** FEATS BeginFeats: GOSUB CMW: DrawBox 110, 5, 634, 458 'SubMenu box DrawBox 115, 298, 629, 452 'description area COLOR 8 LOCATE 2, 16: PRINT "Feat LV AP Type To Next Action" LOCATE 3, 16: PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" COLOR 7 LOCATE 4, 16: PRINT " Melee Instinct 9 100 Permanent 9" LOCATE 5, 16: PRINT " Committed Spell 15 85 Instant" LOCATE 6, 16: PRINT " Flickering Wrist 25 125 Instant " LOCATE 7, 16: PRINT " Spell Focus 50 200 Permanent" LOCATE 8, 16: PRINT " Weapon Focus 25 10 Permanent " LOCATE 9, 16: PRINT " Chemist 4 - Dormant " LOCATE 10, 16: PRINT " Empathetic 3 - Dormant " '************************* USER INPUT RETURN '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS '********************************************************************** ITEMS BeginItems: GOSUB CMW: PAINT (1, 1), 0 LineLength = 378 MaxOptions = 27 MinOptions = 1 CurrentOption = FIX((MaxOptions - MinOptions) / 2) IF CurrentOption < MinOptions THEN CurrentOption = MinOptions GOSUB BlackenMenuColors: LINE (0, 0)-(639, 479), 1, B 'line in text color, ready for paint LOCATE 2, 2: COLOR 1: PRINT "®® Items ¯¯" LOCATE 4, 2: PRINT "QTY NAME TYPE VALUE WEIGHT" LOCATE 6, 2: PRINT "16 Restore Strength Potion 100 0.5" LOCATE 8, 2: PRINT " 6 Restore Health Potion 100 0.5" LOCATE 10, 2: PRINT " 1 Restore Strength Potion 100 0.5" LOCATE 12, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 14, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 16, 2: PRINT " 1 Ball Lightning Scroll 5000 0.2" LOCATE 18, 2: PRINT "16 Restore Strength Potion 100 0.5" LOCATE 20, 2: PRINT " 6 Restore Health Potion 100 0.5" LOCATE 22, 2: PRINT " 1 Restore Strength Potion 100 0.5" LOCATE 24, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 26, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 28, 2: PRINT " 1 Ball Lightning Scroll 5000 0.2" LOCATE 30, 2: PRINT "16 Restore Strength Potion 100 0.5" LOCATE 32, 2: PRINT " 6 Restore Health Potion 100 0.5" LOCATE 34, 2: PRINT " 1 Restore Strength Potion 100 0.5" LOCATE 36, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 38, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 40, 2: PRINT " 1 Ball Lightning Scroll 5000 0.2" LOCATE 42, 2: PRINT "16 Restore Strength Potion 100 0.5" LOCATE 44, 2: PRINT " 6 Restore Health Potion 100 0.5" LOCATE 46, 2: PRINT " 1 Restore Strength Potion 100 0.5" LOCATE 48, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 50, 2: PRINT " 6 Restore Strength Potion 100 0.5" LOCATE 52, 2: PRINT " 1 Ball Lightning Scroll 5000 0.2" LOCATE 54, 2: PRINT "16 Restore Strength Potion 100 0.5" LOCATE 56, 2: PRINT " 6 Restore Health Potion 100 0.5" LOCATE 58, 2: PRINT " 1 Restore Strength Potion 100 0.5" PAINT (1, 1), 2, 1 GOSUB SetUpMenuScreen: GOSUB DSOL: '************************* USER INPUT BeginItemLoop: SLEEP 'GetKey IF fjf$ = KeyDown$ THEN GOSUB RSOL: CurrentOption = CurrentOption + 1 IF CurrentOption > MaxOptions THEN CurrentOption = MinOptions GOSUB DSOL: END IF IF fjf$ = KeyUp$ THEN GOSUB RSOL: CurrentOption = CurrentOption - 1 IF CurrentOption < MinOptions THEN CurrentOption = MaxOptions GOSUB DSOL: END IF IF fjf$ = "q" THEN GOTO EndItemLoop: GOTO BeginItemLoop: EndItemLoop: LINE (0, 0)-(640, 480), 0, BF RETURN '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP '********************************************************************** EQUIP BeginEquip: GOSUB CMW: RETURN '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC '********************************************************************** MAGIC BeginMagic: GOSUB CMW: RETURN '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS '******************************************************************** ACTIONS BeginActions: GOSUB CMW: PAINT (1, 1), 0 GOSUB BlackenMenuColors: LINE (0, 0)-(639, 479), 1, B 'line in text color, ready for paint LOCATE 2, 2: COLOR 1: PRINT "®® Actions ¯¯ (Press a number 0-9 to assign as action)" LOCATE 4, 2: PRINT "Key Action Performed Cost" LOCATE 6, 2: PRINT " Counterattack 200 AP" LOCATE 8, 2: PRINT " Cast Firespray 35 AP" LOCATE 10, 2: PRINT " " LOCATE 12, 2: PRINT " " LOCATE 14, 2: PRINT " " LOCATE 16, 2: PRINT " " LOCATE 18, 2: PRINT " " LOCATE 20, 2: PRINT " " LOCATE 22, 2: PRINT " " LOCATE 24, 2: PRINT " " PAINT (1, 1), 2, 1 GOSUB SetUpMenuScreen: '************************* USER INPUT SLEEP 'GetKey IF fjf$ = "q" THEN END LINE (0, 0)-(640, 480), 0, BF RETURN '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE '*********************************************************************** SAVE BeginSave: GOSUB CMW: RETURN '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options '******************************************************************** Options BeginOptions: GOSUB CMW: DrawBox 110, 5, 634, 458 'SubMenu box DrawBox 115, 298, 629, 452 'description area COLOR 8: LOCATE 2, 16: PRINT "Options": LOCATE 3, 16: PRINT "ÄÄÄÄÄÄÄÄ" LOCATE 4, 16: PRINT " Colors -" COLOR 7: LOCATE 5, 16: PRINT " Menu Screen Background" LOCATE 6, 16: PRINT " Box Outside" LOCATE 7, 16: PRINT " Box Middle" LOCATE 8, 16: PRINT " Box Inside" LOCATE 9, 16: PRINT " Normal Text" LOCATE 10, 16: PRINT " Special Text" LOCATE 11, 16: PRINT " Progress Bar (Foreground)" LOCATE 12, 16: PRINT " Progress Bar (Background)" LOCATE 13, 16: PRINT " Behind Selected Option" COLOR 8: LOCATE 14, 16: PRINT " Gameplay -": COLOR 7 LOCATE 15, 16: PRINT " HP - Bar or Numbers" LOCATE 16, 16: PRINT " MP - Bar or Numbers" LOCATE 17, 16: PRINT " XP - Bar or Numbers" LOCATE 18, 16: PRINT " Something Else Here" RETURN '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT '*********************************************************************** QUIT BeginQuit: GOSUB CMW: DrawBox 110, 12 + 16 * 18, 300, 34 + 16 * 18 COLOR 8: LOCATE 20, 16: PRINT "Press Q again to quit." RETURN '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help '*********************************************************************** Help BeginHelp: GOSUB CMW: OptionSelected$ = "a" PAINT (1, 1), 0 GOSUB BlackenMenuColors: LINE (0, 0)-(639, 479), 1, B 'line in text color, ready for paint LOCATE 2, 2: COLOR 1: PRINT "®® Help ¯¯" LOCATE 3, 2: PRINT "Press a Key to browse a topic or anything else to return to the Main Menu..." LOCATE 5, 2: PRINT " A - Keys" LOCATE 7, 2: PRINT " B - Gameplay" LOCATE 9, 2: PRINT " C - Feats" LOCATE 11, 2: PRINT " D - Actions" LOCATE 13, 2: PRINT " E - World Map" LINE (8, 115)-(630, 471), 1, B PAINT (1, 1), 2, 1 GOSUB SetUpMenuScreen: BeginSCHelp: SELECT CASE OptionSelected$ CASE "a" LINE (9, 116)-(629, 470), 0, BF LOCATE 16, 3: PRINT "¯ Keys" LOCATE 17, 3: PRINT "Typical Responses" LOCATE 18, 3: PRINT " Most questions can be answered with a simple Y or N." LOCATE 19, 3: PRINT " Menus are arranged so that the capitalized letter in the word activates" LOCATE 20, 3: PRINT " that selection. In other words, pressing Q means Quit, H means Help, etc." LOCATE 21, 3: PRINT " Here is another type of menu:" LOCATE 22, 3: PRINT " 0- Firespray" LOCATE 23, 3: PRINT " 1- 2x Slash" LOCATE 24, 3: PRINT " 2- Whatever..." LOCATE 25, 3: PRINT " That means you have three options, 0, 1, and 2. These keys change often," LOCATE 26, 3: PRINT " so if you dont see them, they aren't available." LOCATE 27, 3: PRINT "World Map" LOCATE 28, 3: PRINT " The world map is slightly different. Each key has a specific function. " LOCATE 29, 3: PRINT " M - Brings up the Main Menu" LOCATE 30, 3: PRINT " R - Rest " LOCATE 31, 3: PRINT " Also, certain keys are available on both the Main Menu and the World Map." LOCATE 32, 3: PRINT " J - Journal" LOCATE 33, 3: PRINT " S - Save your game" LOCATE 34, 3: PRINT " Q - Brings up a quit menu that prompts for save" LOCATE 35, 3: PRINT "COMMON KEYS " LOCATE 36, 3: PRINT " Keys common across all mediums are q and r. Sometimes q will end the game." LOCATE 37, 3: PRINT " Sometimes it will go back to where you just were. R will always go back to" LOCATE 38, 3: PRINT " where you just were. In this case, both q and r will take you back to the" LOCATE 39, 3: PRINT " Main Menu. If you push r at the Main Menu, you will be taken back to the" LOCATE 40, 3: PRINT " World Map. If you push q, you will activate the Quit menu. See?" CASE "d" LINE (9, 116)-(629, 470), 0, BF ' x LOCATE 16, 3: PRINT "Actions - The heart of combat" LOCATE 17, 3: PRINT " This game is different from most rpg games in that there is no attack" LOCATE 18, 3: PRINT " button. Instead, there are several different types of attack for each" LOCATE 19, 3: PRINT " type of weapon. Each of these is a seperate action. You can assign each" LOCATE 20, 3: PRINT " of these actions to keys 0-9. In battle, when you press that key, you " LOCATE 21, 3: PRINT " will perform that action, provided you meet the requirements. Certain" LOCATE 22, 3: PRINT " actions will require more AP (Action Points) than others. See below for" LOCATE 23, 3: PRINT " an example." LOCATE 24, 3: PRINT "Key Action Cost" LOCATE 25, 3: PRINT " 0 Slash 25 AP" LOCATE 26, 3: PRINT " 1 Stab 15 AP" LOCATE 27, 3: PRINT " 2 Leg Swipe 55 AP" LOCATE 28, 3: PRINT " 3 Use Item ??? AP" LOCATE 29, 3: PRINT " 4 Firespray 90 AP 15 MP" LOCATE 30, 3: PRINT " 5 Heal 30 AP 20 MP" LOCATE 31, 3: PRINT " 6 Backflip 40 AP" LOCATE 32, 3: PRINT " 7 etc" LOCATE 33, 3: PRINT " 8 " LOCATE 34, 3: PRINT " 9 " LOCATE 35, 3: PRINT "The numbers down the left hand column represent actions. A grey number means" LOCATE 36, 3: PRINT "that you do not meet the requirements to use that action. A green number " LOCATE 37, 3: PRINT "means you can use it. A red number means that actions cannot be used for " LOCATE 38, 3: PRINT "various reasons. (Mute will prevent you from casting spells, etc) " LOCATE 39, 3: PRINT "Try these during battle ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" LOCATE 40, 3: PRINT "Acrobatic move + attack (this will increase your Flashy Bonus)" LOCATE 41, 3: PRINT "(When in defensive mode) Attack + Defensive (this is a smart tactic that " LOCATE 42, 3: PRINT " will minimize damage at the cost of a few AP)" LOCATE 43, 3: PRINT "Defensive + Use Item (always put yourself in defensive mode before digging" LOCATE 44, 3: PRINT " around in your pack)" LOCATE 45, 3: PRINT "Attack + attack + attack... (this can overwhelm the enemy, killing him " LOCATE 46, 3: PRINT " before he has a chance to attack you)" LOCATE 47, 3: PRINT "Knock Down + attack (opponents on the ground are easier to hit, and easier" LOCATE 48, 3: PRINT " to dodge. Hit'em while they're down...)" LOCATE 49, 3: PRINT "" LOCATE 50, 3: PRINT "" LOCATE 51, 3: PRINT "" CASE "b" LINE (9, 116)-(629, 470), 0, BF ' x CASE ELSE LINE (9, 116)-(629, 470), 0, BF LOCATE 16, 3: PRINT "¯ Obviously, you pressed an invalid key." END SELECT '************************* USER INPUT fjf$ = "" DO: fjf$ = INKEY$: LOOP UNTIL fjf$ <> "" IF fjf$ = "q" THEN GOTO EndHelp: IF fjf$ = "r" THEN GOTO EndHelp: OptionSelected$ = fjf$ GOTO BeginSCHelp: EndHelp: fjf$ = "" LINE (0, 0)-(640, 480), 0, BF RETURN '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal '******************************************************************** Journal BeginJournal: GOSUB CMW: RETURN '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map '******************************************************************* World Map BeginWorldMap: GOSUB CMW: RETURN '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character '******************************************************************* Character BeginCharacter: GOSUB CMW: DrawBox 110, 5, 634, 458 'SubMenu box DrawBox 135, 42, 230, 131 'around simple data level, hp etc DrawBox 115, 298, 629, 452 'description area COLOR 7 LOCATE 2, 16: PRINT "Halifax de Puontz" LOCATE 4, 19: PRINT " Level 68" LOCATE 5, 19: PRINT "HP 124/640" COLOR 9: LOCATE 5, 22: PRINT "125": COLOR 7 LOCATE 6, 19: PRINT " MP 45/45" LOCATE 7, 19: PRINT "Next Level" LOCATE 8, 19: PRINT " 910,230" COLOR 8: LOCATE 10, 16: PRINT "Stat Base Actual" LOCATE 11, 16: PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" COLOR 7: LOCATE 12, 16: PRINT " Strength 130 150" LOCATE 13, 16: PRINT " Dexterity 204 214" LOCATE 14, 16: PRINT " Constitution 110 115" LOCATE 15, 16: PRINT " Wisdom 89 101" LOCATE 16, 16: PRINT " Intelligence 97 102" LOCATE 17, 16: PRINT " Charisma 54 54" COLOR 8: LOCATE 18, 16: PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" LOCATE 2, 43: PRINT "Skill Level Progress" LOCATE 3, 43: PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" COLOR 7 LOCATE 4, 44: PRINT "Alteration 29" LOCATE 5, 44: PRINT "Conjuration 4" LOCATE 6, 44: PRINT "Alteration 29" LOCATE 7, 44: PRINT "Alteration 29" LOCATE 8, 44: PRINT "Alteration 29" LOCATE 9, 44: PRINT "Alteration 29" LOCATE 10, 44: PRINT "Alteration 29" LOCATE 20, 16: PRINT "This is the topline of the description area." LOCATE 28, 16: PRINT "This is the bottomline of the description area." 'GOSUB RestoreMenuColors: RETURN '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** END '*********************************************************************** OF '*********************************************************************** Menu '*********************************************************************** Stuff '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** '*********************************************************************** RestoreMenuColors: CALL DoColor(1, 40, 40, 40) 'base color for catergory titles CALL DoColor(2, 0, 0, 0) ' CALL DoColor(3, 30, 30, 30) 'box color outisde CALL DoColor(4, 60, 60, 60) 'box color middle CALL DoColor(5, 30, 30, 30) 'box color inside CALL DoColor(6, 0, 0, 10) 'bk outisde of boxes (inside bk is black) CALL DoColor(7, 35, 35, 35) 'text 1 (main) CALL DoColor(8, 45, 45, 0) 'text 2 (titles, special) CALL DoColor(9, 30, 0, 0) 'text 3 (other) CALL DoColor(10, 0, 0, 0) 'progress bar filled CALL DoColor(11, 0, 0, 0) 'progress bar empty CALL DoColor(12, 0, 0, 20) 'behind selected item CALL DoColor(13, 0, 0, 0) ' CALL DoColor(14, 0, 0, 0) ' CALL DoColor(15, 0, 0, 0) ' RETURN BlackenMenuColors: FOR i = 1 TO 15 CALL DoColor(i, 0, 0, 0) NEXT i RETURN SetUpMenuScreen: DrawBox 4, 4, 99, 369 'catergories DrawBox 4, 373, 99, 474 'general info (time, gold whatever) FillScreen GOSUB BlackenMenuColors: COLOR 1 PRINT LOCATE 2, 3: PRINT "Character": PRINT LOCATE 4, 3: PRINT " Journal": PRINT LOCATE 6, 3: PRINT " Action": PRINT LOCATE 8, 3: PRINT " Option": PRINT LOCATE 10, 3: PRINT " Equip": PRINT LOCATE 12, 3: PRINT " Magic": PRINT LOCATE 14, 3: PRINT " Feats": PRINT LOCATE 16, 3: PRINT " Item": PRINT LOCATE 18, 3: PRINT " Save": PRINT LOCATE 20, 3: PRINT " Quit": PRINT LOCATE 22, 3: PRINT " Help": PRINT LOCATE 25, 3: PRINT "Played" LOCATE 26, 3: PRINT "00:59:34" LOCATE 27, 3: PRINT "Gold" LOCATE 28, 3: PRINT "4,345" GOSUB RestoreMenuColors: RETURN RSOL: LINE (4, 28 + CurrentOption * 16 - 8)-(LineLength + 1, 42 + CurrentOption * 16 - 8), 2, B LINE (5, 29 + CurrentOption * 16 - 8)-(LineLength, 41 + CurrentOption * 16 - 8), 2, B LINE (6, 30 + CurrentOption * 16 - 8)-(LineLength - 1, 40 + CurrentOption * 16 - 8), 2, B RETURN DSOL: LINE (4, 28 + CurrentOption * 16 - 8)-(LineLength + 1, 42 + CurrentOption * 16 - 8), 8, B LINE (5, 29 + CurrentOption * 16 - 8)-(LineLength, 41 + CurrentOption * 16 - 8), 1, B LINE (6, 30 + CurrentOption * 16 - 8)-(LineLength - 1, 40 + CurrentOption * 16 - 8), 8, B RETURN RedrawMenu: COLOR 7 LOCATE 2, 3: PRINT "Character" LOCATE 4, 3: PRINT " Journal" LOCATE 6, 3: PRINT " Action" LOCATE 8, 3: PRINT " Option" LOCATE 10, 3: PRINT " Equip" LOCATE 12, 3: PRINT " Magic" LOCATE 14, 3: PRINT " Feats" LOCATE 16, 3: PRINT " Item" LOCATE 18, 3: PRINT " Save" LOCATE 20, 3: PRINT " Quit" LOCATE 22, 3: PRINT " Help" RETURN CMW: LINE (110, 5)-(634, 474), 6, BF RETURN EndMenu: FOR i = 1 TO 15: a$ = INKEY$: NEXT i: fjf$ = "" END 'LineLength = 278 'MaxOptions = 2 'MinOptions = 1 'CurrentOption = FIX((MaxOptions - MinOptions) / 2) 'IF CurrentOption < MinOptions THEN CurrentOption = MinOptions SUB DoColor (hue, r, g, B) OUT &H3C8, hue OUT &H3C9, r OUT &H3C9, g OUT &H3C9, B END SUB SUB DrawBox (x1, y1, x2, y2) LINE (x1, y1)-(x2, y2), 0, BF LINE (x1, y1)-(x2, y2), 3, B LINE (x1 + 1, y1 + 1)-(x2 - 1, y2 - 1), 4, B LINE (x1 + 2, y1 + 2)-(x2 - 2, y2 - 2), 5, B END SUB SUB FillScreen 'this will be changed to reflect the user changeable options of box color and 'bk fill color. in other words, 6 and 3 will be UOBKColor and UOBoxOutside PAINT (0, 0), 6, 3 END SUB SUB GetKey fjf$ = "" DO: fjf$ = INKEY$: LOOP UNTIL fjf$ <> "" FOR i = 1 TO 15 a$ = INKEY$ NEXT i 'fjf still equals something... END SUB