.version DC_V1 .quest_num 50 .language E .name "Soul of a Blacksmith" .short_desc "A blacksmith\nwants to make\na weapon using\nRagol\'s unknown\nmaterials." .long_desc "Client: Ozwald\nQuest:\nI want to make a new\nweapon using unknown\nmaterials on Ragol.\nReward: 2500 Meseta" start: call random_setup get_difficulty_level_v1 r83 set_floor_handler 0x00000000, floor_handler_0 set_floor_handler 0x00000001, floor_handler_1 set_floor_handler 0x00000002, floor_handler_2 set_floor_handler 0x00000003, floor_handler_3 set_floor_handler 0x00000004, floor_handler_4 set_floor_handler 0x00000005, floor_handler_5 set_floor_handler 0x0000000B, floor_handler_B leti r60, 0x00000000 leti r61, 0x00000000 leti r62, 0x00000000 leti r63, 0x00000000 map_designate r60-r63 leti r60, 0x00000001 leti r61, 0x00000000 leti r62, 0x00000000 leti r63, 0x00000003 map_designate r60-r63 leti r60, 0x00000002 leti r61, 0x00000000 leti r62, 0x00000000 leti r63, 0x00000003 map_designate r60-r63 leti r60, 0x00000003 leti r61, 0x00000000 leti r62, 0x00000002 leti r63, 0x00000000 map_designate r60-r63 leti r60, 0x00000004 leti r61, 0x00000000 leti r62, 0x00000002 leti r63, 0x00000000 map_designate r60-r63 leti r60, 0x00000005 leti r61, 0x00000000 leti r62, 0x00000001 leti r63, 0x00000001 map_designate r60-r63 leti r60, 0x0000000B leti r61, 0x00000000 leti r62, 0x00000000 leti r63, 0x00000000 map_designate r60-r63 set_qt_success on_quest_success ret return: ret floor_handler_0: set_mainwarp 0x00000001 set_mainwarp 0x00000003 jmpi_eq r200, 0x00000001, return leti r60, 0x000000E6 leti r61, 0x00000000 leti r62, 0x0000014D leti r63, 0x00000000 p_setpos 0x00000000, r60-r63 call label0136 set r200 ret on_quest_success: gset 0x0081 window_msg "You\'ve been awarded 2500 Meseta." bgm 0x00000001 winend pl_add_meseta 0x00000000, 0x000009C4 ret floor_handler_1: leti r60, 0xFFFFFEEC leti r61, 0x00000010 leti r62, 0xFFFFFDDD leti r63, 0x0000000F leti r64, 0x00000168 at_coords_call r60-r64 leti r60, 0x000001E3 leti r61, 0x0000001F leti r62, 0xFFFFFFBF leti r63, 0x0000000F leti r64, 0x00000169 at_coords_call r60-r64 ret floor_handler_2: ret floor_handler_3: leti r60, 0x00000033 leti r61, 0x00000000 leti r62, 0x00000370 leti r63, 0x00000028 leti r64, 0x0000016A at_coords_call r60-r64 switch_on 0x00000005 switch_on 0x0000000A ret floor_handler_4: leti r60, 0x000005A9 leti r61, 0x00000000 leti r62, 0xFFFFFCA6 leti r63, 0x00000028 leti r64, 0x0000016B at_coords_call r60-r64 ret floor_handler_5: leti r60, 0x00000204 leti r61, 0x00000000 leti r62, 0xFFFFFB99 leti r63, 0x00000012 leti r64, 0x0000016C at_coords_call r60-r64 ret floor_handler_B: thread_stg label00CC ret label0136@0x0136: jmpi_eq r8, 0x00000001, label013C jmpi_eq r255, 0x00000001, label013B jmp_on label013A, [r3, r2, r6] jmp_on label013A, [r1, r2, r6] jmp_on label0139, [r1, r2, r5] jmp_on label0139, [r3, r2, r5] jmp_on label0138, [r1, r2, r4] jmp_on label0138, [r3, r2, r4] jmpi_eq r0, 0x00000001, label0137 call label00DC message 0x00000065, "Are you a \nfrom the Hunter\'s\nGuild?" add_msg "I\'m Ozwald, a\nblacksmith. Nice to\nmeet you." add_msg "I think it\'ll be an easy\njob for you, too." add_msg "It\'s simple. Go to\nRagol to collect some\nraw weapon material." add_msg "The weapon made by the\nmaterials on Ragol will\nbe yours. Good deal?" add_msg "I\'m just interested in\nthe creation process\nusing unknown materials." add_msg "Now, I want you to\ncollect three different\nmaterials on Ragol." add_msg "Take this memo with you.\nThat is a list of\nwhat I want." add_msg "Oh, one more thing!" add_msg "About the third one. I\'m\nnot sure that kind of\nmaterial exists there." add_msg "So, it\'s up to you.\nJust bring back what\nyou think is good." add_msg "Find something good\nto make a strong\nweapon. OK?" add_msg "Here\'s the list.\nRead it carefully." add_msg "Don\'t disappoint me,\nOK?" mesend set r0 window_msg "Got the material memo!" winend bgm 0x00000001 call label00DD set_quest_board_handler 0x00000000, label0123, "Material Memo" set r74 ret label0137@0x0137: message 0x00000065, "Hey, what\'s up?\nNot done yet?" add_msg "Hurry up, hurry it up.\nI can\'t wait." mesend ret label0138@0x0138: message 0x00000065, "Yes, yes!\nYou finally came back." add_msg "Well, I\'ve never seen\nthis mineral before." mesend list r100, "Blade\nGun\nStaff\nWait and reconsider." switch_jmp r100, [label014B, label014E, label0151, label01AE] ret label014B@0x014B: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0@110, 0x00 leti r:item_data1_1@111, 0x02 leti r:item_data1_2@112, 0x00 leti r:item_data1_3@113, 0x00 leti r:item_data1_4@114, 0x18 leti r:item_data1_5@115, 0x00 leti r:item_data1_6@116, 0x00 leti r:item_data1_7@117, 0x00 leti r:item_data1_8@118, 0x00 leti r:item_data1_9@119, 0x00 leti r:item_data1_A@120, 0x00 leti r:item_data1_B@121, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Fire Sword!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label014E@0x014E: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x07 leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x18 leti r:item_data1_5, 0x00 leti r:item_data1_6, 0x00 leti r:item_data1_7, 0x00 leti r:item_data1_8, 0x00 leti r:item_data1_9, 0x00 leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Fire Rifle!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0151@0x0151: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x0B leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x18 leti r:item_data1_5, 0x00 leti r:item_data1_6, 0x00 leti r:item_data1_7, 0x00 leti r:item_data1_8, 0x00 leti r:item_data1_9, 0x00 leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Fire Rod!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0139@0x0139: message 0x00000065, "Yes, yes!\nFinally, you came back." add_msg "Well, it seems like it\'s\ngood quality mineral..." mesend list r100, "Blade\nGun\nStaff\nWait and reconsider." switch_jmp r100, [label0155, label0158, label015B, label01AE] label0155@0x0155: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x02 leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x10 leti r:item_data1_5, 0x00 leti r:item_data1_6, 0x00 leti r:item_data1_7, 0x00 leti r:item_data1_8, 0x00 leti r:item_data1_9, 0x00 leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Frost Sword!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0158@0x0158: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours.\nI hope it helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x08 leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x10 leti r:item_data1_5, 0x00 leti r:item_data1_6, 0x00 leti r:item_data1_7, 0x00 leti r:item_data1_8, 0x00 leti r:item_data1_9, 0x00 leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Frost Mechgun!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label015B@0x015B: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x0B leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x10 leti r:item_data1_5, 0x00 leti r:item_data1_6, 0x00 leti r:item_data1_7, 0x00 leti r:item_data1_8, 0x00 leti r:item_data1_9, 0x00 leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Frost Rod!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label013A@0x013A: jmpi_eq r83, 0x00000000, label015E jmpi_eq r83, 0x00000001, label0172 jmpi_eq r83, 0x00000002, label017C ret label015E@0x015E: message 0x00000065, "Yes, yes!\nYou\'re finally back." add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" mesend list r100, "Blade\nGun\nStaff\nWait and reconsider." switch_jmp r100, [label015F, label0162, label0165, label01AE] label015F@0x015F: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x04 leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x25 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Havoc Partisan!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0162@0x0162: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x08 leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x25 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Havoc Mechgun!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0165@0x0165: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x0C leti r:item_data1_2, 0x00 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x25 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Havoc Wand!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0172@0x0172: message 0x00000065, "Yes, yes!\nYou\'re finally back." add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" mesend list r100, "Blade\nGun\nStaff\nWait and reconsider." switch_jmp r100, [label0173, label0176, label0179, label01AE] label0173@0x0173: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x05 leti r:item_data1_2, 0x02 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x1D leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Storm Cutter!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0176@0x0176: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x09 leti r:item_data1_2, 0x02 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x1D leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Storm Cannon!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0179@0x0179: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x0C leti r:item_data1_2, 0x02 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x1D leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Storm Baton!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label017C@0x017C: message 0x00000065, "Yes, yes!\nYou\'re finally back." add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" mesend list r100, "Blade\nGun\nStaff\nWait and reconsider." switch_jmp r100, [label017D, label0180, label0183, label01AE] label017D@0x017D: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x04 leti r:item_data1_2, 0x03 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x11 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Freeze Berdys!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0180@0x0180: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x07 leti r:item_data1_2, 0x03 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x11 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Freeze Beam!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label0183@0x0183: message 0x00000065, "OK, just wait a few\nminutes!" mesend call label0122 add_msg "Hey, I\'m back." add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." add_msg "This is yours. I hope\nit helps you." mesend leti r:item_data1_0, 0x00 leti r:item_data1_1, 0x0B leti r:item_data1_2, 0x03 leti r:item_data1_3, 0x00 leti r:item_data1_4, 0x11 leti r:item_data1_5, 0x00 call generate_bonuses leti r:item_data1_A, 0x00 leti r:item_data1_B, 0x00 item_create2 r110-r121, r:item_id set r172 jmpi_eq r:item_id, 0xFFFFFFFF, label01AF window_msg "Got a Freeze Striker!" set r255 call label012C winend bgm 0x00000000 playbgm_epi 0x00000001 ret label013B@0x013B: message 0x00000065, "The Guild will pay your\nreward. Sorry, I know\nit\'s not much Meseta." add_msg "That quality material\nyou brought back really\nexcited me. Thank you!" set r8 mesend ret label013C@0x013C: message 0x00000065, "The Guild will pay your\nreward. Sorry it\'s\nnot much Meseta." add_msg "You did a good job!\nSee you." mesend ret label01AE@0x01AE: jmp_on label01B0, [r101, r102, r103] message 0x00000065, "Well...\nThere may have also still\nbeen other minerals." mesend ret label01AF@0x01AF: window_msg "Your inventory is full." winend ret label01B0@0x01B0: ret label0140@0x0140: // Could not determine data type; disassembling as code jmpi_eq r255, 0x00000001, label0142 jmp_on label0141, [r1, r2, r6] jmp_on label0141, [r1, r2, r5] jmp_on label0141, [r1, r2, r4] jmp_on label0141, [r3, r2, r6] jmp_on label0141, [r3, r2, r5] jmp_on label0141, [r3, r2, r4] message 0x00000066, "Let me apologize for\nmy husband for asking\nsuch a big favor..." add_msg "His ambition is to be\nbetter than the \"big\nthree\" blacksmiths." add_msg "\"Big three\" is a\nrewarded name for famous\ntalented blacksmiths." add_msg "Good luck, anyway." mesend ret label0141@0x0141: message 0x00000066, "Did you find all the\nmaterials on the list?\nOh, that\'s wonderful!" add_msg "He\'ll be excited when he\nsees them. He sometimes\nacts just like a kid." mesend ret label0142@0x0142: message 0x00000066, "Thank you." add_msg "I helped him with his\ntask for several days." add_msg "I\'m sure it\'s a good\nweapon. Please use it." mesend ret label0168@0x0168: // Could not determine data type; disassembling as code jmpi_eq r90, 0x00000001, return jmpi_eq r3, 0x00000001, label019A jmpi_eq r1, 0x00000001, return call start_cutscene set_quest_board_handler 0x00000001, label0124, "Miwontite" set r75 set r1 window_msg "Got a miwontite!" winend bgm 0x00000001 call end_cutscene ret label0169@0x0169: // Could not determine data type; disassembling as code jmpi_eq r90, 0x00000001, return jmpi_eq r1, 0x00000001, label019A jmpi_eq r3, 0x00000001, return call start_cutscene set_quest_board_handler 0x00000001, label0124, "Miwontite" set r75 set r3 window_msg "Got a miwontite!" winend bgm 0x00000001 call end_cutscene ret label019A@0x019A: call start_cutscene set r90 window_msg "Miwontite is\nalready in the inventory. " winend call end_cutscene ret label016A@0x016A: // Could not determine data type; disassembling as code jmpi_eq r255, 0x00000001, return set r101 jmpi_eq r4, 0x00000001, label0190 jmpi_eq r5, 0x00000001, label0191 jmpi_eq r6, 0x00000001, label0192 call start_cutscene window_msg "Got a red mineral!" winend bgm 0x00000001 call end_cutscene set r4 set_quest_board_handler 0x00000003, label0126, "Red Mineral" set r77 ret label016B@0x016B: // Could not determine data type; disassembling as code jmpi_eq r255, 0x00000001, return set r102 jmpi_eq r4, 0x00000001, label0193 jmpi_eq r5, 0x00000001, label0190 jmpi_eq r6, 0x00000001, label0194 call start_cutscene window_msg "Got a green mineral!" winend bgm 0x00000001 call end_cutscene set r5 set_quest_board_handler 0x00000003, label0127, "Green Mineral" set r77 ret label016C@0x016C: // Could not determine data type; disassembling as code jmpi_eq r255, 0x00000001, return set r103 jmpi_eq r4, 0x00000001, label0195 jmpi_eq r5, 0x00000001, label0196 jmpi_eq r6, 0x00000001, label0190 call start_cutscene window_msg "Got a blue mineral!" winend bgm 0x00000001 call end_cutscene set r6 set_quest_board_handler 0x00000003, label0128, "Blue Mineral" set r77 ret label0190@0x0190: call start_cutscene window_msg "The mineral is\nalready in the inventory. " winend call end_cutscene ret label0191@0x0191: call start_cutscene window_msg "Got a red mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r5 set r4 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0126, "Red Mineral\n" ret label0192@0x0192: call start_cutscene window_msg "Got a red mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r6 set r4 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0126, "Red Mineral\n" ret label0193@0x0193: call start_cutscene window_msg "Got a green mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r4 set r5 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0127, "Green Mineral\n" ret label0194@0x0194: call start_cutscene window_msg "Got a green mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r6 set r5 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0127, "Green Mineral\n" ret label0195@0x0195: call start_cutscene window_msg "Got a blue mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r4 set r6 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0128, "blue Mineral\n" ret label0196@0x0196: call start_cutscene window_msg "Got a blue mineral!" bgm 0x00000001 add_msg "..." add_msg "Photon in another mineral\ndisappeared!" winend call end_cutscene clear r5 set r6 clear_quest_board_handler 0x00000003 set_quest_board_handler 0x00000003, label0128, "Blue Mineral\n" ret label0123@0x0123: disp_msg_qb "1. Miwontite\nOften found in the river" add_msg "2. Dragon fang\nGrown in Dragon\'s jaws." add_msg "3. Mineral\nUse your best judgement." close_msg_qb ret label0124@0x0124: disp_msg_qb "Miwontite" close_msg_qb ret label0125@0x0125: disp_msg_qb "Dragon fang" close_msg_qb ret label0126@0x0126: disp_msg_qb "Red Mineral" close_msg_qb ret label0127@0x0127: disp_msg_qb "Green Mineral" close_msg_qb ret label0128@0x0128: disp_msg_qb "Blue Mineral" close_msg_qb ret label00DC@0x00DC: p_action_disable npc_nont disable_movement1 0x00000000 hud_hide p_look_at 0x00000000, 0x00000001 cine_enable cam_zmin call label00CF ret label00DD@0x00DD: cam_zmout cine_disable hud_show enable_movement1 0x00000000 npc_talk p_action_enable ret start_cutscene: cine_enable p_action_disable disable_movement1 0x00000000 ret end_cutscene: enable_movement1 0x00000000 p_action_enable cine_disable ret label0122@0x0122: fadeout call label00CF fadein ret label012C@0x012C: clear_quest_board_handler 0x00000000 clear_quest_board_handler 0x00000001 clear_quest_board_handler 0x00000002 clear_quest_board_handler 0x00000003 clear r74 clear r75 clear r76 clear r77 ret label00CC@0x00CC: jmpi_eq r2, 0x00000001, return sync leti r54, 0x0000000B leti r55, 0x00000001 if_zone_clear r56, r54-r55 jmpi_eq r56, 0x00000000, label00CC cine_enable p_action_disable disable_movement1 0x00000000 window_msg "Got a dragon fang!" winend bgm 0x00000001 enable_movement1 0x00000000 p_action_enable cine_disable set r2 set_quest_board_handler 0x00000002, label0125, "Dragon fang" set r76 ret label00CF@0x00CF: leti r72, 0x00000000 label00D0@0x00D0: sync addi r72, 0x00000001 jmpi_le r72, 0x0000001E, label00D0 ret generate_bonuses: leti r:rand_low, 0 leti r:rand_high, 4 call random let r:item_data1_6, r:rand_st leti r:rand_low, 4 leti r:rand_high, 12 call random let r:item_data1_7, r:rand_st muli r:item_data1_7, 5 subi r:item_data1_7, 10 leti r:rand_low, 0 leti r:rand_high, 4 call random jmpi_ge r:rand_st, 2, generate_bonuses_no_hit leti r:item_data1_8, 5 leti r:rand_low, 4 leti r:rand_high, 12 call random let r:item_data1_9, r:rand_st muli r:item_data1_9, 5 subi r:item_data1_9, 10 ret generate_bonuses_no_hit: leti r:item_data1_8, 0x00000000 leti r:item_data1_9, 0x00000000 ret random_setup: leti r:rand_st, 0x811C9DC5 ret random: getmtime r:rand_gen let r:rand_buf, r:rand_gen andi r:rand_buf, 0xFF000000 divi r:rand_buf, 0x01000000 xor r:rand_st, r:rand_buf muli r:rand_st, 0x01000193 let r:rand_buf, r:rand_gen andi r:rand_buf, 0x00FF0000 divi r:rand_buf, 0x00010000 xor r:rand_st, r:rand_buf muli r:rand_st, 0x01000193 let r:rand_buf, r:rand_gen andi r:rand_buf, 0x0000FF00 divi r:rand_buf, 0x00000100 xor r:rand_st, r:rand_buf muli r:rand_st, 0x01000193 andi r:rand_gen, 0x000000FF xor r:rand_st, r:rand_gen muli r:rand_st, 0x01000193 // This is biased to rand_min, but that matches Sega's implementation in V2+ let r:rand_result, r:rand_st mod2 r:rand_result, r:rand_high jmp_ge r:rand_result, r:rand_low, random_done let r:rand_result, r:rand_low random_done: ret