Files
psopeeps-newserv/system/quests/download/q050-d1-e.bin.txt
T
2024-07-07 16:39:52 -07:00

1066 lines
43 KiB
Plaintext
Executable File

.version DC_V1
.quest_num 15
.language 1
.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 <hero job>\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