mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Decomp GetItemTypeParameter
This commit is contained in:
parent
1d5b73adc8
commit
9f8bd00748
|
|
@ -50,6 +50,7 @@
|
|||
.public MultiplyByFixedPoint
|
||||
.public PointsToZero
|
||||
.public RandRangeSafe
|
||||
.public SprintfStatic__0200E808_EU
|
||||
.public strcpy
|
||||
.public strncpy
|
||||
.public sub_0200EB64
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
#pragma once
|
||||
.public GetExclusiveItemOffsetEnsureValid
|
||||
.public ITEM_DATA_TABLE_PTRS
|
||||
|
|
@ -1857,20 +1857,3 @@ _0200E800: .word _020AFF88_EU
|
|||
#endif
|
||||
_0200E75C: .word _02098070
|
||||
arm_func_end LoadItemPspi2n
|
||||
|
||||
#ifdef EUROPE
|
||||
arm_func_start SprintfStatic__0200E808_EU
|
||||
SprintfStatic__0200E808_EU: ; 0x0200E808
|
||||
stmdb sp!, {r0, r1, r2, r3}
|
||||
stmdb sp!, {r3, lr}
|
||||
add r2, sp, #0xc
|
||||
bic r2, r2, #3
|
||||
ldr r1, [sp, #0xc]
|
||||
add r2, r2, #4
|
||||
bl vsprintf
|
||||
ldmia sp!, {r3, lr}
|
||||
add sp, sp, #0x10
|
||||
bx lr
|
||||
arm_func_end SprintfStatic__0200E808_EU
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "main_0200E7E8.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start GetExclusiveItemParameter
|
||||
GetExclusiveItemParameter: ; 0x0200E7E8
|
||||
stmdb sp!, {r3, lr}
|
||||
bl GetExclusiveItemOffsetEnsureValid
|
||||
ldr r1, _0200E804 ; =ITEM_DATA_TABLE_PTRS
|
||||
#ifdef EUROPE
|
||||
ldr r1, [r1, #4]
|
||||
#else
|
||||
ldr r1, [r1]
|
||||
#endif
|
||||
add r0, r1, r0, lsl #2
|
||||
ldrsh r0, [r0, #2]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_0200E804: .word ITEM_DATA_TABLE_PTRS
|
||||
arm_func_end GetExclusiveItemParameter
|
||||
|
|
@ -3,6 +3,10 @@
|
|||
|
||||
#include "util.h"
|
||||
|
||||
#ifdef EUROPE
|
||||
void SprintfStatic__0200E808_EU(char* buf, const char* fmt, ...);
|
||||
#endif
|
||||
|
||||
u8 GetExclusiveItemType(s16 item_id);
|
||||
s16 GetExclusiveItemOffsetEnsureValid(s16 item_id);
|
||||
|
||||
|
|
@ -10,4 +14,6 @@ s16 GetExclusiveItemOffsetEnsureValid(s16 item_id);
|
|||
// In particular, checks if the "is valid" flag is set on its item_p.bin entry.
|
||||
bool8 IsItemValid(s16 item_id);
|
||||
|
||||
s16 GetExclusiveItemParameter(s16 item_id);
|
||||
|
||||
#endif //PMDSKY_ITEM_UTIL_1_H
|
||||
|
|
|
|||
1
main.lsf
1
main.lsf
|
|
@ -40,7 +40,6 @@ Static main
|
|||
Object src/item_util_4.o
|
||||
Object asm/main_0200CAFC.o
|
||||
Object src/item_util_1.o
|
||||
Object asm/main_0200E7E8.o
|
||||
Object src/item_util_2.o
|
||||
Object asm/main_0200EB30.o
|
||||
Object src/main_0200ECFC.o
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "debug.h"
|
||||
#include "item_util_1.h"
|
||||
#include "item.h"
|
||||
|
||||
|
|
@ -8,6 +9,17 @@ struct item_data_entry_alt {
|
|||
|
||||
extern struct item_data_entry *ITEM_DATA_TABLE_PTRS[3];
|
||||
|
||||
extern s32 vsprintf(u8* str, const u8* format, va_list ap);
|
||||
|
||||
#ifdef EUROPE
|
||||
void SprintfStatic__0200E808_EU(char* buf, const char* fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vsprintf(buf, fmt, args);
|
||||
}
|
||||
#endif
|
||||
|
||||
u8 GetExclusiveItemType(s16 item_id) {
|
||||
item_id = GetExclusiveItemOffsetEnsureValid(item_id);
|
||||
#ifdef EUROPE
|
||||
|
|
@ -34,3 +46,12 @@ bool8 IsItemValid(s16 item_id)
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s16 GetExclusiveItemParameter(s16 item_id) {
|
||||
item_id = GetExclusiveItemOffsetEnsureValid(item_id);
|
||||
#ifdef EUROPE
|
||||
return ((struct item_data_entry_alt**) (void**)ITEM_DATA_TABLE_PTRS)[1][item_id].unk2;
|
||||
#else
|
||||
return ((struct item_data_entry_alt**) (void**)ITEM_DATA_TABLE_PTRS)[0][item_id].unk2;
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ extern const char ITEM_NAME_FORMAT_INDIGO;
|
|||
extern const char ITEM_NAME_FORMAT_PLAIN;
|
||||
extern const char ITEM_NAME_FORMAT_CREAM;
|
||||
|
||||
extern char* SprintfStatic__0200E808_EU(char*, const char*, ...);
|
||||
// extern char* SprintfStatic__0200E808_EU(char*, const char*, ...);
|
||||
extern u8* strcpy(u8*, u8*);
|
||||
extern s32 vsprintf(u8* str, const u8* format, va_list ap);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user