Senast uppdaterat: 2008-05-17 av Fredrik Ramsberg Variabler --------- A$ Används i regel för att lagra spelarens input Z Spelarens rumsnummer A1 1 om det är den 1:a april, annars 0 X Den riktning som spelaren skrivit Ute: 1=VÄST, 2=ÖST, 3=NORD, 4=SYD, 5=NV, 6=SV, 7="HJÄLP", 8=SO, 9=NO Inne: 1=UPP, 2=NER, 3=VÄNSTER, 4=HÖGER, 5=FRAM, 6=BAKÅT, 7="HJÄLP" I Objekt som spelaren angivit X% Handling i hissen: 1: Man har försökt göra något annat än att använda hissen. 2: Man har valt att trycka hit hissen (den kommer omedelbart och man går direkt in i den) 3: Man tryckte på knappen men hissen är trasig. X1 Spelaren ska få se rumsbeskrivningen igen. M2% Loggningfunktionen M3% Loggningfunktionen Arrayer ------- A(0) Antal objekt i spelet A(1..30) Position för alla objekt A$(I,1) Fullt namn i CAPS för objekt I A$(I,2) Förkortat namn i CAPS för objekt I A$(I,3) Förkortad synonym i CAPS för objekt I A$(I,4) Fullt namn i gemener för objekt I J(I) 1 om det finns ett telefonjack i rum I, annars 0 S(0) Antalet index i S som ska sparas vid sparning till fil (räknat från index 1) (är 53) S(1) Antal saker spelaren bär (0-9) S(2) Spelarens poäng S(3) Relaterat till rövaren S(4) Antal ggr som man hört rövarens fotsteg S(5) Antalet gjorda besök i Osvalds rum S(6) Vaktens (objekt 29) status: 0-3 (0=normal, 1=full, 2=död, 3=sover) S(7) 0 om porten är låst, 1 om den är olåst S(8) Antalet gjorda besök i hallen S(9) Antalet gjorda besök i ÅP-rummet S(10) Antalet gjorda besök i källaren S(11) S(12) Antalet gjorda besök på vinden S(13) Antalet gjorda besök i tomma rummet S(14) Antalet gjorda besök i underliga rummet S(15) Trappans status: 0=hel, 1=trasig S(16) S(17) Ned-rulltrappans status: 1=spärras av gatukontoret, 0=inte S(18) Upp-rulltrappans status: 1=spärras av (g/s)atukontoret, 0=inte S(19) Ytterportens status: 1=öppen, 0 =stängd S(20) 1 om man har grävt i skogen ovanför rövargömstället S(21) Dragnumret då spelaren vrickade foten S(22) Om jämnt tal, är spelaren i hissen S(23) 1 om garderoben är öppen S(24) Antalet poster i W$() S(25) Antalet gjorda besök i Viggos atelje S(26) 1 om man har sett stugrådet sammanträda i matrummet S(27) Antalet gjorda besök i telefonstugan S(28) Status för telefon: 2=inkopplad?, 7=telejacken borta? S(29) 1 om man har ringt personalköket S(30) Rumsnumret där gubben är S(31) 1 om brännvinsflaskan är tom, annars 0 S(32) 1 om vattenflaskan är tom, annars 0 S(33) 1 om bollen är opumpad, annars 0 S(34) S(35) 0 om båten ligger vid östra stranden, 1 om södra, 0.5 om ingetdera S(36) Spelaren befinner sig: 0=inomhus, 1=utomhus, 2=? S(37) Antalet siffergrupper i W$(5) (dvs antal tecken / 3) S(38) Lampans status: 0=ej ännu hittad?, 1=hittad, 2=borta S(39) Den vånings hissrum som spelaren är i (1-9) S(40) Hissdörrens status: Våningsnummer 1-9 om den är på den våningen och är öppen, 10 om hissen är trasig. S(41) 1=Hissen är trasig/farlig, 0=hel S(42) Antalet gjorda besök i högra pannrummet S(43) S(44) -1 eller ett rumsnummer - troligen rummet där förlängningssladden slutar S(45) Labyrintstatus: troligen antal drag som man inte gått åt fel håll S(46) Domedagsräknare 0-6. Avgör om man kan återupplivas. S(47) Det finns ett hål i väggen i Viggos rum S(48) Glasrutans status: -1, 0, 1 (kanske även högre?) S(49) 0 om man inte har interagerat m gubben eller har irriterat honom, 1 om man givit honom vatten, 2 om man har bländat gubben med lampan S(50) Aktuellt dragnummer. "TITTA" räknas inte. S(51) Dragnumret då man gav vakten brännvin. S(52) Dragnumret då man begrov liket. S(53) Blåa djurets status: 1=har inte setts, 2+=har setts S(54) S(55) W$(1) Namnen på medlemmarna i stugrådet W$(2) Spelarens intresse - sätts när Fozzi (eller ngn annan?) frågar efter det W$(3) Aktuell tid - sätts vid spelstart W$(4) Aktuellt datum - sätts vid spelstart W$(5) 3-siffer-grupper för alla rumsnr som *kan* få telefonjack W$(6) Spelarens namn - sätts när Fozzi eller ngn annan frågar efter det X(1..9) ASCII-värden för de 9 siffror som Fozzi ber spelaren ange. Styr hans berättelse. Annat ----- Objekt 1-14 är tagbara Objekten position: 1: hålls av spelaren (eller "följer spelaren" för vakten) 2: hålls av vakten (objekt 29)) FNI$ Skriver ut en prompt och ber om ett svar som sedan returneras Övriga Hållpunkter i koden -------------------------- 00001-00003 DIM:ar, hoppa till 90000 00005-00060 Programhuvud 00700-00729 SUBRUTIN Skriv ut ansikte 00730-00735 SUBRUTIN "Under byggnad" 06000-06210 SUBRUTIN Skriv ut objekt 06300-06560 RUTIN Ta 07000-07145 RUTIN Släpp 07500-07504 SUBRUTIN för att släppa allt utan att spelaren bett om det 07556-07588 Rum 35: Hissens maskinrum 07999- Rum 43: Labyrintrum 8 8290 8600 9250 9260 11000 12000 12200 12202 15200 15202 20500 27050-27085 SUBRUTIN Inkoppling telefonjack 27100-28166 Hör till parser 29000-29125 Hör till subrutinen på 06000 30000-30058 Hör till parser 90000-90214 Initiering av spelet 90300-90358 Datarader för objekt 1-12 (skatter) samt 15-30 (andra objekt) 90400-90436 Datarader för Fozzis berättelse 90600-90995 Funktionsdefinitioner - undersöks närmare!!! 91000-91090 SUBRUTIN Skriv ut hjälptext 97000-97016 Felhantering 98000-98034 ?Någon udda debugkod? 99000-99999 Avlutning av spelet 99160 Inväljning i stugrådet och avslut SUBRUTINER ---------- proc_print_thorvald 00700-00729 Problemfri Ingångar: 0: 700 1: 702 proc_under_construction 00730-00735 Problemfri proc_print_objects 06000-06210 Inte helt problemfri * 6002 GOTO 99160 - Fult uthopp för att man vunnit spelet 29000-29125 Problemfri proc_parse 06300-07145 Problemfri 08600-08663 Problemfri 09950-09958 Inte problemfri * Gör ett fulhopp till 99000 om man väljer att sluta. 12000-12999 Inte helt problemfri - kräver en minimal omskrivning * 12204-12208 GOSUB + RETURN ska skrivas om som GOTO 27100-28166 Problemfri 30000-30058 Problemfri 80000-80565 Inte problemfri * Hoppar ur med GOTO till specifika rum, fast den är i subrutin! * Nästan hela koden ska ersättas av "save" och "load" i Inform. 98000-98034 Problemfri * Kan dock behöva bounds-checking i Inform, då ON ERROR försvinner. Ingångar: 0: 8600 1: 12000 2: 12200 3: 12202 proc_force_drop_all 07500-07504 Problemfri proc_can_go_any_dir 08290-08291 Problemfri proc_desc_lift_room 09250-09256 Problemfri proc_lift_action 09260-09280 Problemfri proc_print_err_msg 11000-11230 Problemfri proc_get_command 15200-15205 Problemfri Ingångar: 0: 15200 1: 15202 proc_alt_get_command 20500-20520 Problemfri proc_setup_phone 27050-27085 Problemfri proc_instructions 91000-91090 Problemfri func_get_none_word(I1) [FNA$] 90600-90604 func_sleep(X1$,X) [FNS$] 90650-90675 func_upcase(A$) [FNC$] 90700-90765 func_left_string(X1$,X) [FNL$] 90800-90815 func_right_string(X1$,X) [FNR$] 90820-90835 func_mid_string(X1$,X) [FNM$] 90840-90855 func_read_nth_val(X) [FNF$] 90900-90940 func_user_input(X1$) [FNI$] 90950-90995 Ställen där spelet ber om ett kommando: --------------------------------------- 8335 i huvudprogrammet 9315 i huvudprogrammet (ska inte täckas av undo) 9531 i huvudprogrammet (ska inte täckas av undo) 12203 i proc_parse 12213 i proc_parse 15203 i proc_get_command 20504 i alt_get_command 35050 i huvudprogrammet Saker som måste fixas --------------------- FIXAT: 8148 i stuga.inf - felgrupperade satser efter ELSE FIXAT: 7568 i stuga.inf -''- FIXAT: 20045 i stuga.inf -''- FIXAT: 25118 i stuga.inf -''- FIXAT: Rad 9220 skriver ut chr(7) vilket nog är ett beep. Kan inte göras i Inform (?), så den är utkommenterad. (Spelar nu ett beep om målet är Z-kod) FIXAT: Rad 6002 är utkommenterad, pga att hoppet inte kan göras. FIXAT: I proc_parse: Vad göra om återskapandet misslyckas - sätta ngn speciell flagga eller dyl? FIXAT: Rad 80350-80400 (hoppa till olika rum) flyttas till huvudprogrammet! Efter parseranrop får varje rum kolla om restore har utförts och då göra jump till 80350. Rad 12068 utkommenterad, pga att VEKTOR-rutinen på rad 98000 är svåröversatt. Får återinföras senare om vi hittar en bra metod. FIXAT: Rad 9953 är utkommenterad, pga att hoppet till 99000 inte kan göras. 12950-12999 ska skrivas om helt - använd Informs egen loggningsfunktion! 27446(proc_parse) - Kolla i hela programmet om -1 är ett OK substitut för 0.5 i S(35)! -- Kollat main och parse - ser OK ut. 9312(main) - Kolla vad PRINT# gör FIXAT: 90002(main) - Be om tid och datum. 99002-99003(main) - Innehåller logg-relaterade instruktioner Rader som är mål för GOTO-satser (behöver labels) -------------------------------- 00724, 01499, 01500, 01504, 01511, 01530, 01538, 01540, 01908, 01909, 01918, 01919, 01928, 01929, 01939, 01944, 01950, 01956, 01959, 01960, 01969, 01970, 01980, 02008, 02012, 02018, 02019, 02025, 02032, 02033, 02034, 02038, 02043, 02044, 02051, 02065, 02066, 02074, 02075, 02083, 02087, 02089, 02094, 02101, 02104, 02107, 02109, 02111, 02115, 02120, 02123, 02126, 02127, 02129, 02135, 02138, 02145, 02149, 02150, 02157, 02161, 02164, 02168, 02173, 02180, 02183, 02199, 02200, 02201, 02204, 02207, 02216, 02218, 02220, 02241, 02242, 02272, 02277, 02290, 06014, 06017, 06020, 06040, 06069, 06076, 06100, 06112, 06120, 06124, 06130, 06200, 06210, 06300, 06305, 06330, 06338, 06350, 06355, 06360, 06370, 06380, 06400, 06410, 06418, 06420, 06422, 06500, 06535, 06550, 06560, 07000, 07020, 07030, 07040, 07043, 07075, 07081, 07090, 07094, 07100, 07135, 07556, 07569, 07570, 07588, 07999, 08000, 08011, 08017, 08019, 08020, 08034, 08035, 08054, 08067, 08070, 08071, 08093, 08095, 08102, 08112, 08131, 08137, 08142, 08144, 08148, 08149, 08153, 08155, 08250, 08252, 08253, 08254, 08256, 08258, 08261, 08263, 08300, 08304, 08310, 08320, 08322, 08323, 08327, 08328, 08329, 08330, 08333, 08335, 08343, 08345, 08349, 08350, 08363, 08365, 08373, 08376, 08380, 08381, 08391, 08392, 08400, 08403, 08414, 08419, 08420, 08430, 08440, 08445, 08600, 08613, 08626, 08629, 08632, 08700, 08800, 08808, 08810, 08833, 08836, 08842, 08845, 08850, 08852, 08857, 08860, 08873, 08875, 08880, 08884, 08890, 08897, 08904, 08907, 08913, 08915, 08920, 08929, 08943, 08944, 08950, 08953, 08960, 08963, 08970, 08973, 08977, 08980, 08999, 09000, 09008, 09019, 09020, 09026, 09035, 09045, 09047, 09056, 09065, 09069, 09075, 09099, 09100, 09104, 09144, 09145, 09150, 09174, 09175, 09181, 09189, 09190, 09196, 09210, 09216, 09220, 09222, 09224, 09228, 09233, 09238, 09262, 09270, 09276, 09278, 09280, 09300, 09305, 09307, 09308, 09315, 09316, 09330, 09335, 09355, 09356, 09359, 09360, 09361, 09372, 09374, 09390, 09392, 09410, 09416, 09424, 09426, 09432, 09436, 09437, 09439, 09450, 09455, 09459, 09461, 09470, 09479, 09483, 09484, 09490, 09492, 09496, 09501, 09510, 09520, 09523, 09525, 09528, 09535, 09545, 09553, 09556, 09557, 09558, 09562, 09568, 09575, 09950, 09991, 09997, 10000, 10001, 10003, 10009, 10015, 10020, 10030, 10040, 10050, 10052, 10060, 10072, 10084, 10090, 11011, 11100, 11200, 11220, 12000, 12025, 12032, 12050, 12057, 12082, 12083, 12084, 12088, 12089, 12103, 12120, 12130, 12140, 12160, 12170, 12210, 12214, 12220, 12224, 12226, 12230, 12240, 12255, 12270, 12280, 12282, 12290, 12292, 12296, 12300, 12306, 12310, 12340, 12350, 12360, 12380, 12390, 12400, 12420, 12440, 12450, 12456, 12466, 12470, 12480, 12486, 12492, 12494, 12510, 12526, 12550, 12555, 12570, 12580, 12584, 12590, 12600, 12650, 12670, 12700, 12710, 12740, 12750, 12770, 12800, 12826, 12835, 12840, 12850, 12860, 12880, 12890, 12900, 12910, 12920, 12924, 12950, 12962, 12970, 12975, 12985, 12999, 13000, 13008, 13010, 13172, 13173, 13195, 13200, 13220, 13235, 13245, 13247, 13252, 14000, 14012, 14022, 14030, 14034, 14099, 14100, 14139, 14998, 15000, 15008, 15018, 15050, 15058, 15060, 15064, 15066, 15076, 15078, 15299, 15300, 15312, 15349, 15350, 15369, 15370, 15382, 15385, 15386, 15425, 15429, 15431, 15432, 15434, 15438, 16000, 16020, 16055, 16060, 16500, 16515, 16530, 16545, 17000, 17010, 17020, 17100, 17150, 17180, 17182, 17185, 17195, 17220, 17240, 18000, 18110, 18120, 20000, 20005, 20006, 20007, 20011, 20013, 20020, 20026, 20028, 20030, 20033, 20035, 20037, 20040, 20042, 20048, 20050, 20054, 20055, 20061, 20063, 20065, 20070, 20075, 20077, 20085, 20090, 20092, 20094, 20102, 20105, 20107, 20143, 20155, 20162, 20165, 20173, 20176, 20178, 20180, 20188, 20191, 20195, 20197, 20199, 20200, 20204, 20206, 20214, 20225, 20230, 20232, 20240, 20248, 20251, 20255, 20256, 20263, 20266, 20270, 20278, 20281, 20285, 20293, 20295, 20297, 20300, 20309, 20312, 20315, 20324, 20327, 20330, 20338, 20340, 20342, 20350, 20520, 21100, 21120, 21160, 21180, 21220, 21230, 21240, 21300, 21330, 21340, 21350, 21500, 25000, 25010, 25023, 25025, 25035, 25045, 25050, 25060, 25066, 25070, 25100, 25121, 25130, 27050, 27100, 27140, 27200, 27250, 27270, 27280, 27284, 27290, 27300, 27400, 27406, 27424, 27428, 27434, 27440, 27444, 27600, 27604, 27620, 27626, 27630, 27632, 27640, 27650, 27652, 28000, 28010, 28026, 28030, 28090, 28105, 28108, 28110, 28130, 28140, 28150, 28160, 29000, 29050, 30000, 30002, 30010, 30020, 30028, 30036, 30050, 30054, 35000, 35015, 35030, 35035, 35075, 35085, 35100, 35150, 36000, 36015, 36035, 36050, 36070, 36090, 40000, 40015, 40020, 40030, 40100, 40140, 40200, 41000, 41005, 41040, 80000, 80200, 80332, 80340, 80360, 80500, 80520, 80540, 90000, 90090, 90100, 90200, 90660, 90710, 90815, 90835, 90855, 90980, 90990, 97000, 97004, 97010, 98000, 98009, 98020, 98030, 99000, 99160, 99200, 99300, 99350, 99395, 99400,