mirror of
https://github.com/projectPiki/pikmin2.git
synced 2024-11-27 15:20:37 +00:00
vsGameSection matched (#120)
* utilityU.h
* Add files via upload
* Add files via upload
* Add files via upload
* More Inlines
* Add files via upload
* member renaming
* 🎉
* Should probably include types.h
* Update Radar.h
* Var Renamed
* Match rest of vsGameSection.cpp
Unlinked, needs some tweaking to link
* corrections
* Update DvdThreadCommand.h
* code works. needs data fixing
* successfully link vsGameSection
GameMessageVsBirthTekiTreasure::actVs has a compiler warning for not always returning a value
* minor edit
* Minor fixes and cleanup
Co-authored-by: HeartPiece <deancsouthwood@gmail.com>
Co-authored-by: EpochFlame <82550703+EpochFlame@users.noreply.github.com>
This commit is contained in:
parent
818e3197f2
commit
fa50644be0
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,7 @@ lbl_80483FBC:
|
||||
.4byte 0x00000000
|
||||
|
||||
.section .data, "wa" # 0x8049E220 - 0x804EFC20
|
||||
.balign 8
|
||||
.balign 32
|
||||
.global lbl_804C1780
|
||||
lbl_804C1780:
|
||||
.4byte 0x00000000
|
||||
|
@ -129,7 +129,7 @@
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiRescue.cpp">aiRescue.cpp</a> | 21068 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameResultTexMgr.cpp">gameResultTexMgr.cpp</a> | 21289 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/vsGS_Result.cpp">vsGS_Result.cpp</a> | 21310 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/interactNavi.cpp">interactNavi.cpp</a> | 21363 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayCommonData.cpp">gamePlayCommonData.cpp</a> | 21622 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/vsStageData.cpp">vsStageData.cpp</a> | 22549 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_CaveResult.cpp">singleGS_CaveResult.cpp</a> | 22819 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiTeki.cpp">aiTeki.cpp</a> | 23946 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_CaveResult.cpp">singleGS_CaveResult.cpp</a> | 22831 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiTeki.cpp">aiTeki.cpp</a> | 23946 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pathfinder.cpp">pathfinder.cpp</a> | 26780 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiCrop.cpp">aiCrop.cpp</a> | 26982 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiTransport.cpp">aiTransport.cpp</a> | 27315 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiBattle.cpp">aiBattle.cpp</a> | 29689 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_MainResult.cpp">singleGS_MainResult.cpp</a> | 29765 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/creatureStick.cpp">creatureStick.cpp</a> | 29885 |
|
||||
@ -141,8 +141,6 @@
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiAttack.cpp">aiAttack.cpp</a> | 38730 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/collinfo.cpp">collinfo.cpp</a> | 42495 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiFormation.cpp">aiFormation.cpp</a> | 43415 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCPlate.cpp">gameCPlate.cpp</a> | 43833 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameSystem.cpp">gameSystem.cpp</a> | 46374 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameGeneratorCache.cpp">gameGeneratorCache.cpp</a> | 46655 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayDataMemCard.cpp">gamePlayDataMemCard.cpp</a> | 48714 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCaveInfo.cpp">gameCaveInfo.cpp</a> | 49620 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/navi_demoCheck.cpp">navi_demoCheck.cpp</a> | 53983 |
|
||||
|
||||
### <section id="plugProjectKonoU">plugProjectKonoU</section>
|
||||
| File | Size (bytes) | File | Size (bytes) |
|
||||
@ -165,7 +163,7 @@
|
||||
### <section id="plugProjectNishimuraU">plugProjectNishimuraU</section>
|
||||
| File | Size (bytes) | File | Size (bytes) |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/nslibmath.cpp">nslibmath.cpp</a> | 4592 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tadpole.cpp">Tadpole.cpp</a> | 6529 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/nslibmath.cpp">nslibmath.cpp</a> | 4592 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tadpole.cpp">Tadpole.cpp</a> | 6532 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TyreShadow.cpp">TyreShadow.cpp</a> | 9782 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeJointMgr.cpp">SnakeJointMgr.cpp</a> | 10097 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ContRumble.cpp">ContRumble.cpp</a> | 12392 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenShadow.cpp">QueenShadow.cpp</a> | 12549 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UmimushiShadow.cpp">UmimushiShadow.cpp</a> | 12906 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyState.cpp">BabyState.cpp</a> | 13376 |
|
||||
@ -175,9 +173,9 @@
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeCrowShadow.cpp">SnakeCrowShadow.cpp</a> | 19417 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MaroFrog.cpp">MaroFrog.cpp</a> | 20927 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RumbleMgr.cpp">RumbleMgr.cpp</a> | 21535 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecHiba.cpp">ElecHiba.cpp</a> | 21886 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ImomushiState.cpp">ImomushiState.cpp</a> | 22050 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenState.cpp">QueenState.cpp</a> | 22706 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Demon.cpp">Demon.cpp</a> | 24834 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/OtakaraBase.cpp">OtakaraBase.cpp</a> | 28220 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Demon.cpp">Demon.cpp</a> | 24834 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/OtakaraBase.cpp">OtakaraBase.cpp</a> | 28226 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RandMapMgr.cpp">RandMapMgr.cpp</a> | 28857 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TankState.cpp">TankState.cpp</a> | 29311 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/IKSystemBase.cpp">IKSystemBase.cpp</a> | 30143 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Fuefuki.cpp">Fuefuki.cpp</a> | 30861 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/IKSystemBase.cpp">IKSystemBase.cpp</a> | 30143 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Fuefuki.cpp">Fuefuki.cpp</a> | 30864 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Hana.cpp">Hana.cpp</a> | 31984 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TadpoleState.cpp">TadpoleState.cpp</a> | 34258 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeWholeState.cpp">SnakeWholeState.cpp</a> | 35172 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/IKSystemMgr.cpp">IKSystemMgr.cpp</a> | 35787 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MapNode.cpp">MapNode.cpp</a> | 36411 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Baby.cpp">Baby.cpp</a> | 36633 |
|
||||
|
@ -1002,6 +1002,7 @@ typedef void GXDrawDoneCallback(void);
|
||||
|
||||
GXDrawDoneCallback* GXSetDrawDoneCallback(GXDrawDoneCallback*);
|
||||
void GXSetDrawDone();
|
||||
void GXDrawDone();
|
||||
|
||||
void GXCopyDisp(void*, GXBool); // TODO: Confirm types
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define _DVDTHREADCOMMAND_H
|
||||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "Dolphin/os.h"
|
||||
#include "AppThread.h"
|
||||
#include "types.h"
|
||||
|
||||
@ -11,22 +12,21 @@ struct JKRHeap;
|
||||
struct DvdThreadCommand {
|
||||
DvdThreadCommand();
|
||||
|
||||
~DvdThreadCommand() { }
|
||||
~DvdThreadCommand() {};
|
||||
|
||||
u32 _00; // _00
|
||||
u32 m_loadType; // _04
|
||||
char* m_arcPath; // _08
|
||||
JKRArchive* m_mountedArchive; // _0C
|
||||
s32 _10; // _10
|
||||
u32 m_modeFlags; // _14
|
||||
s32 m_mode; // _18
|
||||
char m_os; // _1C
|
||||
u8 _1D[0x16]; // _1D
|
||||
JKRHeap* m_heap; // _34
|
||||
u8 _38[0x8]; // _38
|
||||
s32* _40; // _40
|
||||
u8 _44[0x18]; // _44
|
||||
JSUPtrLink m_link; // _5C
|
||||
u32 _00; // _00
|
||||
u32 m_loadType; // _04
|
||||
char* m_arcPath; // _08
|
||||
JKRArchive* m_mountedArchive; // _0C
|
||||
s32 _10; // _10
|
||||
u32 m_modeFlags; // _14
|
||||
s32 m_mode; // _18
|
||||
char m_os; // _1C
|
||||
u8 _1D[0x16]; // _1D
|
||||
JKRHeap* m_heap; // _34
|
||||
OSMessageQueue m_msgQueue; // _38
|
||||
void* m_msgBuffer; // _58
|
||||
JSULink<DvdThreadCommand> m_link; // _5C
|
||||
};
|
||||
|
||||
struct DvdThread : public AppThread {
|
||||
|
@ -102,10 +102,10 @@ struct BaseGameSection : public BaseHIOSection {
|
||||
virtual void goMainMap(ItemBigFountain::Item*); // _74 (weak)
|
||||
virtual u32 getCaveID(); // _78 (weak)
|
||||
virtual CourseInfo* getCurrentCourseInfo(); // _7C (weak)
|
||||
virtual void challengeDisablePelplant(); // _80 (weak)
|
||||
virtual bool challengeDisablePelplant(); // _80 (weak)
|
||||
virtual char* getCaveFilename(); // _84 (weak)
|
||||
virtual void getEditorFilename(); // _88 (weak)
|
||||
virtual void getVsEditNumber(); // _8C (weak)
|
||||
virtual char* getEditorFilename(); // _88 (weak)
|
||||
virtual u32 getVsEditNumber(); // _8C (weak)
|
||||
virtual void openContainerWindow(); // _90 (weak)
|
||||
virtual void closeContainerWindow(); // _94 (weak)
|
||||
virtual void playMovie_firstexperience(int, Creature*); // _98 (weak)
|
||||
|
@ -113,11 +113,14 @@ struct Item : public WorkItem<Item, FSM, State> {
|
||||
{ // probably needs things in here, just an initial guess
|
||||
}
|
||||
|
||||
virtual void constructor(); // _2C
|
||||
virtual void onInit(CreatureInitArg*); // _30
|
||||
virtual void doSimulation(f32); // _4C
|
||||
virtual void doDirectDraw(Graphics&); // _50
|
||||
virtual f32 getFaceDir(); // _64 (weak)
|
||||
virtual void constructor(); // _2C
|
||||
virtual void onInit(CreatureInitArg*); // _30
|
||||
virtual void doSimulation(f32); // _4C
|
||||
virtual void doDirectDraw(Graphics&); // _50
|
||||
virtual f32 getFaceDir() // _64 (weak)
|
||||
{
|
||||
return m_faceDir;
|
||||
}
|
||||
virtual bool sound_culling(); // _104 (weak)
|
||||
virtual void movieUserCommand(u32 command, MoviePlayer* curPlayer); // _130
|
||||
virtual char* getCreatureName(); // _1A8 (weak)
|
||||
@ -138,7 +141,7 @@ struct Item : public WorkItem<Item, FSM, State> {
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_1EC = WorkItem
|
||||
f32 _1EC; // _1EC
|
||||
f32 m_faceDir; // _1EC
|
||||
f32 _1F0; // _1F0
|
||||
efx::TGeyserAct* m_efxGeyserAct; // _1F4
|
||||
efx::TGeyserSet* m_efxGeyserSet; // _1F8
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "Vector3.h"
|
||||
#include "Game/enemyInfo.h"
|
||||
|
||||
namespace Game {
|
||||
struct BaseGameSection;
|
||||
@ -14,6 +15,8 @@ struct GameMessage {
|
||||
virtual bool actCommon(BaseGameSection*); // _08 (weak)
|
||||
virtual bool actSingle(SingleGameSection*); // _0C (weak)
|
||||
virtual bool actVs(VsGameSection*); // _10 (weak)
|
||||
|
||||
// _00 = VTBL
|
||||
};
|
||||
|
||||
struct GameMessagePelletBorn : public GameMessage {
|
||||
@ -24,6 +27,7 @@ struct GameMessagePelletBorn : public GameMessage {
|
||||
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTBL
|
||||
Pellet* m_pellet; // _04
|
||||
};
|
||||
|
||||
@ -35,15 +39,16 @@ struct GameMessagePelletDead : public GameMessage {
|
||||
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTBL
|
||||
Pellet* m_pellet; // _04
|
||||
};
|
||||
|
||||
struct GameMessageVsAddEnemy : public GameMessage {
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTABLE
|
||||
int _04; // _04
|
||||
int _08; // _08
|
||||
// _00 = VTBL
|
||||
EnemyTypeID::EEnemyTypeID _04; // _04 (enemy ID)
|
||||
int _08; // _08 (spawn num)
|
||||
};
|
||||
|
||||
struct GameMessageVsBattleFinished : public GameMessage {
|
||||
@ -56,6 +61,7 @@ struct GameMessageVsBattleFinished : public GameMessage {
|
||||
struct GameMessageVsBirthTekiTreasure : public GameMessage {
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTBL
|
||||
Vector3f m_position; // _04
|
||||
int _10; // _10
|
||||
bool _14; // _14
|
||||
@ -64,7 +70,7 @@ struct GameMessageVsBirthTekiTreasure : public GameMessage {
|
||||
struct GameMessageVsGetDoping : public GameMessage {
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTABLE
|
||||
// _00 = VTBL
|
||||
int _04; // _04, player ID?
|
||||
int _08; // _08, spray type? 0 = bitter, 1 = spicy, maybe an enum?
|
||||
};
|
||||
@ -78,7 +84,7 @@ struct GameMessageVsGetOtakara : public GameMessage {
|
||||
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTABLE
|
||||
// _00 = VTBL
|
||||
u32 _04; // _04, onyon type according to ghidra, but that enum is meant to be a short
|
||||
int _08; // _08
|
||||
};
|
||||
@ -91,7 +97,7 @@ struct GameMessageVsGotCard : public GameMessage {
|
||||
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTABLE
|
||||
// _00 = VTBL
|
||||
u32 _04; // _04, onyon type according to ghidra, but that enum is meant to be a short
|
||||
};
|
||||
|
||||
@ -102,12 +108,16 @@ struct GameMessageVsPikminDead : public GameMessage {
|
||||
struct GameMessageVsRedOrSuckStart : public GameMessage {
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
int _04; // _04
|
||||
u8 _08; // _08 - unknown
|
||||
// _00 = VTBL
|
||||
int _04; // _04
|
||||
bool _08; // _08 - unknown
|
||||
};
|
||||
|
||||
struct GameMessageVsUseCard : public GameMessage {
|
||||
virtual bool actVs(VsGameSection*); // _10
|
||||
|
||||
// _00 = VTBL
|
||||
int _04; // _04
|
||||
};
|
||||
|
||||
} // namespace Game
|
||||
|
@ -128,7 +128,7 @@ struct ShapeMapMgr : public MapMgr {
|
||||
MapCollision _38; // _38
|
||||
};
|
||||
|
||||
extern ShapeMapMgr* mapMgr;
|
||||
extern MapMgr* mapMgr;
|
||||
} // namespace Game
|
||||
|
||||
#endif
|
||||
|
@ -73,13 +73,16 @@ typedef enum EMovieUserCommands {
|
||||
} EMovieUserCommands;
|
||||
|
||||
struct PikiInitArg : public CreatureInitArg {
|
||||
inline PikiInitArg()
|
||||
inline PikiInitArg(int p1)
|
||||
: m_leader(nullptr)
|
||||
, _04(-1)
|
||||
, _04(p1)
|
||||
{
|
||||
}
|
||||
|
||||
virtual const char* getName(); // _08 (weak)
|
||||
virtual const char* getName() // _08 (weak)
|
||||
{
|
||||
return "PikiInitArg";
|
||||
}
|
||||
|
||||
// _00 VTBL
|
||||
int _04; // _04
|
||||
|
@ -41,7 +41,7 @@ struct TekiNode : public CNode {
|
||||
int m_nodeID; // _20
|
||||
};
|
||||
|
||||
class TekiMgr {
|
||||
struct TekiMgr {
|
||||
TekiMgr();
|
||||
|
||||
void entry(EnemyTypeID::EEnemyTypeID, int);
|
||||
@ -74,7 +74,7 @@ struct CardMgr {
|
||||
f32 _0C; // _0C
|
||||
f32 _10; // _10
|
||||
f32 _14; // _14
|
||||
u8 _18[0x4]; // _18, unknown
|
||||
bool _18; // _18
|
||||
u32 _1C; // _1C, unknown
|
||||
int _20; // _20
|
||||
u8 _24[0x8]; // _24, unknown
|
||||
@ -88,7 +88,7 @@ struct CardMgr {
|
||||
u8 _50; // _50, unknown
|
||||
u8 _51; // _51
|
||||
f32 _54; // _54
|
||||
u8 _58[0x4]; // _58, unknown
|
||||
int _58; // _58
|
||||
int m_playerIndex; // _5C
|
||||
CardMgr* _60; // _60
|
||||
u32 _64; // _64
|
||||
@ -102,25 +102,25 @@ struct CardMgr {
|
||||
void update();
|
||||
void draw(Graphics&);
|
||||
void stopSlot(int);
|
||||
void usePlayerCard(int, TekiMgr*);
|
||||
bool usePlayerCard(int, TekiMgr*);
|
||||
void gotPlayerCard(int);
|
||||
void initDraw();
|
||||
void drawSlot(Graphics&, Vector3f&, SlotMachine&);
|
||||
|
||||
u32 _00; // _00, unknown
|
||||
JUTTexture** _04; // _04, slot textures?
|
||||
JUTTexture* _08; // _08
|
||||
JUTTexture* _0C; // _0C
|
||||
JUTTexture* _10; // _10
|
||||
JUTTexture* _14; // _14
|
||||
SlotMachine _18[2]; // _18
|
||||
int _F8; // _F8
|
||||
Vector3f* _FC; // _FC, array of 0x100 vectors?
|
||||
Vector3f* _100; // _100, array of 0x100 vectors?
|
||||
f32 _104; // _104
|
||||
LightObj* m_lightObj; // _108
|
||||
VsGameSection* m_section; // _10C
|
||||
TekiMgr* m_tekiMgr; // _110
|
||||
u32 _00; // _00, unknown
|
||||
JUTTexture** _04; // _04, slot textures?
|
||||
JUTTexture* _08; // _08
|
||||
JUTTexture* _0C; // _0C
|
||||
JUTTexture* _10; // _10
|
||||
JUTTexture* _14; // _14
|
||||
SlotMachine m_slotMachines[2]; // _18
|
||||
int _F8; // _F8
|
||||
Vector3f* _FC; // _FC, array of 0x100 vectors?
|
||||
Vector3f* _100; // _100, array of 0x100 vectors?
|
||||
f32 _104; // _104
|
||||
LightObj* m_lightObj; // _108
|
||||
VsGameSection* m_section; // _10C
|
||||
TekiMgr* m_tekiMgr; // _110
|
||||
};
|
||||
|
||||
struct StageData : public CNode {
|
||||
@ -156,6 +156,8 @@ struct StageList : public CNode {
|
||||
struct FSM : public StateMachine<VsGameSection> {
|
||||
virtual void init(VsGameSection*); // _08
|
||||
virtual void transit(VsGameSection*, int, StateArg*); // _14
|
||||
|
||||
void draw(VsGameSection*, Graphics&);
|
||||
};
|
||||
|
||||
struct State : public FSMState<VsGameSection> {
|
||||
@ -164,17 +166,20 @@ struct State : public FSMState<VsGameSection> {
|
||||
{
|
||||
}
|
||||
|
||||
virtual void draw(VsGameSection*, Graphics&); // _20 (weak)
|
||||
virtual void pre2dDraw(Graphics&, VsGameSection*); // _24 (weak)
|
||||
virtual void onOrimaDown(VsGameSection*, int); // _28 (weak)
|
||||
virtual void onMovieStart(VsGameSection*, MovieConfig*, u32, u32); // _2C (weak)
|
||||
virtual void onMovieDone(VsGameSection*, MovieConfig*, u32, u32); // _30 (weak)
|
||||
virtual void onNextFloor(VsGameSection*, ItemHole::Item*); // _34 (weak)
|
||||
virtual void on_section_fadeout(VsGameSection*); // _38 (weak)
|
||||
virtual void goingToCave(VsGameSection*); // _3C (weak)
|
||||
virtual void onBattleFinished(VsGameSection*, int, bool); // _40 (weak)
|
||||
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool); // _44 (weak)
|
||||
virtual void isCardUsable(VsGameSection*); // _48 (weak)
|
||||
virtual void draw(VsGameSection*, Graphics&) { } // _20 (weak)
|
||||
virtual void pre2dDraw(Graphics&, VsGameSection*) { } // _24 (weak)
|
||||
virtual void onOrimaDown(VsGameSection*, int) { } // _28 (weak)
|
||||
virtual void onMovieStart(VsGameSection*, MovieConfig*, u32, u32) { } // _2C (weak)
|
||||
virtual void onMovieDone(VsGameSection*, MovieConfig*, u32, u32) { } // _30 (weak)
|
||||
virtual void onNextFloor(VsGameSection*, ItemHole::Item*) { } // _34 (weak)
|
||||
virtual void on_section_fadeout(VsGameSection*) { } // _38 (weak)
|
||||
virtual bool goingToCave(VsGameSection*) { return false; } // _3C (weak)
|
||||
virtual void onBattleFinished(VsGameSection*, int, bool) { } // _40 (weak)
|
||||
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool) { } // _44 (weak)
|
||||
virtual bool isCardUsable(VsGameSection*) { return false; } // _48 (weak)
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = FSMState
|
||||
};
|
||||
|
||||
struct GameState : public State {
|
||||
@ -190,10 +195,10 @@ struct GameState : public State {
|
||||
virtual void onMovieDone(VsGameSection*, MovieConfig*, u32, u32); // _30
|
||||
virtual void onNextFloor(VsGameSection*, ItemHole::Item*); // _34
|
||||
virtual void on_section_fadeout(VsGameSection*); // _38 (weak)
|
||||
virtual void goingToCave(VsGameSection*); // _3C
|
||||
virtual bool goingToCave(VsGameSection*); // _3C
|
||||
virtual void onBattleFinished(VsGameSection*, int, bool); // _40
|
||||
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool); // _44
|
||||
virtual void isCardUsable(VsGameSection*); // _48
|
||||
virtual bool isCardUsable(VsGameSection*); // _48
|
||||
virtual void drawStatus(Graphics&, VsGameSection*); // _4C
|
||||
virtual void do_init(VsGameSection*); // _50
|
||||
|
||||
@ -203,12 +208,19 @@ struct GameState : public State {
|
||||
void checkPikminZero(VsGameSection*);
|
||||
void open_GameChallenge(VsGameSection*, int);
|
||||
void update_GameChallenge(VsGameSection*);
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = State
|
||||
u8 _0C[0x1C]; // _0C, unknown
|
||||
};
|
||||
|
||||
struct VSState : public GameState {
|
||||
VSState();
|
||||
|
||||
virtual void do_init(VsGameSection*); // _50
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = State
|
||||
};
|
||||
|
||||
struct LoadArg : public StateArg {
|
||||
@ -227,6 +239,8 @@ struct LoadState : public State {
|
||||
|
||||
void dvdLoad();
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = State
|
||||
f32 _0C; // _0C
|
||||
f32 _14; // _10
|
||||
Controller* m_controller; // _14
|
||||
@ -251,6 +265,10 @@ struct ResultState : public State {
|
||||
|
||||
void prepareMorimuraInfo(VsGameSection*);
|
||||
void dvdload();
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = State
|
||||
u8 _0C[0x30]; // _0C, unknown
|
||||
};
|
||||
|
||||
struct TitleState : public State {
|
||||
@ -264,6 +282,10 @@ struct TitleState : public State {
|
||||
void dvdload();
|
||||
void execChallenge(VsGameSection*);
|
||||
void execVs(VsGameSection*);
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_0C = State
|
||||
u8 _0C[0x38]; // _0C, unknown
|
||||
};
|
||||
/////////////////////////////////////////////////////////////////
|
||||
} // namespace VsGame
|
||||
|
@ -5,6 +5,12 @@
|
||||
#include "Game/BaseGameSection.h"
|
||||
#include "Game/ChallengeGame.h"
|
||||
#include "Vector3.h"
|
||||
#include "VSFifo.h"
|
||||
#include "Game/VsGameSection.h"
|
||||
#include "Game/Entities/ItemBigFountain.h"
|
||||
#include "Game/Entities/ItemHole.h"
|
||||
|
||||
struct Controller;
|
||||
|
||||
namespace Game {
|
||||
struct PikiContainer;
|
||||
@ -22,10 +28,14 @@ namespace VsGame {
|
||||
struct TekiMgr;
|
||||
struct CardMgr;
|
||||
struct StageData;
|
||||
struct StageList;
|
||||
struct State;
|
||||
} // namespace VsGame
|
||||
|
||||
struct VsGameSection : public BaseGameSection {
|
||||
struct DropCardArg {
|
||||
f32 _00; // _00
|
||||
f32 _04; // _04
|
||||
};
|
||||
|
||||
VsGameSection(JKRHeap*, bool);
|
||||
@ -40,10 +50,10 @@ struct VsGameSection : public BaseGameSection {
|
||||
virtual void startMainBgm(); // _64
|
||||
virtual void section_fadeout(); // _68
|
||||
virtual void goNextFloor(ItemHole::Item*); // _6C
|
||||
virtual void challengeDisablePelplant(); // _80 (weak)
|
||||
virtual bool challengeDisablePelplant(); // _80 (weak)
|
||||
virtual char* getCaveFilename(); // _84 (weak)
|
||||
virtual void getEditorFilename(); // _88 (weak)
|
||||
virtual void getVsEditNumber(); // _8C (weak)
|
||||
virtual char* getEditorFilename(); // _88 (weak)
|
||||
virtual u32 getVsEditNumber(); // _8C (weak)
|
||||
virtual void onMovieStart(MovieConfig*, u32, u32); // _B0
|
||||
virtual void onMovieDone(MovieConfig*, u32, u32); // _B4
|
||||
virtual void gmOrimaDown(int); // _D0
|
||||
@ -55,7 +65,7 @@ struct VsGameSection : public BaseGameSection {
|
||||
virtual void postSetupFloatMemory(); // _124
|
||||
virtual void onSetSoundScene(); // _128
|
||||
virtual void onClearHeap(); // _130
|
||||
virtual void player2enabled(); // _134 (weak)
|
||||
virtual bool player2enabled(); // _134 (weak)
|
||||
|
||||
void calcVsScores();
|
||||
void clearCaveMenus();
|
||||
@ -66,60 +76,74 @@ struct VsGameSection : public BaseGameSection {
|
||||
void createVsPikmins();
|
||||
void createYellowBedamas(int);
|
||||
void dropCard(DropCardArg&);
|
||||
u32 getGetCherryCount(int);
|
||||
void getGetDopeCount(int, int);
|
||||
u32* getGetCherryCount(int);
|
||||
u32* getGetDopeCount(int, int);
|
||||
void initCardGeneration();
|
||||
void initCardPellets();
|
||||
void initPlayData();
|
||||
void loadChallengeStageList();
|
||||
void loadVsStageList();
|
||||
void updateCardGeneration();
|
||||
void updateCaveMenus();
|
||||
bool updateCaveMenus();
|
||||
void useCard();
|
||||
|
||||
u8 _174[0xA0]; // _174
|
||||
// probably red and blue 2pbattle onyons
|
||||
PikiContainer m_container1; // _214
|
||||
PikiContainer m_container2; // _21C
|
||||
char m_caveInfoFilename[128]; // _248
|
||||
char m_editFilename[128]; // _2A4
|
||||
u32 m_currentFloor; // _324
|
||||
u32 m_editNUmber; // _328
|
||||
VsGame::TekiMgr* m_tekiMgr; // _32C
|
||||
VsGame::CardMgr* m_cardMgr; // _330
|
||||
ChallengeGame::StageData* m_stageData; // _334
|
||||
u32 m_stageNum; // _338
|
||||
VsGame::StageData* m_VsStageData; // _33C
|
||||
u32 m_VsStageNum; // _340
|
||||
u32 m_player1Pikis; // _344
|
||||
u32 m_player2Pikis; // _348
|
||||
u32 m_vsWinner; // _34C
|
||||
f32 _350; // _350
|
||||
f32 m_pikminCountTimer; // _354
|
||||
f32 _358; // _358
|
||||
f32 _35C; // _35C
|
||||
f32 _360; // _360
|
||||
f32 _364; // _364
|
||||
f32 _368; // _368
|
||||
f32 _36C; // _36C
|
||||
f32 _370; // _370
|
||||
f32 _374; // _374
|
||||
f32 _378; // _378
|
||||
f32 _37C; // _37C
|
||||
Pellet* m_marbleRed; // _380
|
||||
Pellet* m_marbleBlue; // _384
|
||||
Pellet* m_marbleYellow[7]; // _388
|
||||
u32 m_dopeCounts[2][2]; // _3A4
|
||||
u32 m_player2Cherries; // _3A8
|
||||
u32 m_player1Cherries; // _3AC
|
||||
u32 m_pokoCount; // _3B0
|
||||
f32 m_timeLimit; // _3B4
|
||||
u32 m_cardCount; // _3C4
|
||||
u32 m_maxCherries; // _3B8
|
||||
Pellet** m_cherryArray; // _3BC
|
||||
u32 _3C0; // _3C0
|
||||
u32 _3C4; // _3C4
|
||||
u32 m_yellowMarbleCounts[2]; // _3C8
|
||||
Pellet* createCardPellet();
|
||||
|
||||
static int mRedWinCount;
|
||||
static int mBlueWinCount;
|
||||
static int mDrawCount;
|
||||
|
||||
bool m_isVersusMode; // _174
|
||||
VSFifo* m_vsFifo; // _178
|
||||
StateMachine<Game::VsGameSection>* m_FSM; // _17C
|
||||
VsGame::State* m_state; // _180
|
||||
DvdThreadCommand m_dvdThreadCommand; // _184
|
||||
f32 _1F0; // _1F0
|
||||
f32 _1F4; // _1F4
|
||||
u8 m_menuFlags; // _1F8
|
||||
struct ItemHole::Item* m_hole; // _1FC
|
||||
struct ItemBigFountain::Item* m_fountain; // _200
|
||||
bool m_menuRunning; // _204
|
||||
bool _205; // _205
|
||||
int _208; // _208 - pikmin spawn queue
|
||||
ChallengeGame::StageList* m_challengeStageList; // _20C
|
||||
VsGame::StageList* m_VsStageList; // _210
|
||||
PikiContainer m_container1; // _214
|
||||
PikiContainer m_container2; // _21C
|
||||
char m_caveInfoFilename[128]; // _248
|
||||
char m_editFilename[128]; // _2A4
|
||||
u32 m_currentFloor; // _324
|
||||
u32 m_editNumber; // _328
|
||||
VsGame::TekiMgr* m_tekiMgr; // _32C
|
||||
VsGame::CardMgr* m_cardMgr; // _330
|
||||
ChallengeGame::StageData* m_challengeStageData; // _334
|
||||
u32 m_challengeStageNum; // _338
|
||||
VsGame::StageData* m_VsStageData; // _33C
|
||||
u32 m_VsStageNum; // _340
|
||||
u32 m_player1Pikis; // _344
|
||||
u32 m_player2Pikis; // _348
|
||||
u32 m_vsWinner; // _34C
|
||||
f32 m_pikminRatio; // _350
|
||||
f32 m_pikminCountTimer; // _354
|
||||
f32 m_redBlueYellowScore[2]; // _358
|
||||
f32 m_cherryScore[2]; // _360
|
||||
f32 m_maxCherryScore[2]; // _368
|
||||
f32 m_yellowScore[2]; // _370
|
||||
f32 m_redBlueScore[2]; // _378
|
||||
Pellet* m_marbleRedBlue[2]; // _380
|
||||
Pellet* m_marbleYellow[7]; // _388
|
||||
u32 m_dopeCounts[2][2]; // _3A4
|
||||
u32 m_player2Cherries; // _3B4
|
||||
u32 m_player1Cherries; // _3B8
|
||||
u32 m_pokoCount; // _3BC
|
||||
f32 m_timeLimit; // _3C0
|
||||
int m_cardCount; // _3C4
|
||||
f32 m_spawnTimer; // _3C8
|
||||
int m_maxCherries; // _3CC
|
||||
Pellet** m_cherryArray; // _3D0
|
||||
u32 _3D4; // _3D4 (3d8)
|
||||
u32 _3D8; // _3D8 (3d4)
|
||||
s32 m_yellowMarbleCounts[2]; // _3DC
|
||||
};
|
||||
} // namespace Game
|
||||
|
||||
|
@ -8,9 +8,9 @@
|
||||
#include "types.h"
|
||||
#include "stream.h"
|
||||
|
||||
namespace Game {
|
||||
struct Controller;
|
||||
|
||||
namespace Game {
|
||||
struct RumbleData {
|
||||
RumbleData();
|
||||
|
||||
|
@ -135,6 +135,20 @@ struct JUTException : public JKRThread {
|
||||
} \
|
||||
P2ASSERTLINE(line, check##line)
|
||||
|
||||
#define JUTASSERTBOUNDSLINE(line, lowerLimitInclusive, var, upperLimitExclusive, ...) \
|
||||
bool check##line = false; \
|
||||
if (lowerLimitInclusive <= var && var < upperLimitExclusive) { \
|
||||
check##line = true; \
|
||||
} \
|
||||
JUT_ASSERTLINE(line, check##line, __VA_ARGS__, var)
|
||||
|
||||
#define JUTASSERTBOUNDSINCLUSIVELINE(line, lowerLimitInclusive, var, upperLimitInclusive, ...) \
|
||||
bool check##line = false; \
|
||||
if (lowerLimitInclusive <= var && var <= upperLimitInclusive) { \
|
||||
check##line = true; \
|
||||
} \
|
||||
JUT_ASSERTLINE(line, check##line, __VA_ARGS__, var)
|
||||
|
||||
#define P2ASSERTBOOLLINE(line, var) \
|
||||
bool check##line = false; \
|
||||
if (var) { \
|
||||
|
@ -10,12 +10,38 @@ namespace PSGame {
|
||||
* @size{0x38}
|
||||
*/
|
||||
struct SceneInfo {
|
||||
struct FlagDef {
|
||||
u16 m_flags; // _00
|
||||
enum FlagDef {
|
||||
SCENEFLAG_Unk0 = 0,
|
||||
SCENEFLAG_Unk1 = 1,
|
||||
};
|
||||
|
||||
enum FlagBitShift {
|
||||
SFBS_0 = 0,
|
||||
SFBS_1 = 1,
|
||||
};
|
||||
|
||||
enum GameType {
|
||||
UNKNOWN_1 = 0,
|
||||
COURSE_TUTORIAL,
|
||||
COURSE_FOREST,
|
||||
COURSE_YAKUSHIMA,
|
||||
COURSE_LAST,
|
||||
COURSE_TEST,
|
||||
CHALLENGE_MODE,
|
||||
TWO_PLAYER_BATTLE,
|
||||
UNKNOWN_8,
|
||||
CAVE_RESULTS,
|
||||
UNKNOWN_10,
|
||||
WORLD_MAP_11,
|
||||
WORLD_MAP_12,
|
||||
OBJECTS,
|
||||
ENDING_14,
|
||||
ENDING_15,
|
||||
TITLE_16, // Seasons, I'm sure of it
|
||||
TITLE_17,
|
||||
TITLE_18,
|
||||
TITLE_19,
|
||||
UNKOWN_20
|
||||
};
|
||||
|
||||
SceneInfo();
|
||||
@ -27,7 +53,7 @@ struct SceneInfo {
|
||||
void setStageCamera() const;
|
||||
|
||||
// _00 = VTBL
|
||||
FlagDef m_stageFlags; // _04
|
||||
u16 m_stageFlags; // _04
|
||||
u8 m_gameType; // _06
|
||||
u8 _07; // _07
|
||||
Vector3f* _08; // _08
|
||||
@ -43,6 +69,15 @@ struct SceneInfo {
|
||||
* @size{0x4C}
|
||||
*/
|
||||
struct CaveFloorInfo : public SceneInfo {
|
||||
inline CaveFloorInfo()
|
||||
{
|
||||
m_alphaType = 0;
|
||||
m_betaType = 0;
|
||||
_40 = 0;
|
||||
m_caveID = 0xFFFF;
|
||||
_48 = 0xFF;
|
||||
_49 = 0xFF;
|
||||
}
|
||||
|
||||
virtual bool isCaveFloor() { return true; } // _08 (weak)
|
||||
virtual bool isBossFloor(); // _0C (weak)
|
||||
|
@ -110,10 +110,10 @@ struct Game2DMgr : public JKRDisposer {
|
||||
void open_CaveInMenu(og::Screen::DispMemberAnaDemo&);
|
||||
void check_CaveInMenu();
|
||||
void open_KanketuMenu(og::Screen::DispMemberKanketuMenu&);
|
||||
void open_ChallengeKanketuMenu(og::Screen::DispMemberKanketuMenu&);
|
||||
void check_KanketuMenu();
|
||||
void open_CaveMoreMenu(og::Screen::DispMemberCaveMore&);
|
||||
void check_CaveMoreMenu();
|
||||
bool open_ChallengeKanketuMenu(og::Screen::DispMemberKanketuMenu&);
|
||||
int check_KanketuMenu();
|
||||
bool open_CaveMoreMenu(og::Screen::DispMemberCaveMore&);
|
||||
int check_CaveMoreMenu();
|
||||
void open_FinalResult(kh::Screen::DispFinalResult&);
|
||||
void check_FinalResult() const;
|
||||
bool open_CaveResult(kh::Screen::DispCaveResult&);
|
||||
|
@ -6,18 +6,13 @@
|
||||
#include "Dolphin/gx.h"
|
||||
|
||||
struct VSFifo {
|
||||
VSFifo(unsigned long);
|
||||
virtual ~VSFifo(); // _00
|
||||
virtual void _04() = 0; // _04
|
||||
virtual void _08() = 0; // _08
|
||||
virtual void _0C() = 0; // _0C
|
||||
virtual void _10() = 0; // _10
|
||||
virtual void _14() = 0; // _14
|
||||
virtual void _18() = 0; // _18
|
||||
virtual void _1C() = 0; // _1C
|
||||
VSFifo(u32);
|
||||
|
||||
virtual ~VSFifo(); // _08
|
||||
|
||||
void becomeCurrent();
|
||||
void isGPActive();
|
||||
|
||||
static bool isGPActive();
|
||||
|
||||
static u8 mGpStatus[5];
|
||||
|
||||
@ -25,6 +20,7 @@ struct VSFifo {
|
||||
GXFifoObj* m_fifo; // _04
|
||||
void* m_base; // _08
|
||||
u32 m_size; // _0C
|
||||
u8 _10[0xC]; // _10, unknown
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
@ -307,9 +307,10 @@ inline f32 sqrDistanceXZ(Vector3f& vec1, Vector3f& vec2)
|
||||
|
||||
inline f32 _distanceXZ(Vector3f& vec1, Vector3f& vec2)
|
||||
{
|
||||
f32 x = vec1.x - vec2.x;
|
||||
f32 z = vec1.z - vec2.z;
|
||||
f32 dist = x * x + z * z;
|
||||
Vector2f vec;
|
||||
vec.x = vec1.x - vec2.x;
|
||||
vec.y = vec1.z - vec2.z;
|
||||
f32 dist = vec.x * vec.x + vec.y * vec.y;
|
||||
_sqrtf(dist, &dist);
|
||||
return dist;
|
||||
}
|
||||
|
@ -50,6 +50,19 @@ struct DispMemberBase {
|
||||
|
||||
// size 0x24
|
||||
struct DispMemberAnaDemo : public DispMemberBase {
|
||||
inline DispMemberAnaDemo()
|
||||
: _20(0)
|
||||
, m_caveOtakaraNum(24)
|
||||
, m_caveOtakaraMax(69)
|
||||
, _10(1)
|
||||
, DispMemberBase()
|
||||
{
|
||||
_1F = 1;
|
||||
_14 = 1;
|
||||
m_caveID = 't_01';
|
||||
_1C = 0;
|
||||
_1D = 0;
|
||||
}
|
||||
|
||||
virtual u32 getSize() { return sizeof(DispMemberAnaDemo); } // _08 (weak)
|
||||
virtual u32 getOwnerID() { return OWNER_OGA; } // _0C (weak)
|
||||
@ -120,6 +133,16 @@ struct DispMemberCave : public DispMemberBase {
|
||||
|
||||
// size 0x28
|
||||
struct DispMemberCaveMore : public DispMemberAnaDemo {
|
||||
inline DispMemberCaveMore()
|
||||
{
|
||||
_24 = 0;
|
||||
_25 = 0;
|
||||
_20 = 0;
|
||||
m_caveOtakaraNum = 4;
|
||||
m_caveOtakaraMax = 4;
|
||||
_10 = 10;
|
||||
m_caveID = '2p_c';
|
||||
}
|
||||
|
||||
virtual u32 getSize() { return sizeof(DispMemberCaveMore); } // _08 (weak)
|
||||
virtual u32 getOwnerID() { return OWNER_OGA; } // _0C (weak)
|
||||
@ -287,6 +310,16 @@ struct DispMemberGround : public DispMemberBase {
|
||||
|
||||
// size 0x28
|
||||
struct DispMemberKanketuMenu : public DispMemberAnaDemo {
|
||||
inline DispMemberKanketuMenu()
|
||||
{
|
||||
_24 = 0;
|
||||
_25 = 0;
|
||||
_26 = 0;
|
||||
_20 = 0;
|
||||
m_caveOtakaraNum = 4;
|
||||
m_caveOtakaraMax = 4;
|
||||
_10 = 10;
|
||||
}
|
||||
|
||||
virtual u32 getSize() { return sizeof(DispMemberKanketuMenu); } // _08 (weak)
|
||||
virtual u32 getOwnerID() { return OWNER_OGA; } // _0C (weak)
|
||||
|
@ -34,4 +34,11 @@ inline f32 qdist3(f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2)
|
||||
return dist;
|
||||
}
|
||||
|
||||
inline float log(float& a, double b)
|
||||
{
|
||||
float divisor = log10(b);
|
||||
float dividend = log10(a);
|
||||
return dividend / divisor;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
77
include/utilityU.h
Normal file
77
include/utilityU.h
Normal file
@ -0,0 +1,77 @@
|
||||
#ifndef _UTILITYU_
|
||||
#define _UTILITYU_
|
||||
|
||||
#include "types.h"
|
||||
#include "PSM/DirectorMgr.h"
|
||||
#include "PSM/Scene.h"
|
||||
#include "PSM/WorldMapRocket.h"
|
||||
#include "PSM/Cluster.h"
|
||||
#include "PSM/Creature.h"
|
||||
#include "JSystem/JAI/JAIStream.h"
|
||||
#include "JSystem/JAI/JAISound.h"
|
||||
#include "JSystem/JAI/JAISe.h"
|
||||
#include "Game/EnemyBase.h"
|
||||
#include "SoundID.h"
|
||||
|
||||
// namespace PSM {
|
||||
// struct DirectorBase;
|
||||
// f32 sBoss_DistMax = 4000.0f;
|
||||
// f32 sBoss_ViewDist = 1300.0f;
|
||||
// f32 sBoss_ViewDistVol = 0.3f;
|
||||
// f32 sCamFov = 0.25f;
|
||||
// }
|
||||
|
||||
void PSChangeBgm_ChallengeGame();
|
||||
void PSCancelToPauseOffMainBgm();
|
||||
PSM::ActorDirector_Battle* PSMGetBattleD();
|
||||
PSSystem::DirectorBase* PSMGetBattleDirector(u8);
|
||||
PSM::ActorDirector_TrackOn* PSMGetBeedamaForLugieD();
|
||||
PSM::ActorDirector_TrackOn* PSMGetBeedamaForOrimerD();
|
||||
PSM::DamageDirector* PSMGetDamageD();
|
||||
PSM::ActorDirector_Scaled* PSMGetEventD();
|
||||
PSM::SceneBase* PSMGetGameSceneA();
|
||||
PSM::ActorDirector_Scaled* PSMGetGroundD();
|
||||
PSM::ActorDirector_TrackOn* PSMGetIchouForLugieD();
|
||||
PSM::ActorDirector_TrackOn* PSMGetIchouForOrimerD();
|
||||
PSM::ActorDirector_Kehai* PSMGetKehaiD();
|
||||
PSM::ActorDirector_TempoChange* PSMGetLifeD();
|
||||
f64 PSMGetNoukouDist(); // { return 300.0; };
|
||||
PSM::ActorDirector_TrackOn* PSMGetOtakaraEventD();
|
||||
PSM::TrackOnDirector_Voting* PSMGetPikiBattleD();
|
||||
PSM::PikminNumberDirector* PSMGetPikminNumD();
|
||||
PSM::WorldMapRocket* PSMGetWorldMapRocket();
|
||||
void PSMuteOffSE_on2D();
|
||||
void PSMuteSE_on2D();
|
||||
void PSPause_StartMenuOff();
|
||||
void PSPause_StartMenuOn();
|
||||
void PSPauseOff();
|
||||
void PSPauseOn(u8, u8);
|
||||
void PSPlayCaveHoleSound(::PSM::Creature*);
|
||||
void PSSetCurCameraNo(u8);
|
||||
void PSSetLastBeedamaDirection(bool, bool);
|
||||
void PSStart2DStream(u32);
|
||||
void PSStartChallengeTimeUpStream();
|
||||
JAIStream* PSStartEnemyDownSmokeSE(Game::EnemyBase*, f32);
|
||||
JAIStream* PSStartEnemyDownWatSE(f64, Game::EnemyBase*);
|
||||
JAISound* PSStartEnemyFatalHitSE(Game::EnemyBase*, f32);
|
||||
int PSStartEnemyGhostSE(Game::EnemyBase*, f32);
|
||||
JAISound* PSStartSoundVec(SoundID, Vec*);
|
||||
JAISe* PSStartTreasureLaderSE(f64);
|
||||
JAISe* PSStartTreasureLaderNoiseSE(f64, u8, u32, u32, u8);
|
||||
u8 PSStop2DStream();
|
||||
|
||||
// f32 sLaderNoiseFuefukiSensMax = 0.3f;
|
||||
// f32 sLaderNoiseFuefukiSensMin;
|
||||
// s16 sLaderNoiseFuefukiTimerCenter = 0x3C;
|
||||
// s16 sLaderNoiseFuefukiTimerRandam = 0x08;
|
||||
// f32 sLaderNoiseFuefukiVolumeMax = 0.5f;
|
||||
// f32 sLaderNoiseFuefukiVolumeMin = 0.25f;
|
||||
// s16 sLaderNoiseTimer;
|
||||
// f32 sLaderNoiseVolumeExp = 7.18f;
|
||||
// s16 sLaderNoiseWait;
|
||||
// f32 sTreasureLader_DistanceExp = 5.0f;
|
||||
// f32 sTreasureLader_MinimumVolume = 0.3f;
|
||||
// f32 sTreasureLader_Pitch = 1.04f;
|
||||
// f32 sTreasureLader_PitchDistance;
|
||||
|
||||
#endif
|
@ -527,7 +527,7 @@ KANDO:=\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/gameSystem.o\
|
||||
$(BUILD_DIR)/src/plugProjectKandoU/aiConstants.o\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/gameMapParts.o\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/vsGameSection.o\
|
||||
$(BUILD_DIR)/src/plugProjectKandoU/vsGameSection.o\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/gamePlatMgr.o\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/itemGate.o\
|
||||
$(BUILD_DIR)/asm/plugProjectKandoU/itemMgr.o\
|
||||
|
@ -7,138 +7,6 @@
|
||||
|
||||
const char gameStages[] = "gameStages";
|
||||
|
||||
/*
|
||||
Generated from dpostproc
|
||||
|
||||
.section .rodata # 0x804732E0 - 0x8049E220
|
||||
.global lbl_8047F8A8
|
||||
lbl_8047F8A8:
|
||||
.4byte 0x67616D65
|
||||
.4byte 0x53746167
|
||||
.4byte 0x65730000
|
||||
.global lbl_8047F8B4
|
||||
lbl_8047F8B4:
|
||||
.4byte 0x6B656967
|
||||
.4byte 0x6F5F6465
|
||||
.4byte 0x5F736F78
|
||||
.4byte 0x2E747874
|
||||
.4byte 0x00000000
|
||||
.4byte 0x6162655F
|
||||
.4byte 0x666F6C64
|
||||
.4byte 0x65720000
|
||||
.4byte 0x636F6C6C
|
||||
.4byte 0x6973696F
|
||||
.4byte 0x6E000000
|
||||
.4byte 0x77617465
|
||||
.4byte 0x72626F78
|
||||
.4byte 0x00000000
|
||||
.4byte 0x73746172
|
||||
.4byte 0x74616E67
|
||||
.4byte 0x6C650000
|
||||
.global lbl_8047F8F8
|
||||
lbl_8047F8F8:
|
||||
.4byte 0x67616D65
|
||||
.4byte 0x53746167
|
||||
.4byte 0x65732E63
|
||||
.4byte 0x70700000
|
||||
.global lbl_8047F908
|
||||
lbl_8047F908:
|
||||
.asciz "P2Assert"
|
||||
.skip 3
|
||||
.global lbl_8047F914
|
||||
lbl_8047F914:
|
||||
.4byte 0x75736572
|
||||
.4byte 0x2F416265
|
||||
.4byte 0x2F737461
|
||||
.4byte 0x6765732E
|
||||
.4byte 0x74787400
|
||||
.4byte 0x53656C65
|
||||
.4byte 0x63742043
|
||||
.4byte 0x6F757273
|
||||
.4byte 0x65000000
|
||||
.4byte 0x2573203A
|
||||
.4byte 0x20256420
|
||||
.4byte 0x63617665
|
||||
.4byte 0x730A0000
|
||||
.4byte 0x5B25735D
|
||||
.4byte 0x2025642F
|
||||
.4byte 0x25640000
|
||||
.4byte 0x00000000
|
||||
|
||||
.section .data, "wa" # 0x8049E220 - 0x804EFC20
|
||||
.global __vt__Q24Game10CourseInfo
|
||||
__vt__Q24Game10CourseInfo:
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
.4byte __dt__Q24Game10CourseInfoFv
|
||||
.4byte getChildCount__5CNodeFv
|
||||
.global __vt__Q24Game8LimitGen
|
||||
__vt__Q24Game8LimitGen:
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
.4byte __dt__Q24Game8LimitGenFv
|
||||
.4byte getChildCount__5CNodeFv
|
||||
.global __vt__Q24Game11CaveOtakara
|
||||
__vt__Q24Game11CaveOtakara:
|
||||
.4byte 0
|
||||
.4byte 0
|
||||
.4byte __dt__Q24Game11CaveOtakaraFv
|
||||
.4byte getChildCount__5CNodeFv
|
||||
|
||||
.section .sbss # 0x80514D80 - 0x80516360
|
||||
.global stageList__4Game
|
||||
stageList__4Game:
|
||||
.skip 0x8
|
||||
|
||||
.section .sdata2, "a" # 0x80516360 - 0x80520E40
|
||||
.global lbl_805192C8
|
||||
lbl_805192C8:
|
||||
.4byte 0x6E6F6E61
|
||||
.4byte 0x6D650000
|
||||
.global lbl_805192D0
|
||||
lbl_805192D0:
|
||||
.4byte 0x00000000
|
||||
.global lbl_805192D4
|
||||
lbl_805192D4:
|
||||
.4byte 0x6E616D65
|
||||
.4byte 0x00000000
|
||||
.global lbl_805192DC
|
||||
lbl_805192DC:
|
||||
.4byte 0x666F6C64
|
||||
.4byte 0x65720000
|
||||
.global lbl_805192E4
|
||||
lbl_805192E4:
|
||||
.4byte 0x6D6F6465
|
||||
.4byte 0x6C000000
|
||||
.global lbl_805192EC
|
||||
lbl_805192EC:
|
||||
.4byte 0x6D617063
|
||||
.4byte 0x6F646500
|
||||
.global lbl_805192F4
|
||||
lbl_805192F4:
|
||||
.4byte 0x6661726D
|
||||
.4byte 0x00000000
|
||||
.global lbl_805192FC
|
||||
lbl_805192FC:
|
||||
.4byte 0x726F7574
|
||||
.4byte 0x65000000
|
||||
.global lbl_80519304
|
||||
lbl_80519304:
|
||||
.4byte 0x73746172
|
||||
.4byte 0x74000000
|
||||
.global lbl_8051930C
|
||||
lbl_8051930C:
|
||||
.4byte 0x40490FDB
|
||||
.global lbl_80519310
|
||||
lbl_80519310:
|
||||
.4byte 0x3BB60B61
|
||||
.global lbl_80519314
|
||||
lbl_80519314:
|
||||
.4byte 0x25732F25
|
||||
.4byte 0x73000000
|
||||
.4byte 0x00000000
|
||||
*/
|
||||
|
||||
namespace Game {
|
||||
Stages* stageList;
|
||||
|
||||
@ -590,9 +458,9 @@ void Stages::createMapMgr(Game::CourseInfo* info, Game::RouteMgr* routeMgr)
|
||||
sprintf(routePathTxt, "%s/%s", info->m_abeFolder, info->m_routePath);
|
||||
}
|
||||
|
||||
mapMgr = new ShapeMapMgr;
|
||||
mapMgr->m_routeMgr = routeMgr;
|
||||
mapMgr->m_courseInfo = info;
|
||||
mapMgr = new ShapeMapMgr;
|
||||
static_cast<ShapeMapMgr*>(mapMgr)->m_routeMgr = routeMgr;
|
||||
static_cast<ShapeMapMgr*>(mapMgr)->m_courseInfo = info;
|
||||
|
||||
ShapeMapMgr::LoadArg loadarg(info->m_modelPath ? modelPathTxt : nullptr, info->m_collisionPath ? collPathTxt : nullptr,
|
||||
info->m_routePath ? routePathTxt : nullptr);
|
||||
@ -603,7 +471,7 @@ void Stages::createMapMgr(Game::CourseInfo* info, Game::RouteMgr* routeMgr)
|
||||
loadarg.m_waterboxPath = info->m_waterboxPath ? wboxPathTxt : nullptr;
|
||||
loadarg.m_mapcodePath = info->m_mapcodePath ? codePathTxt : nullptr;
|
||||
|
||||
mapMgr->load(loadarg);
|
||||
static_cast<ShapeMapMgr*>(mapMgr)->load(loadarg);
|
||||
}
|
||||
|
||||
} // namespace Game
|
||||
|
@ -82,7 +82,7 @@ void LoadState::exec(VsGameSection* section)
|
||||
floor._08 = section->getCurrFloor() + 1;
|
||||
ID32 id;
|
||||
if (gameSystem->isChallengeMode()) {
|
||||
sprintf(id.getStr(), "c_%02d", section->m_stageData->m_stageIndex);
|
||||
sprintf(id.getStr(), "c_%02d", section->m_challengeStageData->m_stageIndex);
|
||||
} else {
|
||||
sprintf(id.getStr(), "vs%02d", section->m_VsStageData->m_index2D);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -136,7 +136,7 @@ void Obj::birthChildren(EnemyBirthArg& birthArg)
|
||||
f32 modifier = 2.5f * i + 17.5f;
|
||||
Vector3f bulbminPos = Vector3f(modifier * vec.x, 0.0f, modifier * vec.z);
|
||||
Piki* bulbmin = pikiMgr->birth();
|
||||
PikiInitArg initArg;
|
||||
PikiInitArg initArg(-1);
|
||||
initArg.m_leader = this;
|
||||
|
||||
if (bulbmin) {
|
||||
|
@ -251,3 +251,5 @@ You have 1047 out of 10000 Pokos and 49 out of 201 treasures.",2022-11-21 23:54:
|
||||
You have 1054 out of 10000 Pokos and 49 out of 201 treasures.",2022-11-25 21:35:18.777680
|
||||
1128,525148,0.11287795936334998,50,179985,0.2524843727204372,"
|
||||
You have 1128 out of 10000 Pokos and 50 out of 201 treasures.",2022-11-28 20:41:36.228368
|
||||
1162,540984,0.11628182906194544,51,181194,0.25418036742343475,"
|
||||
You have 1162 out of 10000 Pokos and 51 out of 201 treasures.",2022-11-30 00:10:07.226352
|
||||
|
|
Loading…
Reference in New Issue
Block a user