Merge pull request #156 from mrshigure/item

Partially matched board/item
This commit is contained in:
gamemasterplc 2024-02-01 15:12:36 -06:00 committed by GitHub
commit 62577a5822
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 1960 additions and 33 deletions

View file

@ -27,22 +27,22 @@ void BoardTutorialItemSet(s32);
void BoardCharWheelSetTarget(s32);
void BoardTutorialDirInputSet(s32, s32, s32);
void BoardSpaceStarSetIndex(s32);
void BoardModelRotYSet(s16, f32);
s32 BoardModelRotYSet(s16, f32);
f32 BoardModelRotYGet(s16);
void BoardModelLayerSet(s16, u8);
s32 BoardModelLayerSet(s16, u8);
void BoardTutorialHostSet(s16);
s16 BoardModelIDGet(s16);
void BoardModelScaleSetV(s16, Vec*);
s32 BoardModelScaleSetV(s16, Vec*);
void BoardLightHookSet(BoardLightHook set, BoardLightHook reset);
s16 BoardModelCreate(s32, void*, s32);
s16 BoardModelCreate(s32, s32*, s32);
void BoardModelKill(s16);
void fn_8006DDE8(s16, f32);
s32 BoardModelMotionStart(s16, s32, s32);
void BoardModelMotionSpeedSet(s16, f32);
void BoardModelPosSetV(s16, Vec*);
void BoardModelPosSet(s16, f32, f32, f32);
void BoardModelRotSetV(s16 arg0, Vec* arg1);
void BoardModelVisibilitySet(s16, s32);
s32 fn_8006DDE8(s16, f32);
s32 BoardModelMotionStart(s16, s32, u32);
s32 BoardModelMotionSpeedSet(s16, f32);
s32 BoardModelPosSetV(s16, Vec*);
s32 BoardModelPosSet(s16, f32, f32, f32);
s32 BoardModelRotSetV(s16 arg0, Vec* arg1);
s32 BoardModelVisibilitySet(s16, s32);
void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func);
void BoardSpaceWalkMiniEventFuncSet(BoardSpaceEventFunc func);
void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func);
@ -56,10 +56,10 @@ void BoardBooHouseHostSet(s16);
void BoardTutorialHookSet(void*);
void BoardTutorialBlockSetPos(s32, s32);
s32 BoardCameraRotGet(Vec*);
void BoardModelScaleSet(s16, f32, f32, f32);
s32 BoardModelScaleSet(s16, f32, f32, f32);
s32 BoardIsKill(void);
void BoardModelMtxSet(s16, Mtx*);
void BoardModelRotSet(s16, f32, f32, f32);
s32 BoardModelRotSet(s16, f32, f32, f32);
void BoardBowserExec(s32 player, s32 space);
void BoardBattleExec(s32 player, s32 space);

11
include/game/board/item.h Executable file
View file

@ -0,0 +1,11 @@
#ifndef _BOARD_ITEM_H
#define _BOARD_ITEM_H
#include "dolphin/types.h"
void BoardItemStart(s32 arg0, s32 arg1);
BOOL BoardItemDoneCheck(void);
void BoardItemPlayerRestore(s32 arg0, s32 arg1);
void BoardItemBagItemSet(s16 *arg0);
#endif

View file

@ -34,8 +34,18 @@ s32 BoardModelAmbSet(s16 model, float r, float g, float b);
s32 BoardModelExistCheck(s16 model, s32 arg1);
s32 BoardModelExistDupe(s16 model, s32 arg1);
s32 fn_8006DDE8(s16 model, float arg1);
s32 BoardModelMotionCreate(s16 model, s32 data_num);
s32 BoardModelMotionStartEndSet(s16 model, s16 start, s16 end);
s32 BoardModelMotionStart(s16 model, s32 slot, u32 attr);
s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr);
s32 BoardModelAttrSet(s16 model, u32 attr);
s32 BoardModelMotionTimeSet(s16 model, float time);
float BoardModelMotionTimeGet(s16 model);
float BoardModelMotionMaxTimeGet(s16 model);
s32 BoardModelMotionSpeedSet(s16 model, float speed);
s32 BoardModelMotionEndCheck(s16 model);
s32 BoardModelAlphaSet(s16 model, u8 alpha);
s32 BoardModelRotYSet(s16 model, float rot);
s32 BoardModelPosSet(s16 model, float x, float y, float z);
s32 BoardModelPosSetV(s16 model, Vec *pos);
s32 BoardModelRotSet(s16 model, float x, float y, float z);

View file

@ -33,4 +33,6 @@ void BoardMakeRandomItem(void);
void BoardItemGetDestPos(s32 arg0, Vec *arg1);
void BoardItemStatusKill(s32 arg0);
extern s8 boardItemUser;
#endif

View file

@ -177,4 +177,9 @@ static inline s32 GWPlayerTeamGet(s32 player)
return GWPlayer[player].team;
}
static inline s32 GWPlayerSpaceCurrGet(s32 player)
{
return GWPlayer[player].space_curr;
}
#endif

View file

@ -29,7 +29,8 @@ typedef struct {
typedef struct particle_data {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
/* 0x04 */ char unk_04[0x1C];
/* 0x04 */ float unk_04;
/* 0x08 */ char unk_08[0x18];
/* 0x20 */ s16 unk_20;
/* 0x22 */ s16 unk_22;
/* 0x24 */ float unk_24;
@ -39,7 +40,7 @@ typedef struct particle_data {
/* 0x2E */ char unk_2E[2];
/* 0x30 */ s16 unk_30;
/* 0x32 */ char unk_32[2];
/* 0x34 */ s32 unk_34;
/* 0x34 */ u32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ u32 unk_3C;
/* 0x40 */ s32 unk_40;
@ -115,6 +116,7 @@ void Hu3DParticleZRotSet(s16 arg0, float arg1);
void Hu3DParticleColSet(s16 arg0, u8 arg1, u8 arg2, u8 arg3);
void Hu3DParticleTPLvlSet(s16 arg0, float arg1);
void Hu3DParticleBlendModeSet(s16 arg0, u8 arg1);
void Hu3DParticleHookSet(s16 arg0, void *arg1);
void Hu3DParticleAttrSet(s16 arg0, u8 arg1);
void Hu3DParticleAttrReset(s16 arg0, u8 arg1);
void Hu3DParticleAnimModeSet(s16 arg0, s16 arg1);

View file

@ -135,6 +135,7 @@ void Hu3DNoSyncSet(s32);
s16 Hu3DModelCreate(void *);
s16 Hu3DModelLink(s16);
s16 Hu3DHookFuncCreate(ModelHookFunc);
void Hu3DModelKill(s16);
void Hu3DModelAllKill(void);
void Hu3DModelPosSet(s16, f32, f32, f32);
void Hu3DModelPosSetV(s16, Vec *);

View file

@ -11,8 +11,8 @@
#include "board_unsplit.h"
#include "game/hsfman.h"
void BoardModelPosSet(s16, f32, f32, f32);
s32 BoardModelMotionStart(s16, s32, s32);
s32 BoardModelPosSet(s16, f32, f32, f32);
s32 BoardModelMotionStart(s16, s32, u32);
void fn_8005B150(void*, void*);
void fn_1_740(void);
@ -26,7 +26,7 @@ void fn_1_AF8(void);
void fn_1_DEC(void);
void fn_1_10B0(void);
s32 fn_1_12C8(void);
void fn_8006DDE8(s16, f32);
s32 fn_8006DDE8(s16, f32);
void fn_1_10E4(omObjData* arg0);
extern Process *boardObjMan;
typedef void (*VoidFunc)(void);
@ -35,7 +35,7 @@ extern const VoidFunc _dtors[];
f32 BoardModelMotionTimeGet(s16);
s16 BoardModelCreate(s32, void*, s32);
s16 BoardModelCreate(s32, s32*, s32);
void BoardModelKill(s16);
void BoardModelMotionStartEndSet(s16, s32, s32);
void Hu3DFogSet(f32, f32, u8, u8, u8);
@ -142,10 +142,10 @@ void BoardCreate(void) {
fn_8006DDE8(lbl_1_data_1E2, -1.0f);
BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001);
lbl_1_data_1E4 = BoardModelCreate(0x77001B, &lbl_1_data_20C, 0);
lbl_1_data_1E4 = BoardModelCreate(0x77001B, lbl_1_data_20C, 0);
BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001);
lbl_1_data_1E6 = BoardModelCreate(0x2000D, &lbl_1_data_214, 0);
lbl_1_data_1E6 = BoardModelCreate(0x2000D, lbl_1_data_214, 0);
BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001);

View file

@ -14,7 +14,7 @@ Vec lbl_1_data_80[2] = {
void fn_1_AEC(void) {
lbl_1_bss_1C = 0;
lbl_1_bss_1E = BoardModelCreate(MAKE_DATA_NUM(DATADIR_W10, 15), &lbl_1_data_78, 0);
lbl_1_bss_1E = BoardModelCreate(MAKE_DATA_NUM(DATADIR_W10, 15), lbl_1_data_78, 0);
BoardModelMotionStart(lbl_1_bss_1E, 1, 0x40000001);
BoardTutorialHostSet(lbl_1_bss_1E);
BoardModelLayerSet(lbl_1_bss_1E, 6);

1902
src/game/board/item.c Executable file

File diff suppressed because it is too large Load diff

View file

@ -9,13 +9,15 @@
#include "game/pad.h"
#include "game/process.h"
#include "game/window.h"
#include "game/board/item.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "board_unsplit.h"
#include "math.h"
#define ABS(x) ((x < 0) ? -x : x)
#define ABS(x) (((x) < 0) ? -(x) : (x))
typedef struct {
/* 0x00 */ struct {
@ -91,18 +93,10 @@ typedef struct {
} UnkUiWork04;
void BoardPlayerSparkSet(s32);
s32 BoardItemDoneCheck(void);
void BoardItemStart(s32, s32);
void BoardTutorialHookExec(s16, s32);
s16 BoardBowserSuitModelGet(void);
void BoardBowserSuitMotionCreate(void);
s16 BoardBowserSuitPlayerModelGet(void);
void CharModelLayerSetAll(s32);
void BoardItemBagItemSet(void*);
float BoardModelMotionTimeGet(s16);
void BoardModelMotionStartEndSet(s16, s16, s16);
void BoardModelMotionTimeSet(s16, float);
void BoardModelPosGet(s16, Vec*);
s32 BoardComTutorialItemGet(s32);
void BoardTutorialHostHide(s32);
@ -1201,7 +1195,7 @@ void BoardMakeRandomItem(void) {
itemRandTbl[i] = temp_r3;
}
}
BoardItemBagItemSet(&itemRandTbl);
BoardItemBagItemSet(itemRandTbl);
}
static inline void TeamItemPosSetInlineFunc01(s32 arg0, s32 arg1, Vec *arg2) {

View file

@ -6,7 +6,7 @@
#include "math.h"
#include "string.h"
#define ABS(x) ((x < 0) ? -x : x)
#define ABS(x) (((x) < 0) ? -(x) : (x))
typedef struct {
/* 0x00 */ ModelData *unk00;