mirror of
https://github.com/zeldaret/ph
synced 2026-05-23 15:01:37 -04:00
Decomp ItemManager::LoadDungeonItemModels
This commit is contained in:
@@ -3,51 +3,6 @@
|
||||
|
||||
.text
|
||||
|
||||
.global _ZN11ItemManager21LoadDungeonItemModelsEv
|
||||
thumb_func_start _ZN11ItemManager21LoadDungeonItemModelsEv
|
||||
_ZN11ItemManager21LoadDungeonItemModelsEv: ; 0x020ae5fc
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
ldr r7, _020ae644 ; =data_027e0f78
|
||||
add r5, r0, #0
|
||||
mov r4, #0
|
||||
_020ae604:
|
||||
mov r0, #1
|
||||
lsl r0, r0, #8
|
||||
ldr r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
beq _020ae638
|
||||
cmp r4, #2
|
||||
beq _020ae61a
|
||||
cmp r4, #3
|
||||
beq _020ae61a
|
||||
cmp r4, #4
|
||||
bne _020ae622
|
||||
_020ae61a:
|
||||
ldr r2, [r7]
|
||||
ldrh r1, [r2, #0x1e]
|
||||
ldrh r6, [r2, #0x1c]
|
||||
b _020ae628
|
||||
_020ae622:
|
||||
ldr r2, [r7]
|
||||
ldrh r1, [r2, #0x1a]
|
||||
ldrh r6, [r2, #0x18]
|
||||
_020ae628:
|
||||
blx func_020196bc
|
||||
mov r0, #1
|
||||
lsl r0, r0, #8
|
||||
ldr r0, [r5, r0]
|
||||
add r1, r6, #0
|
||||
blx func_020196fc
|
||||
_020ae638:
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #5
|
||||
blt _020ae604
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
thumb_func_end _ZN11ItemManager21LoadDungeonItemModelsEv
|
||||
_020ae644: .word data_027e0f78
|
||||
|
||||
.global _ZN11ItemManager18func_ov00_020ae648Ejjj
|
||||
thumb_func_start _ZN11ItemManager18func_ov00_020ae648Ejjj
|
||||
_ZN11ItemManager18func_ov00_020ae648Ejjj: ; 0x020ae648
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
struct UnkStruct_027e0f78 {
|
||||
/* 00 */ unk8 mUnk_00[0x18];
|
||||
/* 18 */ u16 mUnk_18;
|
||||
/* 1a */ u16 mUnk_1a;
|
||||
/* 1c */ u16 mUnk_1c;
|
||||
/* 1e */ u16 mUnk_1e;
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0f78 *data_027e0f78;
|
||||
@@ -9,6 +9,7 @@ extern "C" {
|
||||
#include "lib/math.h"
|
||||
|
||||
#include "Actor/ActorNavi.hpp"
|
||||
#include "DTCM/UnkStruct_027e0f78.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "Map/MapManager.hpp"
|
||||
|
||||
@@ -889,3 +889,28 @@ ARM bool ItemManager::HasPurplePotion() const {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" void func_020196bc(ItemModel *param1, unk32 param2);
|
||||
extern "C" void func_020196fc(ItemModel *param1, unk32 param2);
|
||||
THUMB void ItemManager::LoadDungeonItemModels() {
|
||||
for (s32 i = 0; i < DungeonItemModelId_COUNT; ++i) {
|
||||
if (mDungeonItemModels[i] == NULL) continue;
|
||||
|
||||
u16 unk1, unk2;
|
||||
switch (i) {
|
||||
case DungeonItemModelId_RoundCrystal:
|
||||
case DungeonItemModelId_SquareCrystal:
|
||||
case DungeonItemModelId_TriangleCrystal: {
|
||||
unk1 = data_027e0f78->mUnk_1e;
|
||||
unk2 = data_027e0f78->mUnk_1c;
|
||||
} break;
|
||||
|
||||
default: {
|
||||
unk1 = data_027e0f78->mUnk_1a;
|
||||
unk2 = data_027e0f78->mUnk_18;
|
||||
} break;
|
||||
}
|
||||
func_020196bc(mDungeonItemModels[i], unk1);
|
||||
func_020196fc(mDungeonItemModels[i], unk2);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user