mirror of
https://github.com/pret/pmd-sky.git
synced 2026-10-01 06:37:50 -05:00
Decomped SetDungeonConquest
Decomped by @EditaNEmilis
This commit is contained in:
@@ -1,12 +1,8 @@
|
||||
#pragma once
|
||||
.public _0209E008
|
||||
.public _0209E010
|
||||
.public _0209E011
|
||||
.public ARM9_UNKNOWN_TABLE__NA_209E164
|
||||
.public BitstreamDebug
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public Debug_Print0
|
||||
.public FemaleToMaleForm
|
||||
.public FileClose
|
||||
.public FileRom_HandleOpen
|
||||
@@ -15,22 +11,17 @@
|
||||
.public FileRom_InitDataTransfer
|
||||
.public FileRom_StopDataTransfer
|
||||
.public FileRom_Veneer_FileInit
|
||||
.public GetDexNumber
|
||||
.public GetGameMode
|
||||
.public GLOBAL_PROGRESS_PTR
|
||||
.public GetDexNumber
|
||||
.public InitBitstreamForRead
|
||||
.public InitBitstreamForWrite
|
||||
.public KAOMADO_FILEPATH
|
||||
.public KAOMADO_STREAM
|
||||
.public LoadScriptVariableValue
|
||||
.public LoadScriptVariableValueAtIndex
|
||||
.public MemAlloc
|
||||
.public MemZero
|
||||
.public PORTRAIT_LAYOUTS
|
||||
.public SaveScriptVariableValue
|
||||
.public SaveScriptVariableValueAtIndex
|
||||
.public SCENARIO_FLAG_BACKUP_DEBUG_MSG
|
||||
.public SCENARIO_FLAG_RESUME_DEBUG_MSG
|
||||
.public SetAdventureLogCompleted
|
||||
.public VERSION_EXCLUSIVE_MONSTERS
|
||||
.public ZeroInitScriptVariable
|
||||
.public _0209E010
|
||||
.public _0209E011
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
.text
|
||||
|
||||
; https://decomp.me/scratch/FPdo0
|
||||
arm_func_start sub_0200EB64
|
||||
sub_0200EB64: ; 0x0200EB64
|
||||
ldr r1, _0200EB88 ; =ITEM_DATA_TABLE_PTRS
|
||||
|
||||
@@ -1,40 +1,8 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_0204CDB8.inc"
|
||||
.include "main_0204CF9C.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start SetDungeonConquest
|
||||
SetDungeonConquest: ; 0x0204CF38
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r3, r1
|
||||
mov r2, r0, lsr #0x10
|
||||
mov r0, #0
|
||||
mov r1, #0x52
|
||||
bl SaveScriptVariableValueAtIndex
|
||||
mov r7, #0
|
||||
ldr r6, _0204CF98 ; =_0209E008
|
||||
mov r5, r7
|
||||
mov r4, #0x52
|
||||
_0204CF64:
|
||||
ldrb r2, [r6, r7]
|
||||
add r7, r7, #1
|
||||
cmp r2, #0xff
|
||||
bne _0204CF80
|
||||
mov r0, #0x23
|
||||
bl SetAdventureLogCompleted
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0204CF80:
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
bl LoadScriptVariableValueAtIndex
|
||||
cmp r0, #0
|
||||
bne _0204CF64
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0204CF98: .word _0209E008
|
||||
arm_func_end SetDungeonConquest
|
||||
|
||||
arm_func_start GetDungeonMode
|
||||
GetDungeonMode: ; 0x0204CF9C
|
||||
stmdb sp!, {r4, lr}
|
||||
@@ -10,5 +10,6 @@ void sub_0204CE48(u32 idx, s32 value);
|
||||
void InitDungeonListScriptVars(void);
|
||||
bool8 sub_0204CEE0(u32 idx);
|
||||
bool8 sub_0204CF0C(u32 idx);
|
||||
void SetDungeonConquest(u32 dungeon_id, s32 bit_value);
|
||||
|
||||
#endif PMDSKY_SCRIPT_VARIABLE_2_H
|
||||
|
||||
2
main.lsf
2
main.lsf
@@ -102,7 +102,7 @@ Static main
|
||||
Object src/progression.o
|
||||
Object src/scenario_flag.o
|
||||
Object src/script_variable_2.o
|
||||
Object asm/main_0204CDB8.o
|
||||
Object asm/main_0204CF9C.o
|
||||
Object src/main_0204DA2C.o
|
||||
Object asm/main_0204DBA0.o
|
||||
Object src/main_0204DD80.o
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
#include "enums.h"
|
||||
#include "game_mode.h"
|
||||
|
||||
extern void SetAdventureLogCompleted(u32);
|
||||
extern u8 _0209E008[0x10];
|
||||
|
||||
void InitWorldMapScriptVars() {
|
||||
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_NORMAL);
|
||||
ZeroInitScriptVariable(0, VAR_WORLD_MAP_MARK_LIST_SPECIAL);
|
||||
@@ -57,4 +60,23 @@ bool8 sub_0204CF0C(u32 idx) {
|
||||
return LoadScriptVariableValueAtIndex(0,VAR_DUNGEON_CONQUEST_LIST, idx) != 0;
|
||||
}
|
||||
|
||||
void SetDungeonConquest(u32 dungeon_id, s32 bit_value)
|
||||
{
|
||||
u32 var_r7;
|
||||
u8 byte;
|
||||
|
||||
SaveScriptVariableValueAtIndex(0, VAR_DUNGEON_CONQUEST_LIST, (u16)dungeon_id, bit_value);
|
||||
|
||||
var_r7 = 0;
|
||||
while(1)
|
||||
{
|
||||
byte = _0209E008[var_r7++];
|
||||
if (byte == 0xFF) {
|
||||
SetAdventureLogCompleted(0x23);
|
||||
return;
|
||||
}
|
||||
if (LoadScriptVariableValueAtIndex(0, VAR_DUNGEON_CONQUEST_LIST, byte) == 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user