From 7bd98812f99603a359c41c997e644d23f3ec910c Mon Sep 17 00:00:00 2001 From: Tyrolyean Date: Sun, 15 Mar 2020 01:28:01 +0100 Subject: [PATCH] Added more and more stuff for dipl Signed-off-by: Tyrolyean --- code/textadv/bin/mc.elf | Bin 16512 -> 16448 bytes code/textadv/bin/mc.hex | 455 +++++++++++++------------- code/textadv/build/main.o | Bin 1664 -> 1784 bytes code/textadv/build/sound.o | Bin 1420 -> 1516 bytes code/textadv/build/structures.o | Bin 2684 -> 3316 bytes code/textadv/include/sound.h | 5 + code/textadv/src/main.c | 2 + code/textadv/src/sound.c | 37 ++- code/textadv/src/structures.c | 564 +++++++++++++++++--------------- 9 files changed, 569 insertions(+), 494 deletions(-) diff --git a/code/textadv/bin/mc.elf b/code/textadv/bin/mc.elf index 43056f8fe9aebc7c200279f8e9e672651fc70e52..3397a4c393cbc555282ca6719624c2d241edf560 100755 GIT binary patch delta 4192 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 J!CO8w{tFd72>1X1 diff --git a/code/textadv/bin/mc.hex b/code/textadv/bin/mc.hex index 9e67ced..5910046 100644 --- a/code/textadv/bin/mc.hex +++ b/code/textadv/bin/mc.hex @@ -1,231 +1,226 @@ -:100000000C94F4020C9424030C9424030C94240305 -:100010000C9424030C9424030C9424030C942403C4 -:100020000C9424030C9424030C9424030C942403B4 -:100030000C9424030C9424030C9424030C942403A4 -:100040000C9424030C9424030C9424030C94240394 -:100050000C9424030C94FE040C9424030C942403A9 -:100060000C9424030C9424030C9424030C94240374 -:100070000C9424030C9424030C9424030C94240364 -:100080000C9424030C9424030C9424030C94240354 -:100090000C9424030C9424030C9424030C94240344 -:1000A0000C9424030C9424030C9424030C94240334 -:1000B0000C9424030C9424030C9424030C94240324 -:1000C0000C9424030C9424030C9424030C94240314 -:1000D0000C9424030C9424030C9424030C94240304 -:1000E0000C9424030C944D03300C03DF31FA2B786D -:1000F000D5D86C2945A1026969918D6571B843DE37 -:10010000F2F6786E1DBF344ECB382EFD325975078E -:1001100032E231778433E1EDC56E523627961519F8 -:100120008D8D88AB4DBCF918F5271627818C2FB41F -:100130006E602BF2940CE0597B338FA3C9A4BD579A -:100140003245027F02FB98F723AE1EA53A4D59A90E -:10015000AE849B42917C9B0CB02BB07ACF6DD102C8 -:10016000B2D381B4CE19ACF2C7CB970218F0ABC7AB -:1001700074470906C4A51374D0C3EEA030BFA2E231 -:10018000922497613D4453050FEA0728DAB3EF4FF5 -:10019000FAF955BE9F68336F2B21105CE0B23F73B4 -:1001A000D6D7D4141B271A2A122153ECD5423CCFA0 -:1001B0003C918EDBFAC24B26E35B82C40EC137E56D -:1001C000980BFAB43314DE453631320B746EDBB162 -:1001D000006A8CFA2CD7210F33A3D342650A27FE7D -:1001E0001621B24935918E6BC3C077382E52E92F54 -:1001F000BC7629E84D4BF781EFCBC354D5EB53ECDC -:100200000D06354398C3AF5B842694B3787DE23501 -:10021000F30C1D415715C346E0879BB672EEA37FD2 -:10022000F5D8C28D9C72E920987DD311FBB546EFBD -:10023000C164311979F45F5A7BFA11EEE9B46EDECC -:100240008C316C29A355493BD31C4DCED293BE941F -:10025000F7EFAD71E40DCC6008DD4EF192BCD01F1C -:10026000ED3C48909291CC65AE193481ADF215A564 -:10027000E2C317C6D0E327D8C175CA53329B721F99 -:10028000D8BBB06A4D7DD0FB97047D45F793EAD982 -:100290005601A027E4C700A53DCBF96F666C8F3FE0 -:1002A0002740A974BE7A70557FEE9A76818550D723 -:1002B00087F1FF6BB9FF11F7CA0B673177F7709FB2 -:1002C000371A14F694854B1373E68AF46CDBCBF380 -:1002D000CCCB5F86CA717D957CE4C6F4DC36931383 -:1002E00050A70AE52D55F9A03C8394A95F609C2B8B -:1002F0002BFCB2F66D308BE91451DEF0887104D816 -:10030000190EBE4664B7E6A13B7B4A9ADBE7C607F7 -:10031000E378FD51A8883BBDDA19AE628AB33AA4EE -:10032000C2F9EB26B0D2C8EC4D138629FA4D30DE67 -:10033000C62E2F6FB66A2D9083DBF20E8F2DB35130 -:10034000279E78D87140C4BE544BE84E98182D5F54 -:10035000465DCEFDC7FB8E4BD7815A66AF0EB7D632 -:10036000AC2FAE1D7072DCC4BDC41356DD40B62484 -:100370009D84216580B0B157310BBDE01975B6C6BB -:10038000A564E415D7C1DA9585EDEC632EA287CC80 -:1003900026A932A659E3FD8AEFBB6B093021CFD5E0 -:1003A00086B4EB5D75C5F3FBB3DF5EE281E6AFA714 -:1003B0008FE14EE8C54C73B407DFBE38018E0D8760 -:1003C00042F8E5B8BED8B472B7125439F904E088DF -:1003D000E62F71AB7BE56083C41EBBC5ACC94DEF96 -:1003E000C233A7800C5BF3C36E48FC674CDDF03270 -:1003F0000D61DD88473E0B0B5CC7D109901EF8529A -:10040000529FD25EFBC622690E1FD15AFDC28C0AD2 -:10041000236A926AA99E760565470EF5660647B976 -:10042000A61A17A2E0390CEE59DD49569FD660C3D3 -:1004300041F32EEA91A4F0F7ECFEEC5305340CAC3A -:100440004F244E2F5D5A1EB738670DD83E6D9C7FE6 -:1004500061CA69F26F59E95C58D6B05E0BBC0A5AA2 -:10046000E0598A3EB4A8F5EC1003C54E7161CED2B6 -:100470002C37C49C91AEF8EA85A848906552EB46AB -:10048000AC7584601E7A4D2F7D137DEE744CC0A137 -:1004900083853D153436FFBADF474B449A368A4789 -:1004A000AC0FA7CA89F5F9070877F57DC3B61F47D2 -:1004B0003C5C5C71935C2B72A376B73EAC41855873 -:1004C000512D23DB221CE22B93D8A8578FC79ECB3C -:1004D00024FB3CB757682AFBDEE1398B23BFE47469 -:1004E000EC074F0F24323AB87F8285888C8F929523 -:1004F000989B9EA1A4A7AAADB0B3B6B9BBBEC1C319 -:10050000C6C9CBCED0D3D5D7D9DCDEE0E2E4E6E86D -:10051000E9EBEDEEF0F1F2F4F5F6F7F8F9FAFBFCA1 -:10052000FCFDFDFEFEFEFEFEFEFEFEFEFEFDFDFCF3 -:10053000FCFBFAFAF9F8F7F6F4F3F2F0EFEDECEA77 -:10054000E8E7E5E3E1DFDDDBD8D6D4D1CFCCCAC71D -:10055000C5C2BFBDBAB7B4B1AFACA9A6A3A09D9A9E -:100560009693908D8A8784817D7A7774716E6B689B -:1005700064615E5B5855524F4D4A4744413F3C3998 -:100580003734322F2D2A282623211F1D1B19171619 -:100590001412110F0E0C0B0A0807060504040302BF -:1005A0000201010000000000000000000001010243 -:1005B00002030405060708090A0C0D0E1011131595 -:1005C00016181A1C1E20222527292B2E30333538C9 -:1005D0003B3D404345484B4E5154575A5D6063661E -:1005E000696C6F7276797C7F11241FBECFEFD1E2E8 -:1005F000DEBFCDBF00E00CBF84B78093E10214BE24 -:100600000FB6F894A895809160008861809360008F -:10061000109260000FBE12E0A0E0B2E0E4E8FDE05E -:1006200000E00BBF02C007900D92AC3CB107D9F7B8 -:1006300022E0ACECB2E001C01D92A13EB207E1F7AE -:100640000E94A0050C94C0060C940000CF93C62F06 -:100650000E9426058FEF80BBC1BBEBE0F1E08081FB -:10066000857F808385E08A95F1F7000080818A602C -:100670008083CF9108950E94260510BA11BAEBE04D -:10068000F1E08081837F808385E08A95F1F7000027 -:100690008FB190819C6090830895CF92DF92EF920A -:1006A000FF92CF93C82F80E4C82E82E4D82E8FE02B -:1006B000E82EF12C85E00E943B0385FD06C081E019 -:1006C000C81AD108E108F108A9F76C2F80E00E9450 -:1006D000260390E080E0CF91FF90EF90DF90CF90E5 -:1006E000089563E883E00E94260363E080E00E94AF -:1006F000260360E081E00E94260363E083E00E941D -:10070000260380E092E09093DE028093DD028EE289 -:1007100092E00C949406CF93C62F0E9426058FEF8B -:1007200080BBC1BBEBE0F1E080818D7E808385E002 -:100730008A95F1F7000080818061808380818260EA -:100740008083CF9108950E94260510BA11BAEBE07C -:10075000F1E080818B7E808385E08A95F1F700004F -:100760008FB190819461908308950F931F93CF93DD -:10077000DF9380910F02833009F4B3C0A8F4813075 -:1007800009F444C0CFE7823009F476C0C0E060E0ED -:100790008C2F81700E948B03CF5FCF3FC1F7DF9119 -:1007A000CF911F910F910895843009F4C8C01FE7BD -:1007B000CFEFD0E00FEF853049F76091D2028FEF95 -:1007C000860F8E3F28F080910E02819580930E0255 -:1007D00080E00E948B036091D20281E00E948B0333 -:1007E0004091CC025091CD0257FDDFC08091D002E4 -:1007F0009091D1020196841795070CF0CAC090938E -:10080000D1028093D0021150C1F6C9CFCFE7E09159 -:10081000D202F0E0E851FB4F649181E00E948B032B -:10082000E091D202F0E0E851FB4F649180E00E9439 -:100830008B032091CC023091CD0237FD19C08091FD -:10084000D0029091D1020196821793073CF49093C5 -:10085000D1028093D002C150D1F6A1CF1092D10223 -:100860001092D0028091D2028F5F8093D202F3CF98 -:100870008091D202821BF9CF8091D20287FF1DC0E6 -:100880006FEF80E00E948B036FEF81E00E948B038B -:100890002091CC023091CD0237FD1FC08091D00253 -:1008A0009091D1020196821793076CF49093D10234 -:1008B0008093D002C15001F772CF60E080E00E94C7 -:1008C0008B0360E0E2CF1092D1021092D0028091AF -:1008D000D2028F5F8093D202EDCF8091D202821B31 -:1008E000F9CFCFE76091D20280E00E948B03609144 -:1008F000D20281E00E948B032091CC023091CD0284 -:1009000037FD19C08091D0029091D10201968217D3 -:1009100093073CF49093D1028093D002C15011F719 -:100920003ECF1092D1021092D0028091D2028F5FFE -:100930008093D202F3CF8091D202821BF9CFCFE70E -:10094000E091CE02F091CF02E851FF4F649181E037 -:100950000E948B03E091CE02F091CF02E851FF4F4D -:10096000649180E00E948B038091CE029091CF022F -:100970000196811524E0920738F49093CF0280937A -:10098000CE02C150E9F60BCF1092CF021092CE02E8 -:10099000F8CF1092D1021092D0028091D2029091A1 -:1009A0000E02890F8093D2022ECF20910E022403D3 -:1009B000B001259F700D11248091D202FE01E81B29 -:1009C000F109E617F7071CF40093D2021CCF249F0D -:1009D000202D11242093D20216CF80E00E94A30381 -:1009E00080FF0C94B503089582E884BD84E085BD42 -:1009F00080E487BD82E080936E0008951F920F927D -:100A00000FB60F9211240BB60F922F933F934F9373 -:100A10005F936F937F938F939F93AF93BF93EF9366 -:100A2000FF930E945305FF91EF91BF91AF919F916A -:100A30008F917F916F915F914F913F912F910F9087 -:100A40000BBE0F900FBE0F901F901895809308015A -:100A500008958FEF80BB8093070180930A01109265 -:100A6000080111BAEBE0F1E0108280818F61808390 -:100A70008FE891E00197F1F700C0000080818E7F40 -:100A80008083089585E00E943B0380FF07C080E0DB -:100A90000E943B03682F80E00E9426030E94ED0421 -:100AA00090E080E00895AF92BF92CF92DF92EF92F4 -:100AB000FF920F931F932091D3023091D402409163 -:100AC000D5025091D6026091D7027091D8028091E0 -:100AD000D9029091DA02A1E00E946D062093D30220 -:100AE0003093D4024093D5025093D6026093D7023C -:100AF0007093D8028093D9029093DA02E0EDAE2E83 -:100B0000F7E0BF2EC12CD12CE12CF12C00E010E03D -:100B10000E940E06A0E00E94790639F480910F022F -:100B20008F5F853058F480930F021F910F91FF90D3 -:100B3000EF90DF90CF90BF90AF90089581E0F3CF1A -:100B4000F8940E9429050E9471030E94F40478948D -:100B500088E19EE00FB6F894A895809360000FBEE0 -:100B600090936000A8950E944205FCCFDF93CF933D -:100B70001F930F939A9DF02D219FF00D8B9DF00DEB -:100B80008A9DE02DF10D039FF00D029FE00DF11DF8 -:100B90004E9DE00DF11D5E9DF00D4F9DF00D7F937C -:100BA0006F93BF92AF925F934F93D5010E948506DA -:100BB0008B01AC01D7010E948506EB01E80FF91FFC -:100BC000D6010E9405062F913F91D6010E9485060D -:100BD000C60FD71FE81FF91FAF91BF910E940506EE -:100BE0002F913F910E948506C60FD71FE81FF91F5E -:100BF000D6010E948506E60FF71F9801BE01CF01BE -:100C00000F911F91CF91DF9108950E948506460FA5 -:100C1000571FC81FD91F08F431960895689401C062 -:100C2000E8948F929F92CF93DF930E941C06DF91EE -:100C3000CF919F908F90089588249924F401E40126 -:100C4000B0E49F93AA279A158B049C04ED05FE053A -:100C5000CF05D007A10798F4AD2FDC2FCF2FFE2FA3 -:100C6000E92D982C892E982F872F762F652F542FBA -:100C7000432F322F2227B85031F7BF9127C01B2EA8 -:100C8000BF91BB27220F331F441F551F661F771FBD -:100C9000881F991F881C991CEE1FFF1FCC1FDD1F8A -:100CA000AA1FBB1F8A149B04EC05FD05CE05DF05BA -:100CB000A007B10748F08A189B08EC09FD09CE0986 -:100CC000DF09A00BB10B21601A94E1F62EF4940118 -:100CD000AF01BE01CD01000C08950024A7FD0094D2 -:100CE0002A0F301D401D501D601D701D801D901D60 -:100CF00008950024A7FD00942A17300540055005EB -:100D000060057005800590050895A29FB001B39F0E -:100D1000C001A39F700D811D1124911DB29F700D04 -:100D2000811D1124911D08950F931F93CF93DF937D -:100D3000E091DD02F091DE02238110E000E021FD70 -:100D40000EC00FEF1FEFC801DF91CF911F910F91E0 -:100D500008951995892B11F00FEF1FEFCE01EC01CB -:100D600089916091DD027091DE02DB011896ED91B0 -:100D7000FC918111EECF8AE01995892B21F3E1CF07 -:040D8000F894FFCF15 -:100D840000000002000000004D030000000001010B -:100D940034023A023E02430249025C0270028A02B1 -:100DA400910297029D02A202A702B802C002494E14 -:100DB40049540D0073686F6F7400757365006A752C -:100DC4006D70004552524F5200596F752063616E29 -:100DD400277420646F20746861742100596F752032 -:100DE40063616E27742075736520746861742100D3 -:100DF400576861742061726520796F7520676F6927 -:100E04006E6720746F20646F3F00676F696E6720A0 -:100E1400004E4F52544800534F55544800454153D7 -:100E240054005745535400594F55204D41592041C2 -:100E34004354204E4F57210069742064696564004F -:0C0E44006974207375727669766564002D +:100000000C940D030C943D030C943D030C943D03A0 +:100010000C943D030C943D030C943D030C943D0360 +:100020000C943D030C943D030C943D030C943D0350 +:100030000C943D030C943D030C943D030C943D0340 +:100040000C943D030C943D030C943D030C943D0330 +:100050000C943D030C9417050C943D030C943D0344 +:100060000C943D030C943D030C943D030C943D0310 +:100070000C943D030C943D030C943D030C943D0300 +:100080000C943D030C943D030C943D030C943D03F0 +:100090000C943D030C943D030C943D030C943D03E0 +:1000A0000C943D030C943D030C943D030C943D03D0 +:1000B0000C943D030C943D030C943D030C943D03C0 +:1000C0000C943D030C943D030C943D030C943D03B0 +:1000D0000C943D030C943D030C943D030C943D03A0 +:1000E0000C943D030C94660302F6FFF40102F7FF43 +:1000F000F40102F8FFF40102F9FFF40102FAFFF43F +:100100000102FBFFF40102FEFFF40102FEFFF40115 +:1001100002FEFFF4010000000000300C03DF31FAA2 +:100120002B78D5D86C2945A1026969918D6571B884 +:1001300043DEF2F6786E1DBF344ECB382EFD3259B9 +:10014000750732E231778433E1EDC56E523627967A +:1001500015198D8D88AB4DBCF918F5271627818CA4 +:100160002FB46E602BF2940CE0597B338FA3C9A49B +:10017000BD573245027F02FB98F723AE1EA53A4DCC +:1001800059A9AE849B42917C9B0CB02BB07ACF6D69 +:10019000D102B2D381B4CE19ACF2C7CB970218F01A +:1001A000ABC774470906C4A51374D0C3EEA030BF13 +:1001B000A2E2922497613D4453050FEA0728DAB37F +:1001C000EF4FFAF955BE9F68336F2B21105CE0B2F8 +:1001D0003F73D6D7D4141B271A2A122153ECD542C9 +:1001E0003CCF3C918EDBFAC24B26E35B82C40EC14E +:1001F00037E5980BFAB43314DE453631320B746EA2 +:10020000DBB1006A8CFA2CD7210F33A3D342650AE5 +:1002100027FE1621B24935918E6BC3C077382E5216 +:10022000E92FBC7629E84D4BF781EFCBC354D5EBD2 +:1002300053EC0D06354398C3AF5B842694B3787DA9 +:10024000E235F30C1D415715C346E0879BB672EEAD +:10025000A37FF5D8C28D9C72E920987DD311FBB5A0 +:1002600046EFC164311979F45F5A7BFA11EEE9B4B3 +:100270006EDE8C316C29A355493BD31C4DCED293F5 +:10028000BE94F7EFAD71E40DCC6008DD4EF192BC89 +:10029000D01FED3C48909291CC65AE193481ADF2FF +:1002A00015A5E2C317C6D0E327D8C175CA53329B40 +:1002B000721FD8BBB06A4D7DD0FB97047D45F79384 +:1002C000EAD95601A027E4C700A53DCBF96F666CBB +:1002D0008F3F2740A974BE7A70557FEE9A7681854C +:1002E00050D787F1FF6BB9FF11F7CA0B673177F76A +:1002F000709F371A14F694854B1373E68AF46CDBFF +:10030000CBF3CCCB5F86CA717D957CE4C6F4DC363A +:10031000931350A70AE52D55F9A03C8394A95F607B +:100320009C2B2BFCB2F66D308BE91451DEF08871FA +:1003300004D8190EBE4664B7E6A13B7B4A9ADBE7B8 +:10034000C607E378FD51A8883BBDDA19AE628AB3CF +:100350003AA4C2F9EB26B0D2C8EC4D138629FA4D67 +:1003600030DEC62E2F6FB66A2D9083DBF20E8F2DF6 +:10037000B351279E78D87140C4BE544BE84E9818AC +:100380002D5F465DCEFDC7FB8E4BD7815A66AF0E03 +:10039000B7D6AC2FAE1D7072DCC4BDC41356DD40A1 +:1003A000B6249D84216580B0B157310BBDE019752D +:1003B000B6C6A564E415D7C1DA9585EDEC632EA227 +:1003C00087CC26A932A659E3FD8AEFBB6B09302101 +:1003D000CFD586B4EB5D75C5F3FBB3DF5EE281E696 +:1003E000AFA78FE14EE8C54C73B407DFBE38018E6E +:1003F0000D8742F8E5B8BED8B472B7125439F90483 +:10040000E088E62F71AB7BE56083C41EBBC5ACC939 +:100410004DEFC233A7800C5BF3C36E48FC674CDD25 +:10042000F0320D61DD88473E0B0B5CC7D109901E91 +:10043000F852529FD25EFBC622690E1FD15AFDC2EE +:100440008C0A236A926AA99E760565470EF56606B0 +:1004500047B9A61A17A2E0390CEE59DD49569FD6C6 +:1004600060C341F32EEA91A4F0F7ECFEEC5305349F +:100470000CAC4F244E2F5D5A1EB738670DD83E6D19 +:100480009C7F61CA69F26F59E95C58D6B05E0BBCBB +:100490000A5AE0598A3EB4A8F5EC1003C54E7161C2 +:1004A000CED22C37C49C91AEF8EA85A8489065520C +:1004B000EB46AC7584601E7A4D2F7D137DEE744C37 +:1004C000C0A183853D153436FFBADF474B449A36C9 +:1004D0008A47AC0FA7CA89F5F9070877F57DC3B637 +:1004E0001F473C5C5C71935C2B72A376B73EAC41BA +:1004F0008558512D23DB221CE22B93D8A8578FC798 +:100500009ECB24FB3CB757682AFBDEE1398B23BF27 +:10051000E474EC074F0F24323AB87F8285888C8FC1 +:100520009295989B9EA1A4A7AAADB0B3B6B9BBBE45 +:10053000C1C3C6C9CBCED0D3D5D7D9DCDEE0E2E487 +:10054000E6E8E9EBEDEEF0F1F2F4F5F6F7F8F9FA9A +:10055000FBFCFCFDFDFEFEFEFEFEFEFEFEFEFEFDC5 +:10056000FDFCFCFBFAFAF9F8F7F6F4F3F2F0EFED24 +:10057000ECEAE8E7E5E3E1DFDDDBD8D6D4D1CFCCA8 +:10058000CAC7C5C2BFBDBAB7B4B1AFACA9A6A3A014 +:100590009D9A9693908D8A8784817D7A7774716E07 +:1005A0006B6864615E5B5855524F4D4A4744413F0A +:1005B0003C393734322F2D2A282623211F1D1B19A1 +:1005C00017161412110F0E0C0B0A08070605040467 +:1005D0000302020101000000000000000000000111 +:1005E000010202030405060708090A0C0D0E10118A +:1005F000131516181A1C1E20222527292B2E3033DE +:1006000035383B3D404345484B4E5154575A5D6049 +:100610006366696C6F7276797C7F11241FBECFEFA1 +:10062000D1E2DEBFCDBF00E00CBF84B780930D04E4 +:1006300014BE0FB6F894A8958091600088618093ED +:100640006000109260000FBE13E0A0E0B2E0ECE0AA +:10065000FCE000E00BBF02C007900D92AA3FB1077B +:10066000D9F724E0AAEFB3E001C01D92AD30B20784 +:10067000E1F70E94BC050C9404060C940000CF9393 +:10068000C62F0E943F058FEF80BBC1BBEBE0F1E0BE +:100690008081857F808385E08A95F1F700008081E5 +:1006A0008A608083CF9108950E943F0510BA11BAE5 +:1006B000EBE0F1E08081837F808385E08A95F1F72C +:1006C00000008FB190819C6090830895CF92DF925B +:1006D000EF92FF92CF93C82F80E4C82E82E4D82EE9 +:1006E0008FE0E82EF12C85E00E94540385FD06C0C2 +:1006F00081E0C81AD108E108F108A9F76C2F80E061 +:100700000E943F0390E080E0CF91FF90EF90DF9058 +:10071000CF90089563E883E00E943F0363E080E0A8 +:100720000E943F0360E081E00E943F0363E083E0BA +:100730000E943F0380E092E090930A0480930904B2 +:100740008CE592E00C94D805CF93C62F0E943F050C +:100750008FEF80BBC1BBEBE0F1E080818D7E8083B9 +:1007600085E08A95F1F70000808180618083808137 +:1007700082608083CF9108950E943F0510BA11BA1C +:10078000EBE0F1E080818B7E808385E08A95F1F754 +:1007900000008FB190819461908308950F931F930F +:1007A000CF93DF9380910F02833009F4B3C0A8F494 +:1007B000813009F444C0CFE7823009F476C0C0E04C +:1007C00060E08C2F81700E94A403CF5FCF3FC1F700 +:1007D000DF91CF911F910F910895843009F4C8C023 +:1007E0001FE7CFEFD0E00FEF853049F760910004AD +:1007F0008FEF860F8E3F28F080910E0281958093B7 +:100800000E0280E00E94A4036091000481E00E9437 +:10081000A4034091FA035091FB0357FDDFC0809180 +:10082000FE039091FF030196841795070CF0CAC050 +:100830009093FF038093FE031150C1F6C9CFCFE719 +:10084000E0910004F0E0E65EFA4F649181E00E94DE +:10085000A403E0910004F0E0E65EFA4F649180E0CA +:100860000E94A4032091FA033091FB0337FD19C0C5 +:100870008091FE039091FF030196821793073CF449 +:100880009093FF038093FE03C150D1F6A1CF109245 +:10089000FF031092FE03809100048F5F8093000499 +:1008A000F3CF80910004821BF9CF8091000487FF71 +:1008B0001DC06FEF80E00E94A4036FEF81E00E94F3 +:1008C000A4032091FA033091FB0337FD1FC08091F0 +:1008D000FE039091FF030196821793076CF49093A7 +:1008E000FF038093FE03C15001F772CF60E080E008 +:1008F0000E94A40360E0E2CF1092FF031092FE0377 +:10090000809100048F5F80930004EDCF80910004FC +:10091000821BF9CFCFE76091000480E00E94A4031E +:100920006091000481E00E94A4032091FA033091B9 +:10093000FB0337FD19C08091FE039091FF030196E0 +:10094000821793073CF49093FF038093FE03C150FA +:1009500011F73ECF1092FF031092FE038091000426 +:100960008F5F80930004F3CF80910004821BF9CF46 +:10097000CFE7E091FC03F091FD03E65EFE4F64914A +:1009800081E00E94A403E091FC03F091FD03E65E88 +:10099000FE4F649180E00E94A4038091FC0390913B +:1009A000FD030196811524E0920738F49093FD032E +:1009B0008093FC03C150E9F60BCF1092FD03109217 +:1009C000FC03F8CF1092FF031092FE038091000405 +:1009D00090910E02890F809300042ECF20910E0279 +:1009E0002403B001259F700D112480910004FE01A5 +:1009F000E81BF109E617F7071CF4009300041CCF6D +:100A0000249F202D11242093000416CF80E00E9403 +:100A1000BC0380FF0C94CE03089582E884BD84E07B +:100A200085BD80E487BD82E080936E0008951F92AB +:100A30000F920FB60F9211240BB60F922F933F9384 +:100A40004F935F936F937F938F939F93AF93BF93D6 +:100A5000EF93FF930E946C05FF91EF91BF91AF91CF +:100A60009F918F917F916F915F914F913F912F91C6 +:100A70000F900BBE0F900FBE0F901F901895809394 +:100A8000080108958FEF80BB8093070180930A01CE +:100A90001092080111BAEBE0F1E0108280818F61C1 +:100AA00080838FE891E00197F1F700C0000080811A +:100AB0008E7F8083089585E00E94540380FF07C0E5 +:100AC00080E00E945403682F80E00E943F030E9450 +:100AD000060590E080E00895609105047091060499 +:100AE0006F5F7F4F7093060460930504E0910104EB +:100AF000F09102048081918140910304509104049B +:100B0000E5E0E49F9001E59F300D1124FC01E20F28 +:100B1000F31F3396A591B4916A177B0738F54F5FA1 +:100B20005F4FFC01E20FF31F389625913491232B80 +:100B3000F1F0509304044093030420910304309196 +:100B4000040445E0429FF001439FF00D11248E0FF5 +:100B50009F1FFC012591349120930F020196FC0107 +:100B6000859194919093FB038093FA0308951092DA +:100B7000040410920304E1CFF8940E9442050E94FD +:100B80008A030E940D0588EE90E090930204809302 +:100B90000104789488E19EE00FB6F894A8958093BC +:100BA00060000FBE90936000A8950E945B05FCCF8B +:100BB0000F931F93CF93DF93E0910904F0910A0400 +:100BC000238110E000E021FD0EC00FEF1FEFC801F0 +:100BD000DF91CF911F910F9108951995892B11F0F5 +:100BE0000FEF1FEFCE01EC01899160910904709124 +:100BF0000A04DB011896ED91FC918111EECF8AE099 +:0C0C00001995892B21F3E1CFF894FFCF68 +:100C0C00000000020000000066030000000001016B +:100C1C0062026E027B027F02870294029D02A40292 +:100C2C00B702C502CF02DA02E402F002F602FF02BA +:100C3C000D03130319031E03230329032D0333038D +:100C4C0046035A0374037B03810387038C039103CC +:100C5C00A203AA03B603CC03DB03EA03494E4954AF +:100C6C000D00464C4F505059204449534B005343B0 +:100C7C0052455720445249564552004B4559005352 +:100C8C0041555341474500524F5454454E20464C14 +:100C9C00455348004B4559424F415244005049532B +:100CAC00544F4C004E4F5448494E474C4F4E454CB8 +:100CBC005920524F414400532F4E20444952542046 +:100CCC00524F41440046495245504C414345004E19 +:100CDC002F5720537472656574004F4C4420484F55 +:100CEC00555345004C4956494E4720524F4F4D00E5 +:100CFC00415454494300424153454D454E540043E1 +:100D0C004F4D505554455220524F4F4D006E6F72FF +:100D1C00746800736F75746800776573740065612F +:100D2C0073740073686F6F7400757365004552526D +:100D3C004F5200596F752063616E277420646F20C9 +:100D4C00746861742100596F752063616E2774207B +:100D5C007573652074686174210057686174206133 +:100D6C00726520796F7520676F696E6720746F20CC +:100D7C00646F3F00676F696E6720004E4F52544896 +:100D8C0000534F5554480045415354005745535454 +:100D9C0000594F55204D415920414354204E4F5737 +:100DAC00210069742064696564006974207375722C +:100DBC0076697665640061206265617220626C6F91 +:100DCC00636B732074686520776179006974207295 +:100DDC00616E20617761792E2E2E00697420776FF9 +:100DEC006E277420737461727400796F752063615F +:0A0DFC006E27742074797065000002 :00000001FF diff --git a/code/textadv/build/main.o b/code/textadv/build/main.o index da760d841dee7c2bf4a9c471e626b1ce82828135..c52addb01795f2fe3773b9ab2e95d5dc2023b1eb 100644 GIT binary patch delta 242 zcmZqR{lPmyf$_vd#hF|U4<3u=fV3G9GxIPo7)*Z2e4KH{=51`P2$+B$9tUG`v-UCTSunDlHurM$r0yzK> C&^l-U delta 140 zcmeyt+rT?PfiYmB;>?Z5RxvW_OfFfu)+CV*DS(RBgFf%aNOqOL+X1p=kkxd;)X0oZXz5(i5FnKDQ aGHVaeoFkL>vMEcv0jf*{io*aSlmP%i8;YWkZwigm zZbmc_A$o<)9=D*K4$(oHED&WOOU#dE-w;hgo5;)1!eU`@05Jh=ZGJ5+D_f<`Bhj`U z-W)8Im7!7@9hMqP ztvd==#!#UYca)cf)xt7(0cv>Lv_iz9jnMb%wi5cm?kBrn?0&QR!|v}M=iPXGXsAEd z9>0C(T&z#+QaioXfDg_jLX~P@i^6**M##g#ZDbKljp#~kwNh;cUk>Ca!B+!$8~9Qn zS8L2rsrJL~o~creBgdnnkh>nCyORAJY0biPpvDYgs-u)#Swn0_=UJKa^-*+wA#)B* z(CdBqy3D%}qv-!}-#+E6d`4H3B*b_^+!Vrt5f8?O<1UO{yOp@_l4E9tZA`oT)UYj? zXn8$l2`6P5>iG*7d&#jfhR9l}jAPim(ntBMt~rKqe~yxQ+cq+eaBMC4h;%I}OiMRh zcwifk^F}5)Cv;;rr8y}pLuqtN&k5VobR18&L^5q?wwTK0+_^?DV4iUu#LQDX8eo2= ze$6q-2y{X+Kd)1gd9G(A^V@PA3Sn^-@t))&;snG!xn@!_U#karMl#ntXO6RH$cHU{|sF0*L6td8L@Fce$RdL>-w<3?0-G#knlU<8}Iq@d+}Zi784Mkr4i!$ i;QttZGyJmwX$BWn>G&W#~WNL<$Uo!(ob{F?fa`k88`q%jcA`w%{3yIgJ6dYP78&KO+lUuy+B z!FI3}Yz7-a-(|TJSAKhC*nypR&5dUZAjN{QVq6GFY za;cMTwvynBk@z_HawHxCpO3_5hY8Kr1fF~E)NJKcy)Vq;@FNzNUb!8K2f%h$d|$=y z;geYTL0A2GSG?L4zw3&nTB7Ij#E4X@@k8OTG_FE*9!X~Ydb7k)p2maD?7yu*|7^2 zCb~#EC9AOL+7)Y|TIF6v66&~)D(1N!Q``f8LNRakq+(7PR@@7JTJb)3-WAu}51)aO zJaE`Jq~&Q!drd25uNlScl~>GOHx;uN?=X1?4_FyW9tlx=xE?J20)81v zaMQ5I5c6;0pFuj$yNn~h0xxFuq37ER@P4K3?`f*Ii?->z%f6Vn0$WU;s97j^p1Z`J z|7!*Y@*KDy+8D&&p*GfN{6=^dS%~%x?`WXNc^t#qL1!~9QGpuRhl{(e{Wl`YW@LKqO{3-CiK=%ZSfk~eT%D5Jd*B2f43jx1- HZF<~a=~=U% diff --git a/code/textadv/build/structures.o b/code/textadv/build/structures.o index fcb90f75818323bb430200f0562d3f5eb7c17255..c9e8138d082d61d8114cdcabae039f89bf40447a 100644 GIT binary patch delta 955 zcmYk3O=uHA7>2(M&0kxj)}I(@bxduQQqm$KqD8t%Hcjj{8+JDh!GmtfLR;IeBwJ!c zXz?H-B9;+63F6gLPhLduqJk&SUOe>T#ghjQ3cizm2N!0a=iT|fo!QwxM}MWCiOB50 zZe~V)PYnJy`nQXwRjoEeq3kS>ledk!DA?sC!=?qJL5^N?^m&79%XN*4D4K>-QWH5# zw+mD)JFaC?#d1sK%Dib+46`9@OD~W!UBMe|_aGI^wox_pyg`-ex^Tjl?}ucW1yQnU z3ywi%c?tcfwH8Tt-Ey9Cx??OF6_@hXVzuTP_QB+4&hCSrt3M=DAR`L$4K5H`o%(p2}hO zj=%R~EGm<+Z;eAlbeJMk2bB+VZh``1kaGY|VF=Fmz~0rT`eXD^1vqI3c~_3cZyZ|< z{f(QU*If6h6$GrZ6VLm71HEpnj5fGhN3|@0TH?KCN-cIo&L)RqBT1sqnzWM{ZAbo%rsNYm v+(GpVO}*c#SoA*r<}0bg_VF+4>V5wJ(GZ(- delta 370 zcmew&`A1}e0@D$WiAn~1#ToheB@Cs-sSH`AxdoHG7`rx$Gbyo7wqd_v$;QCIAjrVP z5DBC~YzZho1xSMd3rL=gp#a1IvKbg5{OZZM9MO~SaX8fjg}K2hfu=y%Aag)ULE>CM z8q5c>`GIT>sJJMQ2FZccXaH#*DBA`|^Fi5RKw1FGjs?;}PKEn!8P}K~E z$x=K@Os^Ow+wrI|y<(l5#-qmihn0cBVDdyBWmX-ap03G;?81}J@CdNx06i2A;sF5l CmM^6M diff --git a/code/textadv/include/sound.h b/code/textadv/include/sound.h index d283d60..f370f33 100644 --- a/code/textadv/include/sound.h +++ b/code/textadv/include/sound.h @@ -18,6 +18,7 @@ #define _SOUND_H #include +#include struct tone_t { uint8_t waveform; @@ -25,6 +26,10 @@ struct tone_t { uint16_t length; }; +extern const struct tone_t lonely_road[] PROGMEM; + +extern const struct tone_t ** current_track; + void update_sound(); #endif diff --git a/code/textadv/src/main.c b/code/textadv/src/main.c index 73ea292..c5657c4 100644 --- a/code/textadv/src/main.c +++ b/code/textadv/src/main.c @@ -19,6 +19,7 @@ #include "16550.h" #include "dac.h" #include "interrupt.h" +#include "sound.h" #include #include @@ -81,6 +82,7 @@ int main(){ reset_modules(); init_uart(); init_interrupts(); + current_track = (const struct tone_t (**)) &lonely_road; sei(); /* Enable the hardware watchdog. In case the microcontroller fails to * finish it's task within the specified time, the watchdog will reset diff --git a/code/textadv/src/sound.c b/code/textadv/src/sound.c index 24afef4..3e4a829 100644 --- a/code/textadv/src/sound.c +++ b/code/textadv/src/sound.c @@ -14,19 +14,46 @@ * along with this program. If not, see . */ + +#include "sound.h" #include "sound.h" #include "dac.h" +#include +#include + +const struct tone_t lonely_road[] PROGMEM = +{ + {DAC_MODE_SQUARE, -10,500}, + {DAC_MODE_SQUARE, -9,500}, + {DAC_MODE_SQUARE, -8,500}, + {DAC_MODE_SQUARE, -7,500}, + {DAC_MODE_SQUARE, -6,500}, + {DAC_MODE_SQUARE, -5,500}, + {DAC_MODE_SQUARE, -2,500}, + {DAC_MODE_SQUARE, -2,500}, + {DAC_MODE_SQUARE, -2,500}, + {DAC_MODE_SILENT, 0, 0}, +}; + +const struct tone_t **current_track = NULL; void update_sound(){ - static unsigned long long audio_time = 0; + static uint16_t audio_time = 0; + static size_t tone_pointer = 0x00; audio_time++; - if(!(audio_time%2000)){ - dac_mode++; - if(dac_mode > DAC_MODE_NOISE){ - dac_mode = 1; + if(!(audio_time >= + pgm_read_word(&(*current_track)[tone_pointer].length))){ + + tone_pointer++; + if(pgm_read_word(&(*current_track)[tone_pointer].length) == 0){ + tone_pointer = 0; } + dac_mode = pgm_read_word( + &(*current_track)[tone_pointer].waveform); + dac_frequency_deviation = pgm_read_word( + &(*current_track)[tone_pointer].frequency_deviation); } return; diff --git a/code/textadv/src/structures.c b/code/textadv/src/structures.c index 0c78e85..c1b9c3f 100644 --- a/code/textadv/src/structures.c +++ b/code/textadv/src/structures.c @@ -84,262 +84,262 @@ const uint8_t sine_table[256] PROGMEM = { }; const uint8_t noise_table[1024] PROGMEM = { -0x30, 0xc, 0x3, 0xdf, -0x31, 0xfa, 0x2b, 0x78, -0xd5, 0xd8, 0x6c, 0x29, -0x45, 0xa1, 0x2, 0x69, -0x69, 0x91, 0x8d, 0x65, -0x71, 0xb8, 0x43, 0xde, -0xf2, 0xf6, 0x78, 0x6e, -0x1d, 0xbf, 0x34, 0x4e, -0xcb, 0x38, 0x2e, 0xfd, -0x32, 0x59, 0x75, 0x7, -0x32, 0xe2, 0x31, 0x77, -0x84, 0x33, 0xe1, 0xed, -0xc5, 0x6e, 0x52, 0x36, -0x27, 0x96, 0x15, 0x19, -0x8d, 0x8d, 0x88, 0xab, -0x4d, 0xbc, 0xf9, 0x18, -0xf5, 0x27, 0x16, 0x27, -0x81, 0x8c, 0x2f, 0xb4, -0x6e, 0x60, 0x2b, 0xf2, -0x94, 0xc, 0xe0, 0x59, -0x7b, 0x33, 0x8f, 0xa3, -0xc9, 0xa4, 0xbd, 0x57, -0x32, 0x45, 0x2, 0x7f, -0x2, 0xfb, 0x98, 0xf7, -0x23, 0xae, 0x1e, 0xa5, -0x3a, 0x4d, 0x59, 0xa9, -0xae, 0x84, 0x9b, 0x42, -0x91, 0x7c, 0x9b, 0xc, -0xb0, 0x2b, 0xb0, 0x7a, -0xcf, 0x6d, 0xd1, 0x2, -0xb2, 0xd3, 0x81, 0xb4, -0xce, 0x19, 0xac, 0xf2, -0xc7, 0xcb, 0x97, 0x2, -0x18, 0xf0, 0xab, 0xc7, -0x74, 0x47, 0x9, 0x6, -0xc4, 0xa5, 0x13, 0x74, -0xd0, 0xc3, 0xee, 0xa0, -0x30, 0xbf, 0xa2, 0xe2, -0x92, 0x24, 0x97, 0x61, -0x3d, 0x44, 0x53, 0x5, -0xf, 0xea, 0x7, 0x28, -0xda, 0xb3, 0xef, 0x4f, -0xfa, 0xf9, 0x55, 0xbe, -0x9f, 0x68, 0x33, 0x6f, -0x2b, 0x21, 0x10, 0x5c, -0xe0, 0xb2, 0x3f, 0x73, -0xd6, 0xd7, 0xd4, 0x14, -0x1b, 0x27, 0x1a, 0x2a, -0x12, 0x21, 0x53, 0xec, -0xd5, 0x42, 0x3c, 0xcf, -0x3c, 0x91, 0x8e, 0xdb, -0xfa, 0xc2, 0x4b, 0x26, -0xe3, 0x5b, 0x82, 0xc4, -0xe, 0xc1, 0x37, 0xe5, -0x98, 0xb, 0xfa, 0xb4, -0x33, 0x14, 0xde, 0x45, -0x36, 0x31, 0x32, 0xb, -0x74, 0x6e, 0xdb, 0xb1, -0x0, 0x6a, 0x8c, 0xfa, -0x2c, 0xd7, 0x21, 0xf, -0x33, 0xa3, 0xd3, 0x42, -0x65, 0xa, 0x27, 0xfe, -0x16, 0x21, 0xb2, 0x49, -0x35, 0x91, 0x8e, 0x6b, -0xc3, 0xc0, 0x77, 0x38, -0x2e, 0x52, 0xe9, 0x2f, -0xbc, 0x76, 0x29, 0xe8, -0x4d, 0x4b, 0xf7, 0x81, -0xef, 0xcb, 0xc3, 0x54, -0xd5, 0xeb, 0x53, 0xec, -0xd, 0x6, 0x35, 0x43, -0x98, 0xc3, 0xaf, 0x5b, -0x84, 0x26, 0x94, 0xb3, -0x78, 0x7d, 0xe2, 0x35, -0xf3, 0xc, 0x1d, 0x41, -0x57, 0x15, 0xc3, 0x46, -0xe0, 0x87, 0x9b, 0xb6, -0x72, 0xee, 0xa3, 0x7f, -0xf5, 0xd8, 0xc2, 0x8d, -0x9c, 0x72, 0xe9, 0x20, -0x98, 0x7d, 0xd3, 0x11, -0xfb, 0xb5, 0x46, 0xef, -0xc1, 0x64, 0x31, 0x19, -0x79, 0xf4, 0x5f, 0x5a, -0x7b, 0xfa, 0x11, 0xee, -0xe9, 0xb4, 0x6e, 0xde, -0x8c, 0x31, 0x6c, 0x29, -0xa3, 0x55, 0x49, 0x3b, -0xd3, 0x1c, 0x4d, 0xce, -0xd2, 0x93, 0xbe, 0x94, -0xf7, 0xef, 0xad, 0x71, -0xe4, 0xd, 0xcc, 0x60, -0x8, 0xdd, 0x4e, 0xf1, -0x92, 0xbc, 0xd0, 0x1f, -0xed, 0x3c, 0x48, 0x90, -0x92, 0x91, 0xcc, 0x65, -0xae, 0x19, 0x34, 0x81, -0xad, 0xf2, 0x15, 0xa5, -0xe2, 0xc3, 0x17, 0xc6, -0xd0, 0xe3, 0x27, 0xd8, -0xc1, 0x75, 0xca, 0x53, -0x32, 0x9b, 0x72, 0x1f, -0xd8, 0xbb, 0xb0, 0x6a, -0x4d, 0x7d, 0xd0, 0xfb, -0x97, 0x4, 0x7d, 0x45, -0xf7, 0x93, 0xea, 0xd9, -0x56, 0x1, 0xa0, 0x27, -0xe4, 0xc7, 0x0, 0xa5, -0x3d, 0xcb, 0xf9, 0x6f, -0x66, 0x6c, 0x8f, 0x3f, -0x27, 0x40, 0xa9, 0x74, -0xbe, 0x7a, 0x70, 0x55, -0x7f, 0xee, 0x9a, 0x76, -0x81, 0x85, 0x50, 0xd7, -0x87, 0xf1, 0xff, 0x6b, -0xb9, 0xff, 0x11, 0xf7, -0xca, 0xb, 0x67, 0x31, -0x77, 0xf7, 0x70, 0x9f, -0x37, 0x1a, 0x14, 0xf6, -0x94, 0x85, 0x4b, 0x13, -0x73, 0xe6, 0x8a, 0xf4, -0x6c, 0xdb, 0xcb, 0xf3, -0xcc, 0xcb, 0x5f, 0x86, -0xca, 0x71, 0x7d, 0x95, -0x7c, 0xe4, 0xc6, 0xf4, -0xdc, 0x36, 0x93, 0x13, -0x50, 0xa7, 0xa, 0xe5, -0x2d, 0x55, 0xf9, 0xa0, -0x3c, 0x83, 0x94, 0xa9, -0x5f, 0x60, 0x9c, 0x2b, -0x2b, 0xfc, 0xb2, 0xf6, -0x6d, 0x30, 0x8b, 0xe9, -0x14, 0x51, 0xde, 0xf0, -0x88, 0x71, 0x4, 0xd8, -0x19, 0xe, 0xbe, 0x46, -0x64, 0xb7, 0xe6, 0xa1, -0x3b, 0x7b, 0x4a, 0x9a, -0xdb, 0xe7, 0xc6, 0x7, -0xe3, 0x78, 0xfd, 0x51, -0xa8, 0x88, 0x3b, 0xbd, -0xda, 0x19, 0xae, 0x62, -0x8a, 0xb3, 0x3a, 0xa4, -0xc2, 0xf9, 0xeb, 0x26, -0xb0, 0xd2, 0xc8, 0xec, -0x4d, 0x13, 0x86, 0x29, -0xfa, 0x4d, 0x30, 0xde, -0xc6, 0x2e, 0x2f, 0x6f, -0xb6, 0x6a, 0x2d, 0x90, -0x83, 0xdb, 0xf2, 0xe, -0x8f, 0x2d, 0xb3, 0x51, -0x27, 0x9e, 0x78, 0xd8, -0x71, 0x40, 0xc4, 0xbe, -0x54, 0x4b, 0xe8, 0x4e, -0x98, 0x18, 0x2d, 0x5f, -0x46, 0x5d, 0xce, 0xfd, -0xc7, 0xfb, 0x8e, 0x4b, -0xd7, 0x81, 0x5a, 0x66, -0xaf, 0xe, 0xb7, 0xd6, -0xac, 0x2f, 0xae, 0x1d, -0x70, 0x72, 0xdc, 0xc4, -0xbd, 0xc4, 0x13, 0x56, -0xdd, 0x40, 0xb6, 0x24, -0x9d, 0x84, 0x21, 0x65, -0x80, 0xb0, 0xb1, 0x57, -0x31, 0xb, 0xbd, 0xe0, -0x19, 0x75, 0xb6, 0xc6, -0xa5, 0x64, 0xe4, 0x15, -0xd7, 0xc1, 0xda, 0x95, -0x85, 0xed, 0xec, 0x63, -0x2e, 0xa2, 0x87, 0xcc, -0x26, 0xa9, 0x32, 0xa6, -0x59, 0xe3, 0xfd, 0x8a, -0xef, 0xbb, 0x6b, 0x9, -0x30, 0x21, 0xcf, 0xd5, -0x86, 0xb4, 0xeb, 0x5d, -0x75, 0xc5, 0xf3, 0xfb, -0xb3, 0xdf, 0x5e, 0xe2, -0x81, 0xe6, 0xaf, 0xa7, -0x8f, 0xe1, 0x4e, 0xe8, -0xc5, 0x4c, 0x73, 0xb4, -0x7, 0xdf, 0xbe, 0x38, -0x1, 0x8e, 0xd, 0x87, -0x42, 0xf8, 0xe5, 0xb8, -0xbe, 0xd8, 0xb4, 0x72, -0xb7, 0x12, 0x54, 0x39, -0xf9, 0x4, 0xe0, 0x88, -0xe6, 0x2f, 0x71, 0xab, -0x7b, 0xe5, 0x60, 0x83, -0xc4, 0x1e, 0xbb, 0xc5, -0xac, 0xc9, 0x4d, 0xef, -0xc2, 0x33, 0xa7, 0x80, -0xc, 0x5b, 0xf3, 0xc3, -0x6e, 0x48, 0xfc, 0x67, -0x4c, 0xdd, 0xf0, 0x32, -0xd, 0x61, 0xdd, 0x88, -0x47, 0x3e, 0xb, 0xb, -0x5c, 0xc7, 0xd1, 0x9, -0x90, 0x1e, 0xf8, 0x52, -0x52, 0x9f, 0xd2, 0x5e, -0xfb, 0xc6, 0x22, 0x69, -0xe, 0x1f, 0xd1, 0x5a, -0xfd, 0xc2, 0x8c, 0xa, -0x23, 0x6a, 0x92, 0x6a, -0xa9, 0x9e, 0x76, 0x5, -0x65, 0x47, 0xe, 0xf5, -0x66, 0x6, 0x47, 0xb9, -0xa6, 0x1a, 0x17, 0xa2, -0xe0, 0x39, 0xc, 0xee, -0x59, 0xdd, 0x49, 0x56, -0x9f, 0xd6, 0x60, 0xc3, -0x41, 0xf3, 0x2e, 0xea, -0x91, 0xa4, 0xf0, 0xf7, -0xec, 0xfe, 0xec, 0x53, -0x5, 0x34, 0xc, 0xac, -0x4f, 0x24, 0x4e, 0x2f, -0x5d, 0x5a, 0x1e, 0xb7, -0x38, 0x67, 0xd, 0xd8, -0x3e, 0x6d, 0x9c, 0x7f, -0x61, 0xca, 0x69, 0xf2, -0x6f, 0x59, 0xe9, 0x5c, -0x58, 0xd6, 0xb0, 0x5e, -0xb, 0xbc, 0xa, 0x5a, -0xe0, 0x59, 0x8a, 0x3e, -0xb4, 0xa8, 0xf5, 0xec, -0x10, 0x3, 0xc5, 0x4e, -0x71, 0x61, 0xce, 0xd2, -0x2c, 0x37, 0xc4, 0x9c, -0x91, 0xae, 0xf8, 0xea, -0x85, 0xa8, 0x48, 0x90, -0x65, 0x52, 0xeb, 0x46, -0xac, 0x75, 0x84, 0x60, -0x1e, 0x7a, 0x4d, 0x2f, -0x7d, 0x13, 0x7d, 0xee, -0x74, 0x4c, 0xc0, 0xa1, -0x83, 0x85, 0x3d, 0x15, -0x34, 0x36, 0xff, 0xba, -0xdf, 0x47, 0x4b, 0x44, -0x9a, 0x36, 0x8a, 0x47, -0xac, 0xf, 0xa7, 0xca, -0x89, 0xf5, 0xf9, 0x7, -0x8, 0x77, 0xf5, 0x7d, -0xc3, 0xb6, 0x1f, 0x47, -0x3c, 0x5c, 0x5c, 0x71, -0x93, 0x5c, 0x2b, 0x72, -0xa3, 0x76, 0xb7, 0x3e, -0xac, 0x41, 0x85, 0x58, -0x51, 0x2d, 0x23, 0xdb, -0x22, 0x1c, 0xe2, 0x2b, -0x93, 0xd8, 0xa8, 0x57, -0x8f, 0xc7, 0x9e, 0xcb, -0x24, 0xfb, 0x3c, 0xb7, -0x57, 0x68, 0x2a, 0xfb, -0xde, 0xe1, 0x39, 0x8b, -0x23, 0xbf, 0xe4, 0x74, -0xec, 0x7, 0x4f, 0xf, -0x24, 0x32, 0x3a, 0xb8 + 0x30, 0xc, 0x3, 0xdf, + 0x31, 0xfa, 0x2b, 0x78, + 0xd5, 0xd8, 0x6c, 0x29, + 0x45, 0xa1, 0x2, 0x69, + 0x69, 0x91, 0x8d, 0x65, + 0x71, 0xb8, 0x43, 0xde, + 0xf2, 0xf6, 0x78, 0x6e, + 0x1d, 0xbf, 0x34, 0x4e, + 0xcb, 0x38, 0x2e, 0xfd, + 0x32, 0x59, 0x75, 0x7, + 0x32, 0xe2, 0x31, 0x77, + 0x84, 0x33, 0xe1, 0xed, + 0xc5, 0x6e, 0x52, 0x36, + 0x27, 0x96, 0x15, 0x19, + 0x8d, 0x8d, 0x88, 0xab, + 0x4d, 0xbc, 0xf9, 0x18, + 0xf5, 0x27, 0x16, 0x27, + 0x81, 0x8c, 0x2f, 0xb4, + 0x6e, 0x60, 0x2b, 0xf2, + 0x94, 0xc, 0xe0, 0x59, + 0x7b, 0x33, 0x8f, 0xa3, + 0xc9, 0xa4, 0xbd, 0x57, + 0x32, 0x45, 0x2, 0x7f, + 0x2, 0xfb, 0x98, 0xf7, + 0x23, 0xae, 0x1e, 0xa5, + 0x3a, 0x4d, 0x59, 0xa9, + 0xae, 0x84, 0x9b, 0x42, + 0x91, 0x7c, 0x9b, 0xc, + 0xb0, 0x2b, 0xb0, 0x7a, + 0xcf, 0x6d, 0xd1, 0x2, + 0xb2, 0xd3, 0x81, 0xb4, + 0xce, 0x19, 0xac, 0xf2, + 0xc7, 0xcb, 0x97, 0x2, + 0x18, 0xf0, 0xab, 0xc7, + 0x74, 0x47, 0x9, 0x6, + 0xc4, 0xa5, 0x13, 0x74, + 0xd0, 0xc3, 0xee, 0xa0, + 0x30, 0xbf, 0xa2, 0xe2, + 0x92, 0x24, 0x97, 0x61, + 0x3d, 0x44, 0x53, 0x5, + 0xf, 0xea, 0x7, 0x28, + 0xda, 0xb3, 0xef, 0x4f, + 0xfa, 0xf9, 0x55, 0xbe, + 0x9f, 0x68, 0x33, 0x6f, + 0x2b, 0x21, 0x10, 0x5c, + 0xe0, 0xb2, 0x3f, 0x73, + 0xd6, 0xd7, 0xd4, 0x14, + 0x1b, 0x27, 0x1a, 0x2a, + 0x12, 0x21, 0x53, 0xec, + 0xd5, 0x42, 0x3c, 0xcf, + 0x3c, 0x91, 0x8e, 0xdb, + 0xfa, 0xc2, 0x4b, 0x26, + 0xe3, 0x5b, 0x82, 0xc4, + 0xe, 0xc1, 0x37, 0xe5, + 0x98, 0xb, 0xfa, 0xb4, + 0x33, 0x14, 0xde, 0x45, + 0x36, 0x31, 0x32, 0xb, + 0x74, 0x6e, 0xdb, 0xb1, + 0x0, 0x6a, 0x8c, 0xfa, + 0x2c, 0xd7, 0x21, 0xf, + 0x33, 0xa3, 0xd3, 0x42, + 0x65, 0xa, 0x27, 0xfe, + 0x16, 0x21, 0xb2, 0x49, + 0x35, 0x91, 0x8e, 0x6b, + 0xc3, 0xc0, 0x77, 0x38, + 0x2e, 0x52, 0xe9, 0x2f, + 0xbc, 0x76, 0x29, 0xe8, + 0x4d, 0x4b, 0xf7, 0x81, + 0xef, 0xcb, 0xc3, 0x54, + 0xd5, 0xeb, 0x53, 0xec, + 0xd, 0x6, 0x35, 0x43, + 0x98, 0xc3, 0xaf, 0x5b, + 0x84, 0x26, 0x94, 0xb3, + 0x78, 0x7d, 0xe2, 0x35, + 0xf3, 0xc, 0x1d, 0x41, + 0x57, 0x15, 0xc3, 0x46, + 0xe0, 0x87, 0x9b, 0xb6, + 0x72, 0xee, 0xa3, 0x7f, + 0xf5, 0xd8, 0xc2, 0x8d, + 0x9c, 0x72, 0xe9, 0x20, + 0x98, 0x7d, 0xd3, 0x11, + 0xfb, 0xb5, 0x46, 0xef, + 0xc1, 0x64, 0x31, 0x19, + 0x79, 0xf4, 0x5f, 0x5a, + 0x7b, 0xfa, 0x11, 0xee, + 0xe9, 0xb4, 0x6e, 0xde, + 0x8c, 0x31, 0x6c, 0x29, + 0xa3, 0x55, 0x49, 0x3b, + 0xd3, 0x1c, 0x4d, 0xce, + 0xd2, 0x93, 0xbe, 0x94, + 0xf7, 0xef, 0xad, 0x71, + 0xe4, 0xd, 0xcc, 0x60, + 0x8, 0xdd, 0x4e, 0xf1, + 0x92, 0xbc, 0xd0, 0x1f, + 0xed, 0x3c, 0x48, 0x90, + 0x92, 0x91, 0xcc, 0x65, + 0xae, 0x19, 0x34, 0x81, + 0xad, 0xf2, 0x15, 0xa5, + 0xe2, 0xc3, 0x17, 0xc6, + 0xd0, 0xe3, 0x27, 0xd8, + 0xc1, 0x75, 0xca, 0x53, + 0x32, 0x9b, 0x72, 0x1f, + 0xd8, 0xbb, 0xb0, 0x6a, + 0x4d, 0x7d, 0xd0, 0xfb, + 0x97, 0x4, 0x7d, 0x45, + 0xf7, 0x93, 0xea, 0xd9, + 0x56, 0x1, 0xa0, 0x27, + 0xe4, 0xc7, 0x0, 0xa5, + 0x3d, 0xcb, 0xf9, 0x6f, + 0x66, 0x6c, 0x8f, 0x3f, + 0x27, 0x40, 0xa9, 0x74, + 0xbe, 0x7a, 0x70, 0x55, + 0x7f, 0xee, 0x9a, 0x76, + 0x81, 0x85, 0x50, 0xd7, + 0x87, 0xf1, 0xff, 0x6b, + 0xb9, 0xff, 0x11, 0xf7, + 0xca, 0xb, 0x67, 0x31, + 0x77, 0xf7, 0x70, 0x9f, + 0x37, 0x1a, 0x14, 0xf6, + 0x94, 0x85, 0x4b, 0x13, + 0x73, 0xe6, 0x8a, 0xf4, + 0x6c, 0xdb, 0xcb, 0xf3, + 0xcc, 0xcb, 0x5f, 0x86, + 0xca, 0x71, 0x7d, 0x95, + 0x7c, 0xe4, 0xc6, 0xf4, + 0xdc, 0x36, 0x93, 0x13, + 0x50, 0xa7, 0xa, 0xe5, + 0x2d, 0x55, 0xf9, 0xa0, + 0x3c, 0x83, 0x94, 0xa9, + 0x5f, 0x60, 0x9c, 0x2b, + 0x2b, 0xfc, 0xb2, 0xf6, + 0x6d, 0x30, 0x8b, 0xe9, + 0x14, 0x51, 0xde, 0xf0, + 0x88, 0x71, 0x4, 0xd8, + 0x19, 0xe, 0xbe, 0x46, + 0x64, 0xb7, 0xe6, 0xa1, + 0x3b, 0x7b, 0x4a, 0x9a, + 0xdb, 0xe7, 0xc6, 0x7, + 0xe3, 0x78, 0xfd, 0x51, + 0xa8, 0x88, 0x3b, 0xbd, + 0xda, 0x19, 0xae, 0x62, + 0x8a, 0xb3, 0x3a, 0xa4, + 0xc2, 0xf9, 0xeb, 0x26, + 0xb0, 0xd2, 0xc8, 0xec, + 0x4d, 0x13, 0x86, 0x29, + 0xfa, 0x4d, 0x30, 0xde, + 0xc6, 0x2e, 0x2f, 0x6f, + 0xb6, 0x6a, 0x2d, 0x90, + 0x83, 0xdb, 0xf2, 0xe, + 0x8f, 0x2d, 0xb3, 0x51, + 0x27, 0x9e, 0x78, 0xd8, + 0x71, 0x40, 0xc4, 0xbe, + 0x54, 0x4b, 0xe8, 0x4e, + 0x98, 0x18, 0x2d, 0x5f, + 0x46, 0x5d, 0xce, 0xfd, + 0xc7, 0xfb, 0x8e, 0x4b, + 0xd7, 0x81, 0x5a, 0x66, + 0xaf, 0xe, 0xb7, 0xd6, + 0xac, 0x2f, 0xae, 0x1d, + 0x70, 0x72, 0xdc, 0xc4, + 0xbd, 0xc4, 0x13, 0x56, + 0xdd, 0x40, 0xb6, 0x24, + 0x9d, 0x84, 0x21, 0x65, + 0x80, 0xb0, 0xb1, 0x57, + 0x31, 0xb, 0xbd, 0xe0, + 0x19, 0x75, 0xb6, 0xc6, + 0xa5, 0x64, 0xe4, 0x15, + 0xd7, 0xc1, 0xda, 0x95, + 0x85, 0xed, 0xec, 0x63, + 0x2e, 0xa2, 0x87, 0xcc, + 0x26, 0xa9, 0x32, 0xa6, + 0x59, 0xe3, 0xfd, 0x8a, + 0xef, 0xbb, 0x6b, 0x9, + 0x30, 0x21, 0xcf, 0xd5, + 0x86, 0xb4, 0xeb, 0x5d, + 0x75, 0xc5, 0xf3, 0xfb, + 0xb3, 0xdf, 0x5e, 0xe2, + 0x81, 0xe6, 0xaf, 0xa7, + 0x8f, 0xe1, 0x4e, 0xe8, + 0xc5, 0x4c, 0x73, 0xb4, + 0x7, 0xdf, 0xbe, 0x38, + 0x1, 0x8e, 0xd, 0x87, + 0x42, 0xf8, 0xe5, 0xb8, + 0xbe, 0xd8, 0xb4, 0x72, + 0xb7, 0x12, 0x54, 0x39, + 0xf9, 0x4, 0xe0, 0x88, + 0xe6, 0x2f, 0x71, 0xab, + 0x7b, 0xe5, 0x60, 0x83, + 0xc4, 0x1e, 0xbb, 0xc5, + 0xac, 0xc9, 0x4d, 0xef, + 0xc2, 0x33, 0xa7, 0x80, + 0xc, 0x5b, 0xf3, 0xc3, + 0x6e, 0x48, 0xfc, 0x67, + 0x4c, 0xdd, 0xf0, 0x32, + 0xd, 0x61, 0xdd, 0x88, + 0x47, 0x3e, 0xb, 0xb, + 0x5c, 0xc7, 0xd1, 0x9, + 0x90, 0x1e, 0xf8, 0x52, + 0x52, 0x9f, 0xd2, 0x5e, + 0xfb, 0xc6, 0x22, 0x69, + 0xe, 0x1f, 0xd1, 0x5a, + 0xfd, 0xc2, 0x8c, 0xa, + 0x23, 0x6a, 0x92, 0x6a, + 0xa9, 0x9e, 0x76, 0x5, + 0x65, 0x47, 0xe, 0xf5, + 0x66, 0x6, 0x47, 0xb9, + 0xa6, 0x1a, 0x17, 0xa2, + 0xe0, 0x39, 0xc, 0xee, + 0x59, 0xdd, 0x49, 0x56, + 0x9f, 0xd6, 0x60, 0xc3, + 0x41, 0xf3, 0x2e, 0xea, + 0x91, 0xa4, 0xf0, 0xf7, + 0xec, 0xfe, 0xec, 0x53, + 0x5, 0x34, 0xc, 0xac, + 0x4f, 0x24, 0x4e, 0x2f, + 0x5d, 0x5a, 0x1e, 0xb7, + 0x38, 0x67, 0xd, 0xd8, + 0x3e, 0x6d, 0x9c, 0x7f, + 0x61, 0xca, 0x69, 0xf2, + 0x6f, 0x59, 0xe9, 0x5c, + 0x58, 0xd6, 0xb0, 0x5e, + 0xb, 0xbc, 0xa, 0x5a, + 0xe0, 0x59, 0x8a, 0x3e, + 0xb4, 0xa8, 0xf5, 0xec, + 0x10, 0x3, 0xc5, 0x4e, + 0x71, 0x61, 0xce, 0xd2, + 0x2c, 0x37, 0xc4, 0x9c, + 0x91, 0xae, 0xf8, 0xea, + 0x85, 0xa8, 0x48, 0x90, + 0x65, 0x52, 0xeb, 0x46, + 0xac, 0x75, 0x84, 0x60, + 0x1e, 0x7a, 0x4d, 0x2f, + 0x7d, 0x13, 0x7d, 0xee, + 0x74, 0x4c, 0xc0, 0xa1, + 0x83, 0x85, 0x3d, 0x15, + 0x34, 0x36, 0xff, 0xba, + 0xdf, 0x47, 0x4b, 0x44, + 0x9a, 0x36, 0x8a, 0x47, + 0xac, 0xf, 0xa7, 0xca, + 0x89, 0xf5, 0xf9, 0x7, + 0x8, 0x77, 0xf5, 0x7d, + 0xc3, 0xb6, 0x1f, 0x47, + 0x3c, 0x5c, 0x5c, 0x71, + 0x93, 0x5c, 0x2b, 0x72, + 0xa3, 0x76, 0xb7, 0x3e, + 0xac, 0x41, 0x85, 0x58, + 0x51, 0x2d, 0x23, 0xdb, + 0x22, 0x1c, 0xe2, 0x2b, + 0x93, 0xd8, 0xa8, 0x57, + 0x8f, 0xc7, 0x9e, 0xcb, + 0x24, 0xfb, 0x3c, 0xb7, + 0x57, 0x68, 0x2a, 0xfb, + 0xde, 0xe1, 0x39, 0x8b, + 0x23, 0xbf, 0xe4, 0x74, + 0xec, 0x7, 0x4f, 0xf, + 0x24, 0x32, 0x3a, 0xb8 }; const char* info_table[] = { @@ -354,12 +354,58 @@ const char* info_table[] = { "WEST", "YOU MAY ACT NOW!", "it died", - "it survived" + "it survived", + "a bear blocks the way", + "it ran away...", + "it won't start", + "you can't type" }; const char* action_table[] = { + "north", + "south", + "west", + "east", "shoot", - "use", - "jump" + "use" }; +const char* room_table[] = { + "You stare into a void of nothingness. You see noone, you hear noone," + "you feel someone.\r\n You look around, and see nothing, yet " + "you are no less scared. You habe won." + "LONELY ROAD", + "S/N DIRT ROAD", + "FIREPLACE", + "N/W Street", + "OLD HOUSE", + "LIVING ROOM", + "ATTIC", + "BASEMENT", + "COMPUTER ROOM" +}; + +const char* room_description_table[] = { + "NOTHING" + "LONELY ROAD", + "S/N DIRT ROAD", + "FIREPLACE", + "N/W Street", + "OLD HOUSE", + "LIVING ROOM", + "ATTIC", + "BASEMENT", + "COMPUTER ROOM" +}; + +const char* item_table[] = { + "FLOPPY DISK", + "SCREW DRIVER", + "KEY", + "SAUSAGE", + "ROTTEN FLESH", + "KEYBOARD", + "PISTOL" +}; + +