Decomped SetDungeonConquest

Decomped by @EditaNEmilis
This commit is contained in:
AnonymousRandomPerson
2026-06-21 19:14:04 -04:00
parent 02faa35ada
commit d92ff543d1
6 changed files with 29 additions and 46 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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}

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}
}
}