papermario/include/common_structs.h

2217 lines
71 KiB
C
Raw Normal View History

2020-07-18 02:47:33 +02:00
#ifndef _COMMON_STRUCTS_H_
#define _COMMON_STRUCTS_H_
2020-10-13 03:28:01 +02:00
#include "macros.h"
2020-07-18 02:47:33 +02:00
#include "ultra64.h"
#include "types.h"
2020-08-16 08:55:51 +02:00
#include "si.h"
#include "enums.h"
2020-07-18 02:47:33 +02:00
2020-10-08 21:03:58 +02:00
struct ScriptInstance;
typedef ApiStatus(*ApiFunc)(struct ScriptInstance*, s32);
typedef Bytecode Script[0];
2021-01-13 11:48:54 +01:00
typedef struct {
u8 r, g, b, a;
} Color_RGBA8;
typedef struct Vec2b {
2020-11-29 01:08:38 +01:00
/* 0x00 */ s8 x;
/* 0x01 */ s8 y;
} Vec2b; // size = 0x02
typedef struct Vec2bu {
/* 0x00 */ u8 x;
/* 0x01 */ u8 y;
2020-11-29 01:08:38 +01:00
} Vec2bu; // size = 0x02
typedef struct Vec2f {
/* 0x00 */ f32 x;
/* 0x04 */ f32 y;
} Vec2f; // size = 0x08
2020-12-29 12:35:59 +01:00
typedef struct Vec3b {
/* 0x00 */ s8 x;
/* 0x01 */ s8 y;
/* 0x02 */ s8 z;
} Vec3b; // size = 0x03
2020-08-16 05:19:00 +02:00
typedef struct Vec3f {
2020-08-15 06:27:01 +02:00
/* 0x00 */ f32 x;
/* 0x04 */ f32 y;
/* 0x08 */ f32 z;
2020-08-16 05:19:00 +02:00
} Vec3f; // size = 0x0C
2020-08-15 06:27:01 +02:00
2021-02-04 12:28:01 +01:00
typedef struct Vec3i {
/* 0x00 */ s32 x;
/* 0x04 */ s32 y;
/* 0x08 */ s32 z;
} Vec3i; // size = 0x0C
2020-11-27 20:38:52 +01:00
typedef struct Vec2s {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
} Vec2s; // size = 0x04
typedef struct Vec2su {
/* 0x00 */ u16 x;
/* 0x02 */ u16 y;
} Vec2su; // size = 0x04
2020-10-02 08:07:54 +02:00
typedef struct Vec3s {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s16 z;
} Vec3s; // size = 0x06
typedef struct Vec4f {
/* 0x00 */ f32 x;
/* 0x04 */ f32 y;
/* 0x08 */ f32 z;
/* 0x0C */ f32 yaw;
} Vec4f; // size = 0x10
2021-02-09 12:07:05 +01:00
typedef f32 Matrix4f[4][4]; // size = 0x40
2020-08-16 05:19:00 +02:00
typedef struct Matrix4s {
/* 0x00 */ s16 whole[4][4];
/* 0x20 */ s16 frac[4][4];
2020-08-16 05:19:00 +02:00
} Matrix4s; // size = 0x40
2020-08-16 05:19:00 +02:00
typedef struct CamPosSettings {
/* 0x00 */ f32 boomYaw;
/* 0x04 */ f32 boomLength;
/* 0x08 */ f32 boomPitch;
/* 0x0C */ f32 viewPitch;
2020-10-29 21:16:39 +01:00
/* 0x10 */ Vec3f position;
2020-08-16 05:19:00 +02:00
} CamPosSettings; // size = 0x1C
2020-08-16 05:19:00 +02:00
typedef struct PartnerData {
/* 0x00 */ u8 enabled;
/* 0x01 */ s8 level;
2020-08-14 23:53:45 +02:00
/* 0x02 */ s16 unk_02[3];
2020-08-16 05:19:00 +02:00
} PartnerData; // size = 0x08
2020-08-16 05:19:00 +02:00
typedef struct HeapNode {
/* 0x00 */ struct HeapNode* next;
/* 0x04 */ s32 length;
/* 0x08 */ u16 allocated;
/* 0x0A */ s16 entryID;
/* 0x0C */ s32 capacity;
2020-08-16 05:19:00 +02:00
} HeapNode; // size = 0x10
/// Ring buffer of an NPC's position over the past 20 frames.
typedef struct BlurBuffer {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 index; ///< Current blur ring buffer index
/* 0x02 */ char unk_02[2]; // padding?
/* 0x04 */ f32 x[20];
/* 0x54 */ f32 y[20];
/* 0xA4 */ f32 z[20];
} BlurBuffer; // size = 0xF4
2020-08-15 06:25:36 +02:00
typedef s16 Palette16[16]; // size = 0x20
2020-08-16 05:19:00 +02:00
typedef struct Npc {
2020-08-15 06:25:36 +02:00
/* 0x000 */ s32 flags;
/* 0x004 */ void (*onUpdate)(struct Npc*); ///< Run before anything else for this NPC in update_npcs()
/* 0x008 */ void (*onRender)(struct Npc*); ///< Run after the display list for this NPC is built
2020-08-15 06:25:36 +02:00
/* 0x00C */ f32 yaw;
/* 0x010 */ f32 planarFlyDist; /* also used for speech, temp0? */
/* 0x014 */ f32 jumpScale; /* also used for speech, temp1? */
/* 0x018 */ f32 moveSpeed;
/* 0x01C */ f32 jumpVelocity;
/* 0x020 */ struct BlurBuffer* blurBuf; ///< Null unless flag 0x100000 is set.
/* 0x024 */ s32 spriteInstanceID;
/* 0x028 */ union {
/* */ u16 h;
/* */ u32 w;
/* */ } currentAnim;
/* 0x02C */ s32 unk_2C;
/* 0x030 */ f32 animationSpeed;
/* 0x034 */ f32 renderYaw;
2020-10-29 21:16:39 +01:00
/* 0x038 */ Vec3f pos;
/* 0x044 */ Vec3f rotation;
/* 0x050 */ f32 rotationVerticalPivotOffset;
2020-10-29 21:16:39 +01:00
/* 0x054 */ Vec3f scale;
/* 0x060 */ Vec3f moveToPos;
/* 0x06C */ Vec3f colliderPos; /* used during collision with player */
2020-08-15 06:25:36 +02:00
/* 0x078 */ s32 shadowIndex;
/* 0x07C */ f32 shadowScale;
2020-10-14 18:45:54 +02:00
/* 0x080 */ s32 unk_80;
/* 0x084 */ s16 unk_84;
/* 0x086 */ s16 unk_86;
2020-08-15 06:25:36 +02:00
/* 0x088 */ s16 isFacingAway;
/* 0x08A */ s16 yawCamOffset;
/* 0x08C */ s16 turnAroundYawAdjustment;
/* 0x08E */ s16 duration; // TODO: name less vaguely
2020-10-24 23:51:27 +02:00
/* 0x090 */ Vec3s homePos;
/* 0x096 */ s16 unk_96;
/* 0x098 */ s16 unk_98;
/* 0x09A */ s16 unk_9A;
/* 0x09C */ s16 unk_9C;
/* 0x09E */ s16 unk_9E;
/* 0x0A0 */ s16 unk_A0;
2020-10-28 07:42:14 +01:00
/* 0x0A2 */ u16 unk_A2;
2020-12-27 15:23:36 +01:00
/* 0x0A4 */ s8 npcID;
2020-08-15 06:25:36 +02:00
/* 0x0A5 */ char unk_A5;
/* 0x0A6 */ s16 collisionRadius;
/* 0x0A8 */ s16 collisionHeight;
/* 0x0AA */ s8 renderMode;
2021-04-03 19:21:49 +02:00
/* 0x0AB */ s8 unk_AB;
/* 0x0AC */ u8 alpha;
/* 0x0AD */ u8 alpha2; ///< Multiplied with Npc::alpha
/* 0x0AE */ char unk_AE[2];
/* 0x0B0 */ s32** extraAnimList;
/* 0x0B4 */ s8 unk_B4; // some kind of rendering type, 0..4 inclusive
/* 0x0B5 */ s8 unk_B5;
/* 0x0B6 */ s8 unk_B6;
/* 0x0B7 */ s8 unk_B7;
/* 0x0B8 */ char unk_B8[8];
/* 0x0C0 */ s8 unk_C0;
/* 0x0C1 */ s8 paletteCount;
/* 0x0C2 */ char unk_C2[2];
/* 0x0C4 */ s32* spritePaletteList;
/* 0x0C8 */ Palette16 localPaletteData[16];
/* 0x2C8 */ Palette16* localPalettes[16];
/* 0x308 */ char unk_308[16];
/* 0x318 */ f32 screenSpaceOffset2D[2];
/* 0x320 */ f32 verticalStretch;
/* 0x324 */ struct EffectInstance* decorations[2];
/* 0x32C */ s8 decorationType[2];
/* 0x32E */ s8 changedDecoration[2];
/* 0x330 */ s8 decorationInitialised[2];
/* 0x332 */ s16 decorationUnk[2];
/* 0x336 */ char unk_336[10];
2020-08-16 05:19:00 +02:00
} Npc; // size = 0x340
2020-08-15 06:25:36 +02:00
typedef Npc* NpcList[MAX_NPCS];
2020-08-16 05:19:00 +02:00
typedef struct PlayerData {
2020-10-16 05:07:50 +02:00
/* 0x000 */ s8 bootsLevel;
2020-08-14 23:53:45 +02:00
/* 0x001 */ s8 hammerLevel;
/* 0x002 */ s8 curHP;
/* 0x003 */ s8 curMaxHP;
/* 0x004 */ u8 hardMaxHP;
2020-08-14 23:53:45 +02:00
/* 0x005 */ s8 curFP;
/* 0x006 */ s8 curMaxFP;
/* 0x007 */ u8 hardMaxFP;
/* 0x008 */ u8 maxBP;
/* 0x009 */ u8 level;
2020-10-16 05:07:50 +02:00
/* 0x00A */ s8 hasActionCommands;
2020-08-08 10:14:42 +02:00
/* 0x00B */ char unk_0B;
2020-08-06 07:00:11 +02:00
/* 0x00C */ s16 coins;
2020-08-14 23:53:45 +02:00
/* 0x00E */ s8 fortressKeyCount;
2020-08-08 10:14:42 +02:00
/* 0x00F */ u8 starPieces;
2020-08-14 23:53:45 +02:00
/* 0x010 */ s8 starPoints;
2020-08-08 10:14:42 +02:00
/* 0x011 */ char unk_11;
2020-09-18 22:07:15 +02:00
/* 0x012 */ s8 currentPartner;
2020-08-08 10:14:42 +02:00
/* 0x013 */ char unk_13;
2020-08-16 05:19:00 +02:00
/* 0x014 */ struct PartnerData partners[12];
2020-08-08 10:14:42 +02:00
/* 0x074 */ s16 keyItems[32];
/* 0x0B4 */ s16 badges[128];
/* 0x1B4 */ s16 invItems[10];
/* 0x1C8 */ s16 storedItems[32];
/* 0x208 */ s16 equippedBadges[64];
/* 0x288 */ char unk_288;
/* 0x289 */ u8 merleeSpellType;
2020-09-25 23:18:09 +02:00
/* 0x28A */ s8 merleeCastsLeft;
2020-08-08 10:14:42 +02:00
/* 0x28B */ char unk_28B;
/* 0x28C */ s16 merleeTurnCount;
2020-08-14 23:53:45 +02:00
/* 0x28E */ s8 maxStarPower;
2020-08-08 10:14:42 +02:00
/* 0x28F */ char unk_28F;
/* 0x290 */ s16 specialBarsFilled;
/* 0x292 */ s8 unk_292;
/* 0x293 */ char unk_293[0x1];
2020-08-08 10:14:42 +02:00
/* 0x294 */ s16 otherHitsTaken;
2020-08-14 23:53:45 +02:00
/* 0x296 */ s16 unk_296;
2020-08-08 10:14:42 +02:00
/* 0x298 */ s16 hitsTaken;
/* 0x29A */ s16 hitsBlocked;
/* 0x29C */ s16 playerFirstStrikes;
/* 0x29E */ s16 enemyFirstStrikes;
/* 0x2A0 */ s16 powerBounces;
/* 0x2A2 */ s16 battlesCount;
2020-08-14 23:53:45 +02:00
/* 0x2A4 */ s16 unk_2A4[4];
/* 0x2AC */ s32 unk_2AC;
/* 0x2B0 */ s32 unk_2B0;
/* 0x2B4 */ u32 totalCoinsEarned;
2020-08-08 10:14:42 +02:00
/* 0x2B8 */ s16 idleFrameCounter; /* frames with no inputs, overflows ever ~36 minutes of idling */
/* 0x2BA */ char unk_2BA[2];
/* 0x2BC */ u32 frameCounter; /* increases by 2 per frame */
2020-08-08 10:14:42 +02:00
/* 0x2C0 */ s16 quizzesAnswered;
/* 0x2C2 */ s16 quizzesCorrect;
2020-08-14 23:53:45 +02:00
/* 0x2C4 */ s32 unk_2C4[12];
/* 0x2F4 */ s32 unk_2F4[12];
2020-10-21 07:33:24 +02:00
/* 0x324 */ s32 tradeEventStartTime;
2020-08-14 23:53:45 +02:00
/* 0x328 */ s32 unk_328;
2020-08-08 10:14:42 +02:00
/* 0x32C */ s16 starPiecesCollected;
/* 0x32E */ s16 jumpGamePlays;
/* 0x330 */ s32 jumpGameTotal; /* all-time winnings, max = 99999 */
2020-08-08 10:14:42 +02:00
/* 0x334 */ s16 jumpGameRecord;
/* 0x336 */ s16 smashGamePlays;
/* 0x338 */ s32 smashGameTotal; /* all-time winnings, max = 99999 */
2020-08-08 10:14:42 +02:00
/* 0x33C */ s16 smashGameRecord;
/* 0x33E */ char unk_33E[2];
2020-08-16 05:19:00 +02:00
} PlayerData; // size = 0x340
2020-08-06 07:00:11 +02:00
2020-10-08 21:03:58 +02:00
typedef union {
struct {
/* 0x0 */ s16 genericFlagIndex;
/* 0x2 */ char unk_2;
} bytes;
s32 flags;
} TriggerFlags;
2020-08-16 05:19:00 +02:00
typedef struct Trigger {
2020-10-08 21:03:58 +02:00
/* 0x00 */ TriggerFlags flags;
2021-01-16 03:47:44 +01:00
/* 0x04 */ s32 params1;
2020-11-08 21:42:47 +01:00
/* 0x08 */ s32 params2;
/* 0x0C */ UNK_FUN_PTR(functionHandler);
/* 0x10 */ Script* scriptSource;
2020-08-16 07:13:03 +02:00
/* 0x14 */ struct ScriptInstance* runningScript;
/* 0x18 */ s32 priority;
2020-11-08 21:42:47 +01:00
/* 0x1C */ s32 scriptVars[3];
2020-11-23 20:19:13 +01:00
/* 0x28 */ char unk_28[4];
/* 0x2C */ s32 unk_2C;
2020-10-09 20:55:23 +02:00
/* 0x30 */ u8 unk_30;
/* 0x31 */ char unk_31[3];
2020-10-20 08:33:40 +02:00
/* 0x34 */ ScriptID runningScriptID;
2020-08-16 05:19:00 +02:00
} Trigger; // size = 0x38
typedef Trigger* TriggerList[MAX_TRIGGERS];
2020-11-20 15:44:08 +01:00
typedef union X32 {
s32 s;
f32 f;
} X32;
2020-08-16 07:13:03 +02:00
typedef struct ScriptInstance {
/* 0x000 */ u8 state;
/* 0x001 */ u8 currentArgc;
/* 0x002 */ u8 currentOpcode;
/* 0x003 */ u8 priority;
/* 0x004 */ u8 groupFlags;
2020-08-22 09:43:30 +02:00
/* 0x005 */ s8 blocked; /* 1 = blocking */
2020-08-10 07:03:56 +02:00
/* 0x006 */ s8 loopDepth; /* how many nested loops we are in, >= 8 hangs forever */
/* 0x007 */ s8 switchDepth; /* how many nested switches we are in, max = 8 */
2020-08-16 05:23:40 +02:00
/* 0x008 */ Bytecode* ptrNextLine;
/* 0x00C */ Bytecode* ptrReadPos;
2020-10-13 03:28:01 +02:00
/* 0x010 */ s8 labelIndices[16];
/* 0x020 */ UNK_PTR labelPositions[16];
2021-01-11 04:52:08 +01:00
/* 0x060 */ UNK_PTR userData; /* unknown pointer; allocated on the heap, free'd in kill_script() */
2020-08-16 07:13:03 +02:00
/* 0x064 */ struct ScriptInstance* blockingParent; /* parent? */
/* 0x068 */ struct ScriptInstance* childScript;
/* 0x06C */ struct ScriptInstance* parentScript; /* brother? */
/* 0x070 */ s32 functionTemp[4];
2020-10-02 08:07:54 +02:00
/* 0x080 */ ApiFunc callFunction;
2020-08-15 02:49:33 +02:00
/* 0x084 */ s32 varTable[16];
/* 0x0C4 */ s32 varFlags[3];
/* 0x0D0 */ s32 loopStartTable[8];
/* 0x0F0 */ s32 loopCounterTable[8];
2020-09-18 03:28:34 +02:00
/* 0x110 */ s8 switchBlockState[8];
/* 0x118 */ s32 switchBlockValue[8];
2020-08-14 17:18:05 +02:00
/* 0x138 */ s32* buffer;
2020-08-19 02:23:52 +02:00
/* 0x13C */ s32* array;
/* 0x140 */ s32* flagArray;
2020-10-20 08:33:40 +02:00
/* 0x144 */ ScriptID id;
2020-10-21 01:02:05 +02:00
/* 0x148 */ union {
2020-10-22 03:43:08 +02:00
s32 enemyID;
2020-11-27 20:38:52 +01:00
ActorID actorID;
2020-10-22 03:43:08 +02:00
struct Enemy* enemy; ///< For overworld scripts owned by an Npc
struct Actor* actor; ///< For battle scripts
} owner1; ///< Initially -1
2020-10-21 01:02:05 +02:00
/* 0x14C */ union {
2021-03-29 09:34:39 +02:00
NpcID npcID;
2020-10-22 03:43:08 +02:00
s32 triggerID;
struct Npc* npc; ///< For overworld scripts owned by an Npc
struct Trigger* trigger;
} owner2; ///< Initially -1
/* 0x150 */ f32 timeScale;
/* 0x154 */ f32 frameCounter;
/* 0x158 */ s32 unk_158;
2020-08-16 05:23:40 +02:00
/* 0x15C */ Bytecode* ptrFirstLine;
/* 0x160 */ Bytecode* ptrSavedPosition;
/* 0x164 */ Bytecode* ptrCurrentLine;
2020-08-16 07:13:03 +02:00
} ScriptInstance; // size = 0x168
2020-10-13 03:28:01 +02:00
typedef ScriptInstance* ScriptList[MAX_SCRIPTS];
struct Entity;
typedef s32 (*EntityCallback)(struct Entity*);
2020-08-16 05:19:00 +02:00
typedef struct Entity {
/* 0x00 */ s32 flags;
/* 0x04 */ u8 listIndex;
2020-11-02 02:14:01 +01:00
/* 0x05 */ char unk_05;
/* 0x06 */ u8 collisionFlags;
/* 0x07 */ s8 unk_07;
/* 0x08 */ char unk_08;
/* 0x09 */ u8 hasEntityScript;
/* 0x0A */ u8 type;
/* 0x0B */ u8 alpha;
/* 0x0C */ Vec3s aabb;
/* 0x12 */ s16 vertexSegment;
2020-11-02 02:14:01 +01:00
/* 0x14 */ s16 virtualModelIndex;
/* 0x16 */ s16 shadowIndex;
/* 0x18 */ s32* scriptReadPos;
/* 0x1C */ EntityCallback updateScriptCallback;
/* 0x20 */ EntityCallback updateMatrixOverride;
/* 0x24 */ ScriptInstance* boundScript;
/* 0x28 */ Bytecode* boundScriptBytecode;
/* 0x2C */ s32* savedReadPos;
/* 0x30 */ char unk_30[0x8];
/* 0x38 */ struct StaticEntityData* staticData;
/* 0x3C */ UNK_PTR renderSetupFunc; // pointer to draw func(?)
/* 0x40 */ void* dataBuf;
/* 0x44 */ Mtx* vertexData;
2020-10-02 08:07:54 +02:00
/* 0x48 */ Vec3f position;
/* 0x54 */ Vec3f scale;
/* 0x60 */ Vec3f rotation;
/* 0x6C */ f32 shadowPosY;
2021-02-09 12:07:05 +01:00
/* 0x70 */ Matrix4f* inverseTransformMatrix; /* world-to-local */
/* 0x74 */ char unk_74[60];
2020-11-02 02:14:01 +01:00
/* 0xB0 */ float effectiveSize;
/* 0xB4 */ char unk_B4[4];
/* 0xB8 */ Matrix4s transformMatrix;
2020-08-16 05:19:00 +02:00
} Entity; // size = 0xF8
typedef Entity* EntityList[MAX_ENTITIES];
typedef struct DynamicEntity {
/* 0x00 */ s32 flags;
/* 0x04 */ void (*update)(void);
/* 0x08 */ void (*draw)(void);
} DynamicEntity;
typedef DynamicEntity* DynamicEntityList[MAX_DYNAMIC_ENTITIES];
2020-08-16 05:19:00 +02:00
typedef struct StaticEntityData {
/* 0x00 */ s16 flags;
/* 0x02 */ s16 argSize;
2021-01-16 07:34:36 +01:00
/* 0x04 */ UNK_PTR unk_04;
/* 0x08 */ char unk_08[4];
/* 0x0C */ UNK_FUN_PTR(unk_data_func);
/* 0x10 */ UNK_PTR unk_data_ptr1;
/* 0x14 */ EntityCallback unk_data_ptr2;
/* 0x18 */ s32 dmaStart;
/* 0x1C */ s32 dmaEnd;
/* 0x20 */ u8 entityType;
2021-01-16 07:34:36 +01:00
/* 0x21 */ char unk_21[3];
2020-08-16 05:19:00 +02:00
} StaticEntityData; // size = 0x24
f270, world, and more (#246) * 415D90 decomp * code_415D90 rodata migration * data migration, decomp * . * . * . * 4 funcs * non-matching * audio part 1 * audio work * end of snd * update_symbol_addrs * . * :chicken: * . * sfx func names * bgm * more audio * . * a few audio funcs * update section length * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "82ff308caf" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "82ff308caf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "4e9d3cdf85" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4e9d3cdf85" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * misc-decomp power * sound * 4 mo * more changes * . * some f270 * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "1c8ff4ec3f" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "1c8ff4ec3f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "f0633ecdbc" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "f0633ecdbc" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * fix is_logo image size * . * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "4be92a4786" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4be92a4786" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * state_step_pause * almost * fixing symbol_addrs and disasm * update symbol_addrs * . * fix Matrix4f usages * . * . * update_symbol_addrs * fixes * I hate bitfields * load_map_by_IDs * cleanup * state_step_logos * more cleanup * . * splat * PR comments
2021-04-01 20:00:29 +02:00
typedef struct MusicSettings {
2020-10-29 02:35:05 +01:00
/* 0x00 */ u16 flags;
2020-10-29 02:33:45 +01:00
/* 0x02 */ u16 unk_02;
/* 0x04 */ s32 fadeOutTime;
/* 0x08 */ s32 fadeInTime;
2020-10-29 03:17:11 +01:00
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s32 songID;
/* 0x14 */ s32 variation;
f270, world, and more (#246) * 415D90 decomp * code_415D90 rodata migration * data migration, decomp * . * . * . * 4 funcs * non-matching * audio part 1 * audio work * end of snd * update_symbol_addrs * . * :chicken: * . * sfx func names * bgm * more audio * . * a few audio funcs * update section length * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "82ff308caf" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "82ff308caf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "4e9d3cdf85" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4e9d3cdf85" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * misc-decomp power * sound * 4 mo * more changes * . * some f270 * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "1c8ff4ec3f" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "1c8ff4ec3f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "f0633ecdbc" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "f0633ecdbc" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * fix is_logo image size * . * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "4be92a4786" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4be92a4786" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * state_step_pause * almost * fixing symbol_addrs and disasm * update symbol_addrs * . * fix Matrix4f usages * . * . * update_symbol_addrs * fixes * I hate bitfields * load_map_by_IDs * cleanup * state_step_logos * more cleanup * . * splat * PR comments
2021-04-01 20:00:29 +02:00
/* 0x18 */ s32 songName;
2020-10-29 04:43:58 +01:00
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
2020-11-27 07:14:28 +01:00
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
f270, world, and more (#246) * 415D90 decomp * code_415D90 rodata migration * data migration, decomp * . * . * . * 4 funcs * non-matching * audio part 1 * audio work * end of snd * update_symbol_addrs * . * :chicken: * . * sfx func names * bgm * more audio * . * a few audio funcs * update section length * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "82ff308caf" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "82ff308caf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "4e9d3cdf85" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4e9d3cdf85" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * misc-decomp power * sound * 4 mo * more changes * . * some f270 * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "1c8ff4ec3f" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "1c8ff4ec3f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "f0633ecdbc" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "f0633ecdbc" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * fix is_logo image size * . * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "4be92a4786" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4be92a4786" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * state_step_pause * almost * fixing symbol_addrs and disasm * update symbol_addrs * . * fix Matrix4f usages * . * . * update_symbol_addrs * fixes * I hate bitfields * load_map_by_IDs * cleanup * state_step_logos * more cleanup * . * splat * PR comments
2021-04-01 20:00:29 +02:00
} MusicSettings; // size = 0x30
typedef struct HudElement {
/* 0x00 */ s32 flags;
/* 0x04 */ s32* readPos;
/* 0x08 */ s32* startReadPos;
/* 0x0C */ s32* ptrPropertyList;
/* 0x10 */ s32* imageAddr;
/* 0x14 */ s32* paletteAddr;
/* 0x18 */ s32 memOffset;
/* 0x1C */ s32* hudTransform;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unkImgScale[2];
/* 0x30 */ f32 uniformScale;
/* 0x34 */ f32 widthScaleF; /* X.10 fmt (divide by 1024.0 to get float) */
/* 0x38 */ f32 heightScaleF; /* X.10 fmt (divide by 1024.0 to get float) */
/* 0x3C */ s16 renderPosX;
/* 0x3E */ s16 renderPosY;
/* 0x40 */ u8 screenPosOffset[2];
/* 0x42 */ u8 worldPosOffset[3];
/* 0x45 */ s8 drawSizePreset;
/* 0x46 */ s8 tileSizePreset;
/* 0x47 */ u8 updateTimer;
/* 0x48 */ u8 sizeX; /* screen size? */
/* 0x49 */ u8 sizeY; /* screen size? */
/* 0x4A */ u8 opacity;
/* 0x4B */ s8 tint[3];
/* 0x4E */ s8 customImageSize[2];
/* 0x40 */ s8 customDrawSize[2];
} HudElement; // size = 0x54
2020-08-16 05:19:00 +02:00
typedef struct UiStatus {
2020-08-14 23:53:45 +02:00
/* 0x00 */ s32 hpIconIndexes[2];
/* 0x08 */ s32 fpIconIndexes[2];
/* 0x10 */ s32 coinIconIndex;
/* 0x14 */ s32 coinIconIndex2; /* purpose? */
/* 0x18 */ s32 starpointsIconIndex;
/* 0x1C */ s32 starpointsIconIndex2; /* purpose? */
/* 0x20 */ s32 iconIndex8;
/* 0x24 */ s32 iconIndex9;
/* 0x28 */ s32 iconIndexA;
/* 0x2C */ s32 iconIndexB;
/* 0x30 */ s32 iconIndexC;
/* 0x34 */ s16 drawPosX; /* overall x-offset for whole UI */
/* 0x36 */ s16 drawPosY; /* modulated as it appears, goes away */
/* 0x38 */ s16 showTimer;
2020-08-14 23:53:45 +02:00
/* 0x3A */ s8 hidden;
/* 0x3B */ s8 unk_3B[2];
/* 0x3D */ u8 displayHP;
/* 0x3E */ u8 displayFP;
/* 0x3F */ char unk_3F;
/* 0x40 */ s16 displayCoins;
/* 0x42 */ s16 displayStarpoints;
2020-08-14 23:53:45 +02:00
/* 0x44 */ s8 ignoreChanges; /* set != 0 to prevent automatic opening from HP/FP changes */
/* 0x45 */ s8 unk_45[2];
/* 0x47 */ s8 disabled; /* set != 0 for menu to be disabled completely */
/* 0x48 */ s16 displaySP;
2020-08-14 23:53:45 +02:00
/* 0x4A */ s8 hpBlinking; /* bool */
/* 0x4B */ u8 hpBlinkCounter;
/* 0x4C */ u8 hpBlinkTimer; /* until stop */
2020-08-14 23:53:45 +02:00
/* 0x4D */ s8 fpBlinking; /* bool */
/* 0x4E */ u8 fpBlinkCounter;
/* 0x4F */ u8 fpBlinkTimer; /* until stop */
2020-08-14 23:53:45 +02:00
/* 0x50 */ s8 spBlinking;
/* 0x51 */ u8 spBlinkCounter;
2020-08-14 23:53:45 +02:00
/* 0x52 */ s8 starpointsBlinking; /* bool */
/* 0x53 */ u8 starpointsBlinkCounter;
2020-08-14 23:53:45 +02:00
/* 0x54 */ s8 coinsBlinking; /* bool */
/* 0x55 */ u8 coinsBlinkCounter;
/* 0x56 */ u8 coinsBlinkTimer; /* until stop */
/* 0x57 */ char unk_57[3];
/* 0x5A */ u8 spBarsToBlink; /* how many sp bars to blink */
/* 0x5B */ char unk_5B;
/* 0x5C */ s32 iconIndex10;
/* 0x60 */ s32 iconIndex11;
/* 0x64 */ s32 iconIndex12;
/* 0x68 */ s32 iconIndex13;
2020-08-14 23:53:45 +02:00
/* 0x6C */ s8 unk_6C[4];
2020-08-16 05:19:00 +02:00
} UiStatus; // size = 0x70
2020-08-16 05:19:00 +02:00
typedef struct Collider {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 nextSibling;
/* 0x06 */ s16 firstChild;
/* 0x08 */ s16 parentModelIndex;
/* 0x0A */ s16 numTriangles;
2020-08-16 05:19:00 +02:00
/* 0x0C */ struct ColliderTriangle* triangleTable;
/* 0x10 */ struct ColliderBoundingBox* aabb;
/* 0x14 */ char unk_14[4];
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x18 */ f32* vertexTable; // 3?
2020-08-16 05:19:00 +02:00
} Collider; // size = 0x1C
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
typedef struct CameraInitData {
/* 0x00 */ s16 flags;
/* 0x02 */ s8 type;
/* 0x03 */ char unk_03;
/* 0x04 */ s16 viewWidth;
/* 0x06 */ s16 viewHeight;
/* 0x08 */ s16 viewStartX;
/* 0x0A */ s16 viewStartY;
/* 0x0C */ s16 nearClip;
/* 0x0E */ s16 farClip;
/* 0x10 */ s16 vfov;
} CameraInitData; // size = 0x12;
2020-08-16 05:19:00 +02:00
typedef struct Camera {
/* 0x000 */ u16 flags;
/* 0x002 */ s16 moveFlags;
/* 0x004 */ s16 mode;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x006 */ s16 unk_06;
/* 0x008 */ u16 unk_08;
/* 0x00A */ s16 viewportW;
/* 0x00C */ s16 viewportH;
/* 0x00E */ s16 viewportStartX;
/* 0x010 */ s16 viewportStartY;
/* 0x012 */ s16 nearClip;
/* 0x014 */ s16 farClip;
/* 0x016 */ char unk_16[2];
/* 0x018 */ f32 vfov;
/* 0x01C */ s16 unk_1C;
/* 0x01E */ s16 unk_1E;
/* 0x020 */ s16 unk_20;
/* 0x022 */ s16 unk_22;
/* 0x024 */ s16 unk_24;
/* 0x026 */ s16 unk_26;
/* 0x028 */ s16 unk_28;
/* 0x02A */ s16 zoomPercent;
/* 0x02C */ s16 bgColor[3];
/* 0x032 */ s16 targetScreenCoords[3];
/* 0x038 */ s16 perspNorm;
/* 0x03A */ char unk_3A[2];
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x03C */ Vec3f lookAt_eye;
2020-11-06 18:32:30 +01:00
/* 0x048 */ Vec3f lookAt_obj;
/* 0x054 */ f32 unk_54;
/* 0x058 */ f32 unk_58;
/* 0x05C */ f32 unk_5C;
2020-10-29 21:16:39 +01:00
/* 0x060 */ Vec3f targetPos;
/* 0x06C */ f32 currentYaw;
/* 0x070 */ f32 unk_70;
/* 0x074 */ f32 currentBoomYaw;
/* 0x078 */ f32 currentBoomLength;
/* 0x07C */ f32 currentYOffset;
/* 0x080 */ char unk_80[4];
/* 0x084 */ f32 trueRotation[3];
/* 0x090 */ f32 currentBlendedYawNegated;
/* 0x094 */ f32 currentPitch;
/* 0x098 */ s32 unk_98;
/* 0x09C */ s32 unk_9C;
2021-01-15 18:01:44 +01:00
/* 0x0A0 */ Vp viewport;
/* 0x0B0 */ char unk_B0[0x24];
2021-02-09 12:07:05 +01:00
/* 0x0D4 */ Matrix4f perspectiveMatrix;
/* 0x114 */ Matrix4f viewMtxPlayer; /* centers on player */
/* 0x154 */ Matrix4f viewMtxLeading; /* leads player slightly */
/* 0x194 */ Matrix4f viewMtxShaking; /* used while ShakeCam is active */
/* 0x1D4 */ char unk_1D4[48];
2020-08-16 05:19:00 +02:00
/* 0x204 */ struct Matrix4s* unkMatrix;
/* 0x208 */ char unk_208[572];
2020-08-16 05:19:00 +02:00
/* 0x444 */ struct Zone* prevZone;
/* 0x448 */ struct Zone* currentZone;
/* 0x44C */ struct CamPosSettings initialSettings; /* for start of blend between zones */
/* 0x468 */ struct CamPosSettings targetSettings; /* goal for blend between zones */
/* 0x484 */ f32 sinInterpAlpha;
/* 0x488 */ f32 linearInterp;
/* 0x48C */ f32 linearInterpScale; /* 3.0? */
/* 0x490 */ f32 moveSpeed;
/* 0x494 */ char unk_494[0x8];
/* 0x49C */ f32 unk_49C;
/* 0x4A0 */ char unk_4A0[0x10];
2020-10-29 21:16:39 +01:00
/* 0x4B0 */ Vec3f movePos;
/* 0x4BC */ char unk_4BC[28];
/* 0x4D8 */ s32 controllerType;
/* 0x4DC */ f32 controllerBoomLen;
/* 0x4E0 */ f32 controllerBoomPitch;
2020-10-29 21:16:39 +01:00
/* 0x4E4 */ Vec3f posA;
/* 0x4F0 */ Vec3f posB;
/* 0x4FC */ f32 controllerViewPitch;
/* 0x500 */ s32 unk_500;
/* 0x504 */ s16 boolTargetPlayer;
/* 0x506 */ u16 unk_506;
/* 0x508 */ f32 panPhase;
/* 0x50C */ f32 leadAmount;
/* 0x510 */ char unk_510[16];
/* 0x520 */ f32 unk_520;
/* 0x524 */ char unk_524[16];
2020-08-16 05:19:00 +02:00
/* 0x534 */ struct ColliderBoundingBox* aabbForZoneBelow;
/* 0x538 */ char unk_538[32];
2020-08-16 05:19:00 +02:00
} Camera; // size = 0x558
2020-10-17 00:23:52 +02:00
typedef struct BattleStatusUnkInner {
/* 0x00 */ char unk_00[0x10];
/* 0x10 */ s16 unk_10;
/* 0x12 */ char unk_12[8];
/* 0x1A */ s16 unk_1A;
/* 0x1C */ char unk_1C[8];
/* 0x24 */ s16 unk_24;
} BattleStatusUnkInner; // size = unknown
typedef struct BattleStatusUnk {
/* 0x00 */ char unk_00[0xC];
/* 0x0C */ BattleStatusUnkInner* unk_0C;
} BattleStatusUnk; // size = unknown
2020-10-17 04:36:28 +02:00
typedef struct FGModelData {
/* 0x00 */ char unk_00[0x18];
/* 0x18 */ s32* idList;
} FGModelData; // size = unknown
2020-08-16 05:19:00 +02:00
typedef struct BattleStatus {
/* 0x000 */ s32 flags1;
/* 0x004 */ s32 flags2;
/* 0x008 */ s32 varTable[16];
/* 0x048 */ u8 currentSubmenu;
2021-01-02 12:30:34 +01:00
/* 0x049 */ char unk_49[3];
/* 0x04C */ s8 unk_4C;
/* 0x04D */ s8 unk_4D;
/* 0x04E */ s8 unk_4E;
/* 0x04F */ s8 unk_4F;
/* 0x050 */ s8 unk_50;
/* 0x051 */ s8 unk_51;
/* 0x052 */ s8 unk_52;
/* 0x053 */ s8 stratsLastCursorPos;
2021-01-02 12:30:34 +01:00
/* 0x054 */ char unk_54[8];
/* 0x05C */ s8 unk_5C;
/* 0x05D */ s8 unk_5D;
/* 0x05E */ char unk_5E[4];
/* 0x062 */ s8 unk_62;
/* 0x063 */ s8 unk_63;
/* 0x064 */ char unk_64[12];
2020-11-27 20:38:52 +01:00
/* 0x070 */ s16 unk_70;
/* 0x072 */ char unk_72[2];
2020-10-16 20:49:18 +02:00
/* 0x074 */ s32 unk_74;
/* 0x078 */ u8 totalStarPoints;
/* 0x079 */ u8 pendingStarPoints; /* how many to add */
/* 0x07A */ u8 incrementStarPointDelay; /* related to star points, set to 0x28 when they are dropped */
/* 0x07B */ u8 damageTaken;
/* 0x07C */ u8 changePartnerAllowed;
2020-10-16 00:11:56 +02:00
/* 0x07D */ char unk_7D[4];
/* 0x081 */ s8 actionSuccess;
2020-10-16 04:05:04 +02:00
/* 0x082 */ char unk_82;
/* 0x083 */ s8 unk_83;
/* 0x084 */ s8 unk_84;
2020-10-16 00:11:56 +02:00
/* 0x085 */ s8 unk_85;
2020-10-16 04:05:04 +02:00
/* 0x086 */ s8 unk_86;
2020-10-16 00:11:56 +02:00
/* 0x087 */ s8 blockResult; /* 0 = fail, 1 = success, -1 = mashed */
/* 0x088 */ u8 itemUsesLeft; /* set to 2 for doublke dip, 3 for triple */
/* 0x089 */ u8 hpDrainCount;
/* 0x08A */ char unk_8A;
/* 0x08B */ u8 hustleTurns; /* numTurns from hustle drink, normally 0 */
2020-11-27 20:38:52 +01:00
/* 0x08C */ char unk_8C;
/* 0x08D */ s8 unk_8D;
/* 0x08E */ u8 initialEnemyCount; /* used for SP award bonus */
2020-11-26 22:19:34 +01:00
/* 0x08F */ char unk_8F[3];
/* 0x092 */ s8 unk_92;
/* 0x093 */ char unk_93;
/* 0x094 */ s8 unk_94;
/* 0x095 */ char unk_95;
2020-10-17 00:23:52 +02:00
/* 0x096 */ s8 hammerCharge;
/* 0x097 */ s8 jumpCharge;
/* 0x098 */ char unk_98;
/* 0x099 */ u8 dangerFlags; /* 1 = danger, 2 = peril */
/* 0x09A */ s8 outtaSightActive;
2020-10-17 00:23:52 +02:00
/* 0x09B */ s8 turboChargeTurnsLeft;
/* 0x09C */ u8 turboChargeAmount; /* unused? */
2020-10-17 00:23:52 +02:00
/* 0x09D */ s8 waterBlockTurnsLeft;
/* 0x09E */ u8 waterBlockAmount; /* unused? */
2020-10-17 00:23:52 +02:00
/* 0x09F */ char unk_9F;
/* 0x0A0 */ s32* unk_A0;
/* 0x0A4 */ s8 cloudNineTurnsLeft;
/* 0x0A5 */ u8 cloudNineDodgeChance; /* = 50% */
/* 0x0A6 */ char unk_A6[2];
/* 0x0A8 */ s32 cloudNineEffect;
/* 0x0AC */ char unk_AC[2];
/* 0x0AE */ u8 hammerLossTurns;
/* 0x0AF */ u8 jumpLossTurns;
/* 0x0B0 */ u8 itemLossTurns;
/* 0x0B1 */ char unk_B1[3];
/* 0x0B4 */ UNK_FUN_PTR(preUpdateCallback);
/* 0x0B8 */ char unk_B8[4];
2020-08-19 02:16:12 +02:00
/* 0x0BC */ struct ScriptInstance* controlScript; /* control handed over to this when changing partners */
2020-10-20 08:33:40 +02:00
/* 0x0C0 */ ScriptID controlScriptID;
2020-08-16 07:13:03 +02:00
/* 0x0C4 */ struct ScriptInstance* camMovementScript;
2020-10-20 08:33:40 +02:00
/* 0x0C8 */ ScriptID camMovementScriptID;
/* 0x0CC */ char unk_CC[12];
/* 0x0D8 */ struct Actor* playerActor;
/* 0x0DC */ struct Actor* partnerActor;
/* 0x0E0 */ struct Actor* enemyActors[24];
/* 0x140 */ s16 enemyIDs[24];
/* 0x170 */ char unk_170;
/* 0x171 */ u8 numEnemyActors;
/* 0x172 */ char unk_172[6];
/* 0x178 */ s8 moveCategory;
/* 0x179 */ char unk_179;
/* 0x17A */ s16 selectedItemID;
/* 0x17C */ s16 selectedMoveID;
/* 0x17E */ s16 currentAttackDamage;
/* 0x180 */ s16 lastAttackDamage;
/* 0x182 */ char unk_182[2];
/* 0x184 */ s32 currentTargetListFlags; /* set when creating a target list, also obtain from the flags field of moves */
/* 0x188 */ s32 currentAttackElement;
/* 0x18C */ s32 currentAttackEventSuppression;
/* 0x190 */ s32 currentAttackStatus;
/* 0x194 */ u8 statusChance;
/* 0x195 */ u8 statusDuration;
/* 0x196 */ char unk_196;
/* 0x197 */ u8 targetHomeIndex; /* some sort of home idnex used for target list construction */
/* 0x198 */ u8 powerBounceCounter;
2020-11-16 04:04:33 +01:00
/* 0x199 */ s8 wasStatusInflicted; /* during last attack */
2020-11-27 20:38:52 +01:00
/* 0x19A */ u8 unk_19A;
2020-10-16 22:29:55 +02:00
/* 0x19B */ char unk_19B[5];
/* 0x1A0 */ s16 currentTargetID; /* selected? */
/* 0x1A2 */ u8 currentTargetPart; /* selected? */
/* 0x1A3 */ char unk_1A3;
/* 0x1A4 */ s16 currentTargetID2;
/* 0x1A6 */ u8 currentTargetPart2;
2020-10-16 22:29:55 +02:00
/* 0x1A7 */ s8 battlePhase;
/* 0x1A8 */ s16 attackerActorID;
/* 0x1AA */ char unk_1AA[4];
/* 0x1AE */ s16 submenuIcons[24]; /* icon IDs */
/* 0x1DE */ u8 submenuMoves[24]; /* move IDs */
/* 0x1F6 */ u8 submenuEnabled[24];
/* 0x20E */ u8 submenuMoveCount;
/* 0x20F */ char unk_20F;
/* 0x210 */ s32 currentButtonsDown;
/* 0x214 */ s32 currentButtonsPressed;
/* 0x218 */ s32 currentButtonsHeld;
2020-11-18 04:00:47 +01:00
/* 0x21C */ s32 stickX;
/* 0x220 */ s32 stickY;
/* 0x224 */ s32 inputBitmask;
/* 0x228 */ s32 dpadX; /* 0-360 */
/* 0x22C */ s32 dpadY; /* 0-60 */
/* 0x230 */ s32 holdInputBuffer[64];
/* 0x330 */ s32 pushInputBuffer[64];
/* 0x430 */ u8 holdInputBufferPos;
/* 0x431 */ u8 inputBufferPos;
2020-11-26 22:19:34 +01:00
/* 0x432 */ s8 unk_432;
/* 0x433 */ char unk_433;
2020-10-16 04:05:04 +02:00
/* 0x434 */ s32 unk_434;
2020-10-17 04:36:28 +02:00
/* 0x438 */ FGModelData* foregroundModelData;
2020-10-17 00:23:52 +02:00
/* 0x43C */ BattleStatusUnk* unk_43C;
/* 0x440 */ u8 tattleFlags[27];
All map data + rodata disasm (#218) * Misc early code decomp * Make expected script * fix m2ctx * gOverrideFlags & set/unset macros * update symbol addrs * Cleanup and PR comments * oops * UnkNpcAIFunc16 * UnkNpcAIFunc17 * UnkNpcAIFunc18 * symbol_addrs * area_mac data/rodata disassembly * 16C8E0 segment rodata migration * delete_actor * 16F740 funcs * symbol_addrs * depend on s files: optional * UnkNpcAIFunc19 * UnkNpcAIFunc20 * UnkNpcAIFunc21 * UnkNpcAIFunc22 * . * removing unnecessary lines from splat yaml * all map rodata disassembled * all map data disasm * 2 undefined syms * fix stuff * Update splat extensions * . * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "d93689f269" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "d93689f269" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "a1db6e1200" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "a1db6e1200" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "45f167b5fd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "45f167b5fd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "8d3af099e7" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "8d3af099e7" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "e904556c0c" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "e904556c0c" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "795df1f226" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "795df1f226" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "90787f49bd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "90787f49bd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "8f4395956b" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "8f4395956b" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Updated splat, fixed alignment stuff, woo * File split
2021-03-23 03:29:47 +01:00
/* 0x45B */ char unk_45B[5];
} BattleStatus; // size = 0x460
2020-08-16 05:19:00 +02:00
typedef struct TextureHeader {
/* 0x00 */ s8 name[32];
/* 0x20 */ s16 auxW;
/* 0x22 */ s16 mainW;
/* 0x24 */ s16 auxH;
/* 0x26 */ s16 mainH;
/* 0x28 */ char unk_28;
/* 0x29 */ u8 extraTiles;
/* 0x2A */ u8 colorCombine;
/* 0x2B */ u8 fmt;
/* 0x2C */ u8 bitDepth;
/* 0x2D */ u8 wrapH;
/* 0x2E */ u8 wrapV;
/* 0x2F */ u8 filtering;
2020-08-16 05:19:00 +02:00
} TextureHeader; // size = 0x30
typedef struct StaticMove {
/* 0x00 */ s32 moveNameID;
/* 0x04 */ s32 flags;
/* 0x08 */ s32 worldDescID;
/* 0x0C */ s32 menuDescID;
/* 0x10 */ u8 battleSubmenu;
/* 0x11 */ u8 costFP;
/* 0x12 */ u8 costBP;
/* 0x13 */ u8 actionCommandID;
} StaticMove; // size = 0x14
2020-08-16 05:19:00 +02:00
typedef struct CollisionData {
Various meta work and some decomp (#184) * some * DeadUnkTexturePanFunc * DeadUnkTexturePanFunc2 * move guOrthoF to os * up * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "ae2cce951d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "ae2cce951d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Updating bin dir * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "5517f520e4" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "5517f520e4" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "fe48dc3b3a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "fe48dc3b3a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * revert garbage * :OK: * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "8c86e4b95b" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "8c86e4b95b" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * data migration * 3 * .rodata migration and a buncha funcs * 2 mo * some decomp, a file boundary fix * cleanup * UnkNpaAIFunc13s * Update symbol_addrs * remove sublist * deleted asm * data fix * fix data * wtf?! * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "88ce6b44a6" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "88ce6b44a6" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * symbol_addrs update * blah * PR comments
2021-02-16 11:32:34 +01:00
/* 0x00 */ f32* vertices;
/* 0x04 */ Collider* colliderList;
2020-08-16 05:19:00 +02:00
/* 0x08 */ struct ColliderBoundingBox** aabbs;
/* 0x0C */ s16 numColliders;
/* 0x0E */ char unk_0E[2];
2020-08-16 05:19:00 +02:00
} CollisionData; // size = 0x10
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
typedef struct ModelGroupData {
/* 0x00 */ UNK_PTR transformMatrix;
/* 0x04 */ UNK_PTR lightingGroup;
/* 0x08 */ s32 numLights;
/* 0x0C */ s32 numChildren;
/* 0x10 */ struct ModelNode** childList;
} ModelGroupData; // size = 0x14
typedef struct ModelDisplayData {
/* 0x0 */ Gfx* displayList;
/* 0x4 */ char unk_00[0x4];
} ModelDisplayData; // size = 0x8
typedef struct ModelNodeProperty {
/* 0x0 */ s32 key;
/* 0x4 */ s32 dataType;
/* 0x8 */ s32 data;
} ModelNodeProperty; // size = 0x8;
typedef struct ModelNode {
/* 0x00 */ s32 type; /* 2 = model */
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x04 */ ModelDisplayData* displayData;
/* 0x08 */ s32 numProperties;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x0C */ ModelNodeProperty* propertyList;
/* 0x10 */ struct ModelGroupData* groupData;
} ModelNode; // size = 0x14
2020-08-16 05:19:00 +02:00
typedef struct Model {
2020-10-17 04:36:28 +02:00
/* 0x00 */ u16 flags;
/* 0x02 */ s16 modelID;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x04 */ Matrix4s* currentMatrix;
/* 0x08 */ ModelNode* modelNode;
/* 0x0C */ ModelGroupData* groupData;
/* 0x10 */ s32* currentSpecialMatrix;
/* 0x14 */ char unk_14[4];
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x18 */ Matrix4s specialMatrix;
2021-02-09 12:07:05 +01:00
/* 0x58 */ Matrix4f transformMatrix;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x98 */ Vec3f center;
/* 0xA4 */ u8 texPannerID;
/* 0xA5 */ u8 specialDisplayListID;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0xA6 */ s8 renderMode;
/* 0xA7 */ char unk_A7;
/* 0xA8 */ u8 textureID;
2020-09-25 23:18:09 +02:00
/* 0xA9 */ u8 unk_A9;
/* 0xAA */ char unk_AA[6];
2020-08-16 05:19:00 +02:00
} Model; // size = 0xB0
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
typedef struct ModelTransformGroup {
/* 0x00 */ u16 flags;
/* 0x02 */ s16 groupModelID;
/* 0x04 */ Matrix4s* matrixRDP_N;
/* 0x08 */ ModelNode* modelNode;
/* 0x0C */ Matrix4s* transformMtx;
/* 0x10 */ Matrix4f matrixA;
/* 0x50 */ Matrix4f matrixB;
/* 0x90 */ Vec3f center;
/* 0x9C */ u8 minChildModelIndex;
/* 0x9D */ u8 maxChildModelIndex;
/* 0x9E */ u8 renderMode;
/* 0x9F */ s8 matrixMode;
} ModelTransformGroup; // size = 0xA0
typedef Model* ModelList[MAX_MODELS];
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
typedef ModelTransformGroup* ModelTransformGroupList[MAX_MODEL_TRANSFORM_GROUPS];
2020-08-16 05:19:00 +02:00
typedef struct AnimatedMesh {
/* 0x000 */ s32 flags;
/* 0x004 */ u8 renderMode;
/* 0x005 */ char unk_05[3];
/* 0x008 */ u32* animation1;
/* 0x00C */ u32* animation2;
/* 0x010 */ char unk_10[136];
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x098 */ Matrix4s mtx;
/* 0x0D8 */ char unk_D8[500];
/* 0x2CC */ s32 time;
2020-11-10 03:51:33 +01:00
/* 0x2D0 */ char unk_2D0[4];
/* 0x2D4 */ s32 unk_2D4;
/* 0x2D8 */ s32 unk_2D8;
/* 0x2DC */ char unk_2DC[4];
2020-08-16 05:19:00 +02:00
} AnimatedMesh; // size = 0x2E0
2020-11-08 21:40:26 +01:00
typedef AnimatedMesh* AnimatedMeshList[MAX_ANIMATED_MESHES];
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
typedef struct EffectInstanceData {
/* 0x00 */ struct EffectInstanceDataThing* unk_00;
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
/* 0x04 */ Vec3f pos;
/* 0x10 */ Vec3f rotation;
/* 0x1C */ Vec3f scale;
/* 0x28 */ char unk_28[0x4];
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ char unk_34[0x30];
/* 0x64 */ f32 unk_64;
/* 0x68 */ char unk_68[0x18];
} EffectInstanceData; // size = 0x80
2020-08-16 05:19:00 +02:00
typedef struct PrintHandle {
/* 0x000 */ char unk_00[16];
/* 0x010 */ s8* printbuf;
/* 0x014 */ char unk_14[1344];
2020-08-16 05:19:00 +02:00
} PrintHandle; // size = 0x554
2020-08-16 05:19:00 +02:00
typedef struct OtherPrint {
/* 0x00 */ char unk_00[16];
/* 0x10 */ f32 stringScaleH;
/* 0x14 */ f32 stringScaleW;
/* 0x18 */ f32 characterScaleH;
/* 0x1C */ f32 characterScaleW;
/* 0x20 */ char unk_20[32];
/* 0x40 */ s32 currentPosX;
/* 0x44 */ char unk_44[16];
2020-08-16 05:19:00 +02:00
} OtherPrint; // size = 0x54
2020-08-16 05:19:00 +02:00
typedef struct ColliderBoundingBox {
/* 0x00 */ f32 min[3];
/* 0x0C */ f32 max[3];
/* 0x18 */ s32 flagsForCollider;
2020-08-16 05:19:00 +02:00
} ColliderBoundingBox; // size = 0x1C
typedef struct StaticItem {
/* 0x00 */ s32 nameString;
/* 0x04 */ s16 iconID;
/* 0x06 */ s16 badgeSortPriority;
/* 0x08 */ s32 targetFlags;
/* 0x0C */ s16 sellValue;
/* 0x0E */ char unk_0E[2];
/* 0x10 */ s32 menuString;
/* 0x14 */ s32 itemString;
/* 0x18 */ s16 typeFlags;
/* 0x1A */ u8 moveID;
2020-09-26 03:51:54 +02:00
/* 0x1B */ s8 potencyA;
/* 0x1C */ s8 potencyB;
/* 0x1D */ char unk_1D[3];
} StaticItem; // size = 0x20
2021-01-12 20:45:50 +01:00
typedef struct EffectInstance {
/* 0x00 */ s32 flags;
/* 0x04 */ s32 effectIndex;
2021-01-15 18:01:44 +01:00
/* 0x08 */ s32 totalMatricies;
/* 0x0C */ struct EffectInstanceData* data;
2021-01-12 20:45:50 +01:00
/* 0x10 */ struct Effect* effect;
} EffectInstance;
typedef struct EffectBlueprint {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 effectIndex;
/* 0x08 */ void (*init)(EffectInstance* effectInst);
/* 0x0C */ void (*update)(EffectInstance* effectInst);
/* 0x10 */ void (*renderWorld)(EffectInstance* effectInst);
2021-01-15 18:18:27 +01:00
/* 0x14 */ void (*unk_14)(EffectInstance* effectInst);
2021-01-12 20:45:50 +01:00
} EffectBlueprint; // size = 0x18
typedef struct {
char unk_00[0x38];
f32 unk_38[4];
} EffectUnkStruct1;
// TODO figure out what this actually is
// playFX_4E invokes gEffectTable[78]'s entryPoint function
// playFX_6F invokes gEffectTable[111]'s entryPoint function
// playFX_83 invokes gEffectTable[131]'s entryPoint function
// These functions are currently typed to return void
// Assume they return an Effect*, and this struct is accessed at unk_0C,
// but this struct differs from EffectInstanceData
// Search for "struct N(temp)" for examples
typedef struct {
char unk_00[0x4];
f32 unk_04;
f32 unk_08;
f32 unk_0C;
f32 unk_10;
char unk_14[0x4];
s32 unk_18;
s32 unk_1C;
s32 unk_20;
X32 unk_24;
s32 unk_28;
s32 unk_2C;
s32 unk_30;
s32 unk_34;
s32 unk_38;
char unk_3C[0xC];
EffectUnkStruct1* unk_48;
char unk_4C[0x24];
s32 unk_70;
s32 unk_74;
} EffectInstanceDataThing;
2020-08-16 05:19:00 +02:00
typedef struct Effect {
2021-01-12 20:45:50 +01:00
/* 0x00 */ s32 flags;
/* 0x04 */ s32 effectIndex;
/* 0x08 */ s32 instanceCounter;
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
/* 0x0C */ EffectInstanceData* instanceData; //? Maybe EffectInstanceData too ?
2021-01-12 20:45:50 +01:00
/* 0x10 */ void (*update)(EffectInstance* effectInst);
/* 0x14 */ void (*renderWorld)(EffectInstance* effectInst);
2021-01-15 18:18:27 +01:00
/* 0x18 */ void (*unk_18)(EffectInstance* effectInst);
2021-01-12 20:45:50 +01:00
/* 0x1C */ void* unk_1C;
2020-08-16 05:19:00 +02:00
} Effect; // size = 0x20
2020-10-16 00:11:56 +02:00
typedef struct EffectTableEntry {
2021-01-15 18:01:44 +01:00
/* 0x00 */ void (*entryPoint)(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 x, f32 y, f32 z);
2021-01-12 20:45:50 +01:00
/* 0x04 */ void* dmaStart;
/* 0x08 */ void* dmaEnd;
/* 0x0C */ void* dmaDest;
/* 0x10 */ void* unkStartRom;
/* 0x14 */ void* unkEndRom;
2020-10-16 00:11:56 +02:00
} EffectTableEntry; // size = 0x18
2020-08-16 05:19:00 +02:00
typedef struct ItemEntity {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 boundVar; /* see make_item_entity */
/* 0x06 */ char unk_06[2];
2020-10-29 21:16:39 +01:00
/* 0x08 */ Vec3f position;
2020-08-16 05:19:00 +02:00
/* 0x14 */ struct ItemEntityPhysicsData* physicsData;
/* 0x18 */ s16 itemID; /* into item table, also worldIconID */
/* 0x1A */ u8 state;
/* 0x1B */ u8 type;
/* 0x1C */ u8 pickupDelay; /* num frames before item can be picked up */
/* 0x1D */ char unk_1D;
/* 0x1E */ s16 wsFaceAngle; /* < 0 means none */
/* 0x20 */ s16 shadowIndex;
/* 0x22 */ char unk_22[2];
/* 0x24 */ u32* readPos;
/* 0x28 */ u32* savedReadPos;
/* 0x2C */ char unk_2C[2];
/* 0x2E */ u8 unkCounter;
/* 0x2F */ s8 unk_2F;
/* 0x30 */ f32 scale;
2021-04-18 19:30:54 +02:00
/* 0x34 */ char unk_34[8];
/* 0x3C */ s32 framesLeft;
/* 0x40 */ s32* currentState;
/* 0x44 */ s32 unk_44;
/* 0x48 */ s32* sequenceStart;
/* 0x4C */ s32* unk_4C;
/* 0x50 */ s32* unk_50;
/* 0x54 */ s32 unk_54;
/* 0x58 */ s32 unk_58;
2020-08-16 05:19:00 +02:00
} ItemEntity; // size = 0x5C
2020-08-16 05:19:00 +02:00
typedef struct StaticShadowData {
/* 0x00 */ s16 flags;
/* 0x02 */ char unk_02[34];
2020-08-16 05:19:00 +02:00
} StaticShadowData; // size = 0x24
2020-08-16 05:19:00 +02:00
typedef struct SpriteComponent {
/* 0x00 */ char unk_00[8];
/* 0x08 */ s16** readPos;
/* 0x0C */ f32 waitTime;
/* 0x10 */ s32 loopCounter;
/* 0x14 */ s32 currentRaster;
/* 0x18 */ s32 currentPalette;
2020-10-29 21:16:39 +01:00
/* 0x1C */ Vec3f posOffset;
/* 0x28 */ Vec3f compPos;
/* 0x34 */ Vec3f rotation;
/* 0x40 */ Vec3f scale;
/* 0x4C */ char unk_4C[4];
2020-08-16 05:19:00 +02:00
} SpriteComponent; // size = 0x50
typedef struct MessagePrintState {
/* 0x000 */ s8* srcBuffer;
/* 0x004 */ s16 printBufferPos;
/* 0x006 */ char unk_06[2];
/* 0x008 */ s32 stringID;
/* 0x00C */ s16 srcBufferPos;
/* 0x00E */ s16 currentPrintDelay;
/* 0x010 */ u8 printBuffer[1088]; // slightly larger than source buffer
/* 0x450 */ s16 printBufferSize;
/* 0x452 */ u16 effectFrameCounter;
/* 0x454 */ u8 font;
/* 0x455 */ s8 fontVariant;
/* 0x456 */ Vec2s windowOffsetPos; // offset from baseWindowPos. used to animated window pos?
/* 0x45A */ Vec2s windowBasePos; // ex: set by the parameters for choice style
/* 0x45E */ s8 printDelayTime; // delay to print each chunk
/* 0x45F */ s8 charsPerChunk; // how many chars to print at once
/* 0x460 */ s32 curLinePos; // position along current line
/* 0x464 */ s8 unk_464;
/* 0x465 */ char unk_465;
/* 0x466 */ s16 nextLinePos; // ?
/* 0x468 */ s8 lineCount;
/* 0x469 */ char unk_469[0x3];
/* 0x46C */ s32 unk_46C;
/* 0x470 */ s8 currentAnimFrame[4];
/* 0x474 */ s16 animTimers[4];
/* 0x47C */ s8 rewindArrowAnimState;
/* 0x47D */ char unk_47D[0x1];
/* 0x47E */ s16 rewindArrowBlinkCounter;
/* 0x480 */ s16 unk_480;
/* 0x482 */ Vec2s rewindArrowPos;
/* 0x486 */ s8 currentLine;
/* 0x487 */ u8 unkArraySize;
/* 0x488 */ s16 lineEndPos[4];
/* 0x490 */ char unk_490[0x38];
/* 0x4C8 */ s16 unk_4C8;
/* 0x4CA */ s16 unk_4CA;
/* 0x4CC */ s16 unk_4CC;
/* 0x4CE */ s8 maxOption;
/* 0x4CF */ char unk_4CF[0x1];
/* 0x4D0 */ s16 cursorPosX[6];
/* 0x4DC */ s16 cursorPosY[6];
/* 0x4E8 */ u8 currentOption;
/* 0x4E9 */ s8 madeChoice;
/* 0x4EA */ u8 cancelOption;
/* 0x4EB */ char unk_4EB[0x1];
/* 0x4EC */ s8 targetOption;
/* 0x4ED */ s8 unkCounter;
/* 0x4EE */ s8 selectedOption;
/* 0x4EF */ char unk_4EF[0x9];
/* 0x4F8 */ u8 windowState;
/* 0x4F9 */ char unk_4F9[0x3];
/* 0x4FC */ s32 stateFlags;
/* 0x500 */ s16 delayFlags; // ?
/* 0x502 */ char unk_502[0x2];
/* 0x504 */ s32* closedWritebackBool; // if not null, writes 1 here when message closes
/* 0x508 */ s8 style;
/* 0x509 */ u8 fadeInCounter;
/* 0x50A */ Vec2s initOpenPos; // where the message originates from, in screen-space coords
/* 0x50E */ Vec2s openStartPos;
/* 0x512 */ u8 fadeOutCounter;
/* 0x513 */ char unk_513[0x1];
/* 0x514 */ Vec2su windowSize;
/* 0x518 */ s8 speechSoundType;
/* 0x519 */ u8 volume;
/* 0x51A */ s8 speechPan; // just pan?
/* 0x51B */ char unk_51B[0x1];
/* 0x51C */ u16 speechVolumePitch;
/* 0x51E */ char unk_51E[0x2];
/* 0x520 */ s32 speedSoundIDA;
/* 0x524 */ s32 speedSoundIDB;
/* 0x528 */ s16 varBufferReadPos;
/* 0x52A */ s8 unk_52A;
/* 0x52B */ u8 currentImageIndex;
/* 0x52C */ Vec2s varImageScreenPos; // in addition, posX=0 is taken as 'dont draw'
/* 0x530 */ s8 varImgHasBorder;
/* 0x531 */ u8 varImgFinalAlpha;
/* 0x532 */ s8 varImgAlphaFadeStep; // how much to fade in per frame
/* 0x533 */ s8 varImageDisplayState; // 0 = fade in, 1 = fully visible, 2 = fade out
/* 0x534 */ s16 varImageFadeTimer; // frames faded in
/* 0x536 */ s16 stringHeight;
/* 0x538 */ s16 stringWidth;
/* 0x53A */ s8 maxLineChars;
/* 0x53B */ s8 numLines;
/* 0x53C */ s8 maxLinesPerPage;
/* 0x53D */ char unk_53D[0x3];
/* 0x540 */ f32 sizeScale;
/* 0x544 */ s32* letterBackgroundImg;
/* 0x548 */ s32* letterBackgroundPal;
/* 0x54C */ s32* letterContentImg;
/* 0x550 */ s32* letterContentPal;
/* 0x554 */ char unk_554[0x4];
} MessagePrintState; // size = 0x558
typedef struct MessageDrawState {
/* 0x00 */ s32 clipX[2]; // characters beyond this pos get skipped
/* 0x08 */ s32 clipY[2]; // characters beyond this pos get skipped
/* 0x10 */ Vec2f stringScale;
/* 0x18 */ Vec2f charScale;
/* 0x20 */ s32 drawBufferPos; // string gets printed here and read for display
/* 0x24 */ s16 savedPos[2];
/* 0x28 */ s8 savedColor;
/* 0x29 */ u8 unk_29;
/* 0x2A */ char unk_2A[0x1];
/* 0x2B */ s8 framePalette;
/* 0x2C */ s8 unk_2C;
/* 0x2D */ char unk_2D[0x1];
/* 0x2E */ s8 centerPos;
/* 0x2F */ char unk_2F[0x1];
/* 0x30 */ s32 visiblePrintedCount;
/* 0x34 */ s16 printModeFlags; // C0 = center, 10 = drawing image
/* 0x36 */ char unk_36[0x2];
/* 0x38 */ s32 effectFlags;
/* 0x3C */ s16 font; // 0 or 1
/* 0x3E */ s16 fontVariant;
/* 0x40 */ s16 currentPosX;
/* 0x42 */ s16 nextPos[2];
/* 0x46 */ s16 textStartPos[2]; // relative to textbox
/* 0x4A */ s16 textColor;
/* 0x4C */ s8* printBuffer;
/* 0x50 */ s8 nextCounter; // related to closing mssages and cmd FA
/* 0x51 */ char unk_51[0x3];
} MessageDrawState; // size = 0x54
typedef struct MessageCharData {
/* 0x0 */ s8* raster;
/* 0x4 */ u8* charWidthTable;
/* 0x8 */ u8 monospaceWidth;
/* 0x9 */ s8 baseHeightOffset;
/* 0xA */ char unk_0A[0x2];
} MessageCharData; // size = 0xC
typedef struct MessageCharset {
/* 0x0 */ Vec2b texSize;
/* 0x2 */ s8 unk_02;
/* 0x3 */ s8 newLineY;
/* 0x4 */ s16 charRasterSize; // in bytes
/* 0x6 */ char unk_06[0x2];
/* 0x8 */ MessageCharData* rasters;
} MessageCharset; // size = 0xA;
typedef struct MesasgeFontGlyphData {
/* 0x0 */ s8* raster;
/* 0x4 */ s16* palette;
/* 0x8 */ Vec2b texSize;
/* 0xA */ s8 charWidth;
/* 0xB */ s8 charHeight;
} MesasgeFontGlyphData; // size = 0xC
typedef struct MessageNumber {
/* 0x00 */ s32* rasters;
/* 0x04 */ s8 texSize;
/* 0x05 */ u8 texWidth;
/* 0x06 */ u8 texHeight;
/* 0x07 */ s8 digitWidth[10];
/* 0x11 */ s8 fixedWidth;
/* 0x12 */ char unk_12[0x2];
} MessageNumber; // size = 0x14
typedef struct ShopItemEntity {
/* 0x00 */ s32 index;
/* 0x04 */ Vec3f pos;
} ShopItemEntity; // size = 0x10
2020-08-16 05:19:00 +02:00
typedef struct GameStatus {
/* 0x000 */ u32 currentButtons;
/* 0x004 */ u32 altCurrentButtons; /* input used for batte when flag 80000 set */
/* 0x008 */ char unk_08[8];
/* 0x010 */ u32 pressedButtons; /* bits = 1 for frame of button press */
/* 0x014 */ u32 altPressedButtons; /* input used for batte when flag 80000 set */
/* 0x018 */ char unk_18[8];
/* 0x020 */ u32 heldButtons; /* bits = 1 every 4th frame during hold */
/* 0x024 */ u32 altHeldButtons; /* input used for batte when flag 80000 set */
/* 0x028 */ char unk_28[8];
/* 0x030 */ u32 prevButtons; /* from previous frame */
/* 0x034 */ char unk_34[12];
2020-10-26 03:20:37 +01:00
/* 0x040 */ s8 stickX; /* with deadzone */
/* 0x041 */ u8 altStickX; /* input used for batte when flag 80000 set */
/* 0x042 */ char unk_42[2];
2020-10-28 07:42:14 +01:00
/* 0x044 */ s8 stickY; /* with deadzone */
/* 0x045 */ u8 altStickY; /* input used for batte when flag 80000 set */
2020-09-07 23:12:31 +02:00
/* 0x046 */ char unk_46[2];
2020-10-02 08:07:54 +02:00
/* 0x048 */ s16 unk_48[4];
/* 0x050 */ s16 unk_50[4];
2020-09-07 23:12:31 +02:00
/* 0x058 */ s16 unk_58;
/* 0x05A */ char unk_5A[6];
/* 0x060 */ s16 unk_60;
/* 0x062 */ char unk_62[6];
/* 0x068 */ s16 demoButtonInput;
2020-08-14 23:53:45 +02:00
/* 0x06A */ s8 demoStickX;
/* 0x06B */ s8 demoStickY;
2020-10-20 08:33:40 +02:00
/* 0x06C */ ScriptID mainScriptID;
2020-08-14 23:53:45 +02:00
/* 0x070 */ s8 isBattle;
/* 0x071 */ s8 demoState; /* (0 = not demo, 1 = map demo, 2 = demo map changing) */
/* 0x072 */ u8 nextDemoScene; /* which part of the demo to play next */
/* 0x073 */ u8 contBitPattern;
/* 0x074 */ s8 debugEnemyContact;
/* 0x075 */ s8 debugQuizmo;
2020-10-02 08:07:54 +02:00
/* 0x076 */ s8 unk_76;
/* 0x077 */ char unk_77;
2020-09-25 23:18:09 +02:00
/* 0x078 */ s8 disableScripts;
/* 0x079 */ char unk_79;
/* 0x07A */ s8 musicEnabled;
/* 0x07B */ char unk_7B;
/* 0x07C */ s8 unk_7C;
2020-10-02 08:07:54 +02:00
/* 0x07D */ s8 unk_7D;
/* 0x07E */ u8 peachFlags; /* (1 = isPeach, 2 = isTransformed, 4 = hasUmbrella) */
/* 0x07F */ s8 peachDisguise; /* (1 = koopatrol, 2 = hammer bros, 3 = clubba) */
/* 0x080 */ u8 peachAnimIdx; ///< @see world_action_idle_peachAnims
/* 0x081 */ s8 unk_81;
/* 0x082 */ s8 unk_82;
/* 0x083 */ s8 unk_83;
/* 0x084 */ s8 playerSpriteSet;
2020-11-22 17:03:02 +01:00
/* 0x085 */ char unk_85;
/* 0x086 */ s16 areaID;
/* 0x088 */ s16 prevArea;
/* 0x08A */ s16 didAreaChange;
/* 0x08C */ s16 mapID;
/* 0x08E */ s16 entryID;
2021-01-15 18:01:44 +01:00
/* 0x090 */ u16 unk_90;
/* 0x092 */ u16 unk_92;
/* 0x094 */ f32 exitTangent;
2020-10-29 21:16:39 +01:00
/* 0x098 */ Vec3f playerPos;
/* 0x0A4 */ f32 playerYaw;
/* 0x0A8 */ s8 creditsViewportMode;
2020-10-02 08:07:54 +02:00
/* 0x0A9 */ s8 unk_A9;
/* 0x0AA */ s8 demoFlags;
2020-10-02 08:07:54 +02:00
/* 0x0AB */ s8 unk_AB;
2020-08-14 23:53:45 +02:00
/* 0x0AC */ s8 loadMenuState;
f270, world, and more (#246) * 415D90 decomp * code_415D90 rodata migration * data migration, decomp * . * . * . * 4 funcs * non-matching * audio part 1 * audio work * end of snd * update_symbol_addrs * . * :chicken: * . * sfx func names * bgm * more audio * . * a few audio funcs * update section length * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "82ff308caf" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "82ff308caf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "4e9d3cdf85" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4e9d3cdf85" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * misc-decomp power * sound * 4 mo * more changes * . * some f270 * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "1c8ff4ec3f" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "1c8ff4ec3f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "f0633ecdbc" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "f0633ecdbc" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * fix is_logo image size * . * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "4be92a4786" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4be92a4786" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * state_step_pause * almost * fixing symbol_addrs and disasm * update symbol_addrs * . * fix Matrix4f usages * . * . * update_symbol_addrs * fixes * I hate bitfields * load_map_by_IDs * cleanup * state_step_logos * more cleanup * . * splat * PR comments
2021-04-01 20:00:29 +02:00
/* 0x0AD */ s8 menuCounter;
/* 0x0AE */ s8 bSkipIntro;
/* 0x0AF */ char unk_AF[0x7];
/* 0x0B6 */ s16 bootAlpha;
/* 0x0B8 */ s16 bootBlue;
/* 0x0BA */ s16 bootGreen;
/* 0x0BC */ s16 bootRed;
/* 0x0BE */ char unk_BE[106];
2020-09-14 01:03:22 +02:00
/* 0x128 */ Vec3f playerTraceNormal;
2020-08-14 23:53:45 +02:00
/* 0x134 */ u16 frameCounter;
/* 0x136 */ char unk_136[2];
/* 0x138 */ s32 nextRNG;
/* 0x13C */ s16 unk_13C;
/* 0x13E */ char unk_13E[2];
/* 0x140 */ ShopItemEntity* shopItemEntities;
2020-08-16 05:19:00 +02:00
/* 0x144 */ struct Shop* mapShop;
/* 0x148 */ s16 enableBackground; /* (bit 2 is also used for something) */
/* 0x14A */ s16 backgroundMinW;
/* 0x14C */ s16 backgroundMinH;
/* 0x14E */ s16 backgroundMaxW;
/* 0x150 */ s16 backgroundMaxH;
/* 0x152 */ s16 backgroundXOffset; /* (used for parallax scroll) */
/* 0x154 */ UNK_PTR backgroundRaster;
/* 0x158 */ UNK_PTR backgroundPalette;
2020-08-14 23:53:45 +02:00
/* 0x15C */ s16 unk_15C;
f270, world, and more (#246) * 415D90 decomp * code_415D90 rodata migration * data migration, decomp * . * . * . * 4 funcs * non-matching * audio part 1 * audio work * end of snd * update_symbol_addrs * . * :chicken: * . * sfx func names * bgm * more audio * . * a few audio funcs * update section length * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "82ff308caf" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "82ff308caf" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "4e9d3cdf85" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4e9d3cdf85" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * misc-decomp power * sound * 4 mo * more changes * . * some f270 * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "1c8ff4ec3f" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "1c8ff4ec3f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "f0633ecdbc" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "f0633ecdbc" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * fix is_logo image size * . * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "4be92a4786" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4be92a4786" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * state_step_pause * almost * fixing symbol_addrs and disasm * update symbol_addrs * . * fix Matrix4f usages * . * . * update_symbol_addrs * fixes * I hate bitfields * load_map_by_IDs * cleanup * state_step_logos * more cleanup * . * splat * PR comments
2021-04-01 20:00:29 +02:00
/* 0x15E */ u16 unk_15E;
2020-11-07 20:44:44 +01:00
/* 0x160 */ Vec3s savedPos;
2020-09-22 05:10:53 +02:00
/* 0x166 */ u8 saveSlot;
/* 0x167 */ u8 loadType; /* (0 = from map, 1 = from main menu) */
/* 0x168 */ u32 saveCount;
/* 0x16C */ char unk_16C[12];
2020-08-16 05:19:00 +02:00
} GameStatus; // size = 0x178
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
// PartnerAnims
2020-08-16 05:19:00 +02:00
typedef struct PartnerAnimations {
2020-12-27 15:23:36 +01:00
/* 0x00 */ UNK_PTR anims[9];
2020-08-16 05:19:00 +02:00
} PartnerAnimations; // size = 0x24
2020-08-16 05:19:00 +02:00
typedef struct Shadow {
/* 0x00 */ s32 flags;
/* 0x04 */ u8 listIndex;
/* 0x05 */ u8 unk_05;
2020-10-31 08:54:00 +01:00
/* 0x06 */ u8 unk_06;
/* 0x07 */ char unk_07;
/* 0x08 */ s16 entityModelID;
/* 0x0A */ s16 vertexSegment;
/* 0x0C */ Vtx_tn** vertexArray;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x10 */ Vec3f position;
/* 0x1C */ Vec3f scale;
/* 0x28 */ Vec3f rotation;
/* 0x34 */ char unk_34[0x4];
/* 0x38 */ Matrix4s transformMatrix;
2020-08-16 05:19:00 +02:00
} Shadow; // size = 0x78
typedef Shadow* ShadowList[MAX_SHADOWS];
2020-08-16 05:19:00 +02:00
typedef struct PushBlockGrid {
/* 0x00 */ s8* cells;
/* 0x04 */ u8 numCellsX;
/* 0x05 */ u8 numCellsZ;
/* 0x06 */ char unk_06[2];
/* 0x08 */ s32 centerPos[3];
/* 0x14 */ UNK_FUN_PTR(dropCallback);
/* 0x18 */ char unk_18[4];
2020-08-16 05:19:00 +02:00
} PushBlockGrid; // size = 0x1C
2020-08-16 05:19:00 +02:00
typedef struct ItemEntityPhysicsData {
/* 0x00 */ f32 verticalVelocity;
/* 0x04 */ f32 gravity; /* 2 = normal, 1 = low gravity, higher values never 'settle' */
/* 0x08 */ char unk_08[4];
/* 0x0C */ f32 constVelocity;
/* 0x10 */ f32 velx;
/* 0x14 */ f32 velz;
/* 0x18 */ f32 moveAngle;
/* 0x1C */ char unk_1C[8];
2020-08-16 05:19:00 +02:00
} ItemEntityPhysicsData; // size = 0x24
2020-08-16 05:19:00 +02:00
typedef struct RenderTask {
/* 0x00 */ s32 renderMode;
/* 0x04 */ s32 distance; /* value between 0 and -10k */
/* 0x08 */ void* appendGfxArg;
/* 0x0C */ void (*appendGfx)(void*);
2020-08-16 05:19:00 +02:00
} RenderTask; // size = 0x10
typedef void(*CustomModelGfxBuilderFunc)(s32 index);
typedef struct CustomModelGfxBuilder {
/* 0x00 */ CustomModelGfxBuilderFunc pre;
/* 0x00 */ CustomModelGfxBuilderFunc post;
} CustomModelGfxBuilder; // size = 0x8
2020-08-16 05:19:00 +02:00
typedef struct SelectableTarget {
/* 0x00 */ s16 actorID;
/* 0x02 */ s16 partID; /* sometimes loaded as byte from 0x3 */
/* 0x04 */ s16 pos[3];
/* 0x0A */ char unk_0A[7];
/* 0x11 */ u8 homeCol; /* from xpos --> 0-3 */
/* 0x12 */ u8 homeRow; /* from ypos --> 0-3 */
/* 0x13 */ u8 layer; /* from zpos? --> 0-1 */
2020-08-16 05:19:00 +02:00
} SelectableTarget; // size = 0x14
2020-08-16 05:19:00 +02:00
typedef struct ActorPartMovement {
/* 0x00 */ char unk_00[12];
2020-11-20 01:58:41 +01:00
/* 0x0C */ Vec3f goalPos;
/* 0x18 */ char unk_18[12];
/* 0x24 */ f32 jumpScale;
/* 0x28 */ f32 moveSpeed;
/* 0x2C */ char unk_2C[32];
/* 0x4C */ s32 varTable[16];
2020-08-16 05:19:00 +02:00
} ActorPartMovement; // size = 0x8C
typedef struct ActorPart {
/* 0x00 */ s32 flags;
/* 0x04 */ s32 targetFlags; /* initialized to 0 */
2020-12-29 12:35:59 +01:00
/* 0x08 */ struct ActorPartDesc* staticData;
/* 0x0C */ struct ActorPart* nextPart;
2020-08-16 05:19:00 +02:00
/* 0x10 */ struct ActorPartMovement* movement;
2020-11-27 20:38:52 +01:00
/* 0x14 */ Vec3s partOffset;
/* 0x1A */ Vec3s visualOffset;
2020-10-29 21:16:39 +01:00
/* 0x20 */ Vec3f partOffsetFloat;
/* 0x2C */ Vec3f absolutePosition;
/* 0x38 */ Vec3f rotation;
2020-11-27 20:38:52 +01:00
/* 0x44 */ Vec3s rotationPivotOffset;
/* 0x4A */ char unk_4A[2];
2020-11-28 17:51:36 +01:00
/* 0x4C */ Vec3f scale;
2020-10-29 21:16:39 +01:00
/* 0x58 */ Vec3f currentPos;
/* 0x64 */ f32 yaw;
/* 0x68 */ s16 unkOffset[2];
2020-11-27 20:38:52 +01:00
/* 0x6C */ Vec2s targetOffset;
2020-11-16 04:04:33 +01:00
/* 0x70 */ s16 unk_70;
/* 0x72 */ u8 size[2];
/* 0x74 */ u8 verticalStretch;
2021-01-17 16:41:00 +01:00
/* 0x75 */ s8 unk_75;
/* 0x76 */ s8 unk_76;
/* 0x77 */ char unk_77[1];
/* 0x78 */ u32* defenseTable;
/* 0x7C */ s32 eventFlags;
/* 0x80 */ s32 partFlags3;
2020-11-29 01:08:38 +01:00
/* 0x84 */ s32 unk_84;
/* 0x88 */ s32 currentAnimation;
2020-11-29 01:08:38 +01:00
/* 0x8C */ s32 unk_8C;
/* 0x90 */ f32 animationRate;
/* 0x94 */ u32* idleAnimations;
/* 0x98 */ s16 opacity;
/* 0x9A */ char unk_9A[2];
2020-08-16 05:19:00 +02:00
/* 0x9C */ struct Shadow* shadow;
/* 0xA0 */ f32 shadowScale;
/* 0xA4 */ s32 partTypeData[6];
/* 0xBC */ s16 actorTypeData2b[2];
2020-08-16 05:19:00 +02:00
/* 0xC0 */ struct DecorationTable* decorationTable; /* initialized to 0 */
} ActorPart; // size = 0xC4
2020-08-16 05:19:00 +02:00
typedef struct ColliderTriangle {
/* 0x00 */ f32* v1[3]; /* note: the order of v1,2,3 is reversed from the ijk in the hit file */
/* 0x04 */ f32* v2[3];
/* 0x08 */ f32* v3[3];
/* 0x0C */ f32 e13[3]; /* = v3 - v1 */
/* 0x18 */ f32 e21[3]; /* = v1 - v2 */
/* 0x24 */ f32 e32[3]; /* = v2 - v3 */
/* 0x30 */ f32 normal[3];
/* 0x3C */ s16 oneSided; /* 1 = yes, 0 = no */
/* 0x3E */ char unk_3E[2];
2020-08-16 05:19:00 +02:00
} ColliderTriangle; // size = 0x40
typedef struct StaticPartner {
/* 0x00 */ s32 dmaStart;
/* 0x04 */ s32 dmaEnd;
/* 0x08 */ s32 dmaDest;
/* 0x0C */ s32 isFlying;
/* 0x10 */ UNK_FUN_PTR(fpInit);
2020-08-16 05:23:40 +02:00
/* 0x14 */ Bytecode* spScriptA;
/* 0x18 */ Bytecode* spScriptB;
/* 0x1C */ Bytecode* spScriptC;
/* 0x20 */ Bytecode* spScriptD;
/* 0x24 */ s32 idleAnim;
/* 0x28 */ UNK_FUN_PTR(fpFuncA);
/* 0x2C */ UNK_FUN_PTR(fpFuncB);
/* 0x30 */ UNK_FUN_PTR(fpFuncC);
/* 0x34 */ UNK_FUN_PTR(fpFuncD);
/* 0x38 */ UNK_FUN_PTR(fpFuncE);
2020-08-16 05:23:40 +02:00
/* 0x3C */ Bytecode* spScriptX;
} StaticPartner; // size = 0x40
2020-08-16 05:19:00 +02:00
typedef struct FontRasterSet {
/* 0x00 */ u8 sizeX;
/* 0x01 */ u8 sizeY;
/* 0x02 */ char unk_02[10];
2020-08-16 05:19:00 +02:00
} FontRasterSet; // size = 0x0C
2020-09-06 17:53:48 +02:00
typedef s32(*TriggerHandlerFunc)(struct Trigger*);
typedef struct TriggerDefinition {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 colliderIndex;
/* 0x06 */ char unk_06[2];
/* 0x08 */ s32 flagIndex;
2020-09-06 17:53:48 +02:00
/* 0x0C */ TriggerHandlerFunc function;
/* 0x10 */ char unk_10[4];
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 inputArg3;
2020-10-19 03:20:07 +02:00
/* 0x1C */ s32 unk_1C;
2020-09-06 17:53:48 +02:00
} TriggerDefinition; // size = 0x20
2020-08-16 05:19:00 +02:00
typedef struct CollisionStatus {
/* 0x00 */ s16 pushingAgainstWall; /* FFFF = none for all below VVV */
/* 0x02 */ s16 currentFloor; /* valid on touch */
/* 0x04 */ s16 lastTouchedFloor; /* valid after jump */
/* 0x06 */ s16 floorBelow;
/* 0x08 */ s16 currentCeiling; /* valid on touching with head */
2021-01-03 10:02:50 +01:00
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s16 unk_10;
/* 0x12 */ s16 currentWall;
/* 0x14 */ s16 lastWallHammered; /* valid when smashing */
/* 0x16 */ s16 touchingWallTrigger; /* 0/1 */
/* 0x18 */ s16 bombetteExploded; /* 0 = yes, FFFF = no */
/* 0x1A */ char unk_1A[2];
/* 0x1C */ f32 bombetteExplositionPos[3];
2020-08-16 05:19:00 +02:00
} CollisionStatus; // size = 0x28
2020-08-16 05:19:00 +02:00
typedef struct DecorationTable {
/* 0x000 */ char unk_00[1729];
/* 0x6C1 */ s8 unk_6C1;
/* 0x6C2 */ char unk_6C2[11];
/* 0x6CD */ s8 unk_6CD;
/* 0x6CE */ char unk_6CE[6];
/* 0x6D4 */ s32* unk_6D4;
/* 0x6D8 */ char unk_6D8[120];
/* 0x750 */ s8 unk_750;
/* 0x751 */ s8 unk_751;
/* 0x752 */ s8 unk_752;
/* 0x753 */ char unk_753[17];
/* 0x764 */ s8 unk_764;
/* 0x765 */ s8 unk_765;
/* 0x766 */ s8 unk_766;
/* 0x767 */ s8 unk_767;
/* 0x768 */ s8 unk_768;
/* 0x769 */ char unk_769[3];
/* 0x76C */ s16 unk_76C[16];
/* 0x78C */ char unk_78C[76];
/* 0x7D8 */ s8 unk_7D8;
/* 0x7D9 */ s8 unk_7D9;
/* 0x7DA */ char unk_7DA;
/* 0x7DB */ s8 unk_7DB;
/* 0x7DC */ s16 scale[16];
/* 0x7FC */ s16 posX[16];
/* 0x81C */ s16 posY[16];
/* 0x83C */ s16 posZ[16];
/* 0x85C */ u8 rotationPivotOffsetX[16];
/* 0x86C */ u8 rotationPivotOffsetY[16];
/* 0x87C */ u8 rotX[16];
/* 0x88C */ u8 rotY[16];
/* 0x89C */ u8 rotZ[16];
/* 0x8AC */ u8 effectType; /* 0 = blur, 14 = none? */
/* 0x8AD */ char unk_8AD[3];
/* 0x8B0 */ struct Temp8025D160* unk_8B0[2];
/* 0x8B8 */ u8 decorationType[2];
2020-11-16 00:15:59 +01:00
/* 0x8BA */ u8 unk_8BA[2];
/* 0x8BC */ u8 unk_8BC[2];
/* 0x8C0 */ s16 unk_8C0[6];
/* 0x8BE */ char unk_8BE[30];
2020-08-16 05:19:00 +02:00
} DecorationTable; // size = 0x8E8
typedef struct ShopOwner {
/* 0x00 */ s32 npcID;
/* 0x04 */ s32 idleAnim;
/* 0x08 */ s32 talkAnim;
/* 0x0C */ char unk_0C[0x4];
/* 0x10 */ Bytecode* unkScript;
/* 0x14 */ char unk_14[0x4];
/* 0x18 */ s32* shopStringIDs;
} ShopOwner;
typedef struct ShopItemLocation {
/* 0x0 */ s16 posModelID;
/* 0x2 */ s16 triggerColliderID;
} ShopItemLocation; // size = 0x4
typedef struct StaticInventoryItem {
/* 0x0 */ s32 unk_00;
/* 0x4 */ s32 price;
/* 0x8 */ s32 unk_08;
} StaticInventoryItem; // size = 0xC
typedef struct StaticPriceItem {
/* 0x0 */ s32 itemID;
/* 0x4 */ s32 sellPrice;
/* 0x8 */ char unk_08[0x4];
} StaticPriceItem; // size = 0xC
typedef struct PopupMenu {
/* 0x000 */ s32* ptrIcon[32];
/* 0x080 */ char unk_80[4];
/* 0x084 */ s32 nameString[32];
/* 0x104 */ char unk_104[4];
/* 0x108 */ s32 userIndex[32]; // used to map menu order to a user-ID for each item
/* 0x188 */ char unk_188[4];
/* 0x18C */ s32 enabled[32];
/* 0x20C */ char unk_20C[4];
/* 0x210 */ s32 value[32]; // sale price, etc
/* 0x290 */ char unk_290[4];
/* 0x294 */ s32 descString[32];
/* 0x314 */ char unk_314[4];
/* 0x318 */ s32 popupType; // C = keys
/* 0x31C */ s32 unk_31C;
/* 0x320 */ s32 unk_320;
/* 0x324 */ s32 numEntries;
/* 0x328 */ s32 initialPos;
/* 0x32C */ s16 result;
/* 0x32E */ char unk_32E[0x2];
} PopupMenu; // size = 0x330
2020-08-16 05:19:00 +02:00
typedef struct Shop {
/* 0x000 */ s16 flags;
/* 0x002 */ s16 numItems;
/* 0x004 */ s16 numSpecialPrices;
/* 0x006 */ char unk_06[2];
/* 0x008 */ s32 currentItemSlot;
/* 0x00C */ s32 selectedStoreItemSlot;
/* 0x010 */ ShopOwner* owner;
/* 0x014 */ ShopItemLocation* staticItemPositions;
/* 0x018 */ StaticInventoryItem* staticInventory;
/* 0x01C */ StaticPriceItem* staticPriceList;
/* 0x020 */ s32 costIconID;
/* 0x024 */ s32 inventoryItemFlags;
/* 0x028 */ PopupMenu itemSelectMenu;
/* 0x358 */ s32 unk_358;
2020-08-16 05:19:00 +02:00
} Shop; // size = 0x35C
2020-08-16 05:19:00 +02:00
typedef struct Encounter {
/* 0x00 */ s32 count;
2020-08-16 05:19:00 +02:00
/* 0x04 */ struct Enemy* enemy[16];
/* 0x44 */ s16 battle;
/* 0x46 */ s16 stage;
/* 0x48 */ s16 encounterID;
/* 0x4A */ char unk_4C[0x12];
} Encounter; // size = 0x5C
2020-08-16 05:19:00 +02:00
typedef struct PlayerPathElement {
/* 0x00 */ char unk_00[4];
2020-10-29 21:16:39 +01:00
/* 0x04 */ Vec3f pos;
2020-08-16 05:19:00 +02:00
} PlayerPathElement; // size = 0x10
2020-08-16 05:19:00 +02:00
typedef struct AnimatedModel {
/* 0x00 */ s32 animModelID;
/* 0x04 */ Vec3f pos;
2020-10-29 21:16:39 +01:00
/* 0x10 */ Vec3f rot;
/* 0x1C */ Vec3f scale;
Assorted Morsels (#297) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen * 3, cleanup * broken * fixed! * progress * 2 * 3 and cleanup * 6 map_api funcs * 3 map api * CreateNpc * BringPartnerOut & NpcFlyTo * npc_api complete * update_scripts * 4 si bois inc si_execute_next_command * update symbol_addrs * 2 more and cleanup * camera struct & do_camera_type_0 * PR feedback * small tidying
2021-06-21 06:30:57 +02:00
/* 0x28 */ Matrix4s* mtx;
/* 0x2C */ char unk_2C[60];
/* 0x68 */ u32 currentAnimData;
/* 0x6C */ char unk_6C[4];
2020-08-16 05:19:00 +02:00
} AnimatedModel; // size = 0x70
2020-11-08 21:40:26 +01:00
typedef AnimatedModel* AnimatedModelList[MAX_ANIMATED_MODELS];
2020-08-16 05:19:00 +02:00
typedef struct CollisionHeader {
/* 0x00 */ s16 numColliders;
/* 0x02 */ char unk_02[2];
/* 0x04 */ s32 treeOffset;
/* 0x08 */ s16 numVerts;
/* 0x0A */ char unk_0A[2];
/* 0x0C */ s32 triangleTableOffset;
/* 0x10 */ s16 bbTableSize;
/* 0x12 */ char unk_12[2];
/* 0x14 */ s32 bbTableOffset;
/* 0x18 */ char unk_18[8];
2020-08-16 05:19:00 +02:00
} CollisionHeader; // size = 0x20
2020-08-16 05:19:00 +02:00
typedef struct Zone {
/* 0x00 */ s32 type;
/* 0x04 */ f32 boomLength;
/* 0x08 */ f32 boomPitch;
/* 0x0C */ f32 pos[6];
/* 0x24 */ f32 viewPitch;
/* 0x28 */ s32 flag;
2020-08-16 05:19:00 +02:00
} Zone; // size = 0x2C
typedef struct ActorMovement {
/* 0x00 */ Vec3f currentPos;
/* 0x0C */ Vec3f goalPos;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ char unk_24[24];
/* 0x3C */ f32 acceleration;
/* 0x40 */ f32 speed;
/* 0x44 */ f32 velocity;
/* 0x48 */ f32 angle;
/* 0x4C */ f32 distance;
} ActorMovement; // size = 0x50;
2020-11-20 01:41:49 +01:00
typedef struct ActorMovementWalk {
/* 0x00 */ Vec3f currentPos;
/* 0x0C */ Vec3f goalPos;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ char unk_24[24];
/* 0x3C */ f32 acceleration;
/* 0x40 */ f32 speed;
/* 0x44 */ f32 velocity;
/* 0x48 */ f32 angle;
/* 0x4C */ f32 distance;
/* 0x50 */ f32 bounceDivisor;
/* 0x54 */ char unk_54[0x4];
/* 0x58 */ s32 animJumpRise;
/* 0x5C */ s32 animJumpFall;
/* 0x60 */ s32 animJumpLand;
} ActorMovementWalk; // size = 0x64;
typedef struct Actor {
/* 0x000 */ s32 flags;
/* 0x004 */ char unk_04[4];
2020-12-29 03:17:34 +01:00
/* 0x008 */ struct ActorDesc* staticActorData;
/* 0x00C */ ActorMovementWalk walk;
/* 0x070 */ s16 moveTime;
/* 0x072 */ s16 moveArcAmplitude;
/* 0x074 */ char unk_74[3];
/* 0x077 */ u8 jumpPartIndex;
/* 0x078 */ char unk_78[16];
/* 0x088 */ s32 varTable[16];
/* 0x0C8 */ ActorMovement fly;
/* 0x118 */ f32 flyElapsed;
/* 0x11C */ char unk_11C[4];
/* 0x120 */ s16 flyTime;
/* 0x122 */ s16 flyArcAmplitude;
/* 0x124 */ char unk_124[17];
/* 0x135 */ u8 footStepCounter;
/* 0x136 */ u8 actorType;
/* 0x137 */ char unk_137;
2020-10-29 21:16:39 +01:00
/* 0x138 */ Vec3f homePos;
/* 0x144 */ Vec3f currentPos;
/* 0x150 */ Vec3s headOffset;
2020-11-29 01:08:38 +01:00
/* 0x156 */ Vec3s healthBarPosition;
2020-11-28 17:51:36 +01:00
/* 0x15C */ Vec3f rotation;
/* 0x168 */ Vec3s rotationPivotOffset;
/* 0x16E */ char unk_16E[2];
2020-11-28 17:51:36 +01:00
/* 0x170 */ Vec3f scale;
/* 0x17C */ Vec3f scaleModifier; /* multiplies normal scale factors componentwise */
/* 0x188 */ f32 scalingFactor;
/* 0x18C */ f32 yaw;
2020-11-29 01:08:38 +01:00
/* 0x190 */ Vec2bu size;
/* 0x192 */ s16 actorID;
2020-11-29 01:08:38 +01:00
/* 0x194 */ s8 unk_194;
/* 0x195 */ s8 unk_195;
/* 0x196 */ s8 unk_196;
/* 0x197 */ s8 unk_197;
/* 0x198 */ Vec2b unk_198;
2021-01-02 12:30:34 +01:00
/* 0x19A */ s8 unk_19A;
/* 0x19B */ char unk_19B[1];
/* 0x19C */ s32 actorTypeData1[6]; /* 4 = jump sound */
/* 0x1B4 */ s16 actorTypeData1b[2];
2020-11-29 01:08:38 +01:00
/* 0x1B8 */ s8 currentHP;
2020-10-27 04:31:40 +01:00
/* 0x1B9 */ s8 maxHP;
/* 0x1BA */ char unk_1BA[2];
/* 0x1BC */ u8 hpFraction; /* used to render HP bar */
/* 0x1BD */ char unk_1BD[3];
/* 0x1C0 */ Script* idleScriptSource;
/* 0x1C4 */ Script* takeTurnScriptSource;
/* 0x1C8 */ Script* onHitScriptSource;
/* 0x1CC */ Script* onTurnChanceScriptSource;
2020-08-16 07:13:03 +02:00
/* 0x1D0 */ struct ScriptInstance* idleScript;
/* 0x1D4 */ struct ScriptInstance* takeTurnScript;
/* 0x1D8 */ struct ScriptInstance* onHitScript;
/* 0x1DC */ struct ScriptInstance* onTurnChangeScript;
2020-10-20 08:33:40 +02:00
/* 0x1E0 */ ScriptID idleScriptID;
/* 0x1E4 */ ScriptID takeTurnID;
/* 0x1E8 */ ScriptID onHitID;
/* 0x1EC */ ScriptID onTurnChangeID;
2020-10-27 04:31:40 +01:00
/* 0x1F0 */ s8 lastEventType;
/* 0x1F1 */ u8 turnPriority;
/* 0x1F2 */ u8 enemyIndex; /* actorID = this | 200 */
/* 0x1F3 */ u8 numParts;
/* 0x1F4 */ struct ActorPart* partsTable;
/* 0x1F8 */ s16 lastDamageTaken;
/* 0x1FA */ s16 hpChangeCounter;
/* 0x1FC */ s16 damageCounter;
2020-11-18 04:00:47 +01:00
/* 0x1FE */ char unk_1FE[2];
/* 0x200 */ s32** unk_200; // Probably a struct but not sure what yet
/* 0x204 */ char unk_204[3];
/* 0x207 */ u8 extraCoinBonus;
2020-10-27 04:31:40 +01:00
/* 0x208 */ s8 unk_208;
/* 0x209 */ char unk_209[3];
/* 0x20C */ u32* statusTable;
2021-03-29 09:34:39 +02:00
/* 0x210 */ Status debuff;
2020-10-17 02:59:49 +02:00
/* 0x211 */ s8 debuffDuration;
/* 0x212 */ s8 staticStatus; /* 0B = yes */
/* 0x213 */ s8 staticDuration;
2020-10-16 05:07:50 +02:00
/* 0x214 */ s8 stoneStatus; /* 0C = yes */
2020-10-17 02:59:49 +02:00
/* 0x215 */ s8 stoneDuration;
/* 0x216 */ s8 koStatus; /* 0D = yes */
/* 0x217 */ s8 koDuration;
/* 0x218 */ s8 transStatus; /* 0E = yes */
/* 0x219 */ s8 transDuration;
/* 0x21A */ char unk_21A[2];
/* 0x21C */ u8 status;
/* 0x21D */ char unk_21D[3];
/* 0x220 */ s8 isGlowing;
/* 0x221 */ u8 attackBoost;
2020-10-17 00:23:52 +02:00
/* 0x222 */ s8 defenseBoost;
/* 0x223 */ u8 chillOutAmount; /* attack reduction */
/* 0x224 */ u8 chillOutTurns;
/* 0x225 */ char unk_225[7];
2020-08-16 05:19:00 +02:00
/* 0x22C */ struct SelectableTarget targetData[24];
2020-11-19 04:17:41 +01:00
/* 0x40C */ s8 targetListLength;
2020-11-20 01:41:49 +01:00
/* 0x40D */ s8 targetIndexList[24]; /* into targetData */
2021-01-03 10:34:04 +01:00
/* 0x425 */ s8 selectedTargetIndex; /* into target index list */
2020-11-19 04:17:41 +01:00
/* 0x426 */ s8 targetPartIndex;
/* 0x427 */ char unk_427;
/* 0x428 */ s16 targetActorID;
/* 0x42A */ char unk_42A[2];
2020-08-16 05:19:00 +02:00
/* 0x42C */ struct Shadow* shadow; /* might be shadow ID */
/* 0x430 */ f32 shadowScale; /* = actor size / 24.0 */
/* 0x434 */ s16 renderMode; /* initially 0xD, set to 0x22 if any part is transparent */
2020-10-17 00:23:52 +02:00
/* 0x436 */ s16 unk_436;
/* 0x438 */ s32 x[2]; /* ??? see FUN_80253974 */
/* 0x440 */ struct HudElement* ptrDefuffIcon;
} Actor; // size = 0x444
2020-08-16 05:19:00 +02:00
typedef struct TileDescriptor {
/* 0x00 */ s8 name[32];
/* 0x20 */ s16 auxW;
/* 0x22 */ s16 mainW;
/* 0x24 */ s16 auxH;
/* 0x26 */ s16 mainH;
/* 0x28 */ char unk_28;
/* 0x29 */ u8 extraTiles;
/* 0x2A */ u8 colorCombine;
/* 0x2B */ u8 fmt;
/* 0x2C */ u8 bitDepth;
/* 0x2D */ u8 wrapH;
/* 0x2E */ u8 wrapV;
/* 0x2F */ u8 filtering;
2020-08-16 05:19:00 +02:00
} TileDescriptor; // size = 0x30
2020-08-16 05:19:00 +02:00
typedef struct BackgroundHeader {
2021-02-06 23:26:35 +01:00
/* 0x00 */ void* raster;
/* 0x04 */ void* palette;
2020-08-14 23:46:53 +02:00
/* 0x08 */ u16 startX;
/* 0x0A */ u16 startY;
/* 0x0C */ u16 width;
/* 0x0E */ u16 height;
2020-08-16 05:19:00 +02:00
} BackgroundHeader; // size = 0x10
2020-08-14 23:46:53 +02:00
2020-08-16 05:19:00 +02:00
typedef struct FontData {
/* 0x00 */ char unk_00[24];
2020-08-16 05:19:00 +02:00
} FontData; // size = 0x18
2020-08-16 05:19:00 +02:00
typedef struct Crash {
/* 0x000 */ char unk_00[20];
/* 0x014 */ s32 threadID;
/* 0x018 */ char unk_18[12];
/* 0x024 */ s64 AT;
/* 0x02C */ s64 V0;
/* 0x034 */ s64 V1;
/* 0x03C */ s64 A0;
/* 0x044 */ s64 A1;
/* 0x04C */ s64 A2;
/* 0x054 */ s64 A3;
/* 0x05C */ char unk_5C[16];
/* 0x06C */ s32 T2;
/* 0x070 */ char unk_70[168];
/* 0x118 */ s32 SR;
/* 0x11C */ s32 PC;
/* 0x120 */ s32 interrupt;
/* 0x124 */ s32 VA;
/* 0x128 */ char unk_128[208];
2020-08-16 05:19:00 +02:00
} Crash; // size = 0x1F8
2020-08-16 05:19:00 +02:00
typedef struct PlayerStatus {
/* 0x000 */ s32 flags;
/* 0x004 */ u32 animFlags;
/* 0x008 */ s16 framesOnGround; /* Number of frames since last jump landed */
/* 0x00A */ char unk_0A[2];
/* 0x00C */ s8 peachDisguise;
/* 0x00D */ s8 unk_0D;
/* 0x00E */ u8 alpha1;
/* 0x00F */ u8 alpha2;
/* 0x010 */ s16 unk_10;
/* 0x012 */ s16 moveFrames;
2020-09-25 23:18:09 +02:00
/* 0x014 */ s8 enableCollisionOverlapsCheck;
/* 0x015 */ s8 statusMenuCounterinputEnabledCounter; /* whether the C-up menu can appear */
2020-10-03 22:04:49 +02:00
/* 0x016 */ Vec3s lastGoodPosition;
2020-10-29 21:16:39 +01:00
/* 0x01C */ Vec3f extraVelocity;
/* 0x028 */ Vec3f position;
/* 0x034 */ char unk_34[16];
/* 0x044 */ f32 decorationPos[2];
/* 0x04C */ char unk_4C[4];
/* 0x050 */ f32 jumpApexHeight;
2020-08-20 20:26:34 +02:00
/* 0x054 */ f32 currentSpeed;
/* 0x058 */ f32 walkSpeed;
/* 0x05C */ f32 runSpeed;
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
/* 0x060 */ s32 unk_60;
/* 0x064 */ f32 unk_64;
/* 0x068 */ f32 normalPitch;
/* 0x06C */ f32 unk_6C;
/* 0x070 */ f32 gravityIntegrator[4];
/* 0x080 */ f32 targetYaw;
/* 0x084 */ f32 currentYaw;
/* 0x088 */ f32 unk_88;
/* 0x08C */ f32 unk_8C;
/* 0x090 */ f32 unk_90;
/* 0x094 */ s32 unk_94;
/* 0x098 */ s32 unk_98;
/* 0x09C */ s32 unk_9C;
/* 0x0A0 */ f32 heading;
/* 0x0A4 */ s32 trueAnimation; ///< Encoding back-facing sprite
/* 0x0A8 */ f32 spriteFacingAngle; /* angle of sprite, relative to camera, from 0 to 180 */
/* 0x0AC */ char unk_AC[4];
/* 0x0B0 */ s16 colliderHeight;
/* 0x0B2 */ s16 colliderDiameter;
/* 0x0B4 */ s8 actionState;
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
/* 0x0B5 */ s8 prevActionState;
/* 0x0B6 */ s8 fallState; ///< Also used as sleep state in Peach idle action
/* 0x0B7 */ char unk_B7;
/* 0x0B8 */ s32 anim;
/* 0x0BC */ u16 unk_BC;
/* 0x0BE */ s8 renderMode;
2020-09-18 22:07:15 +02:00
/* 0x0BF */ s8 unk_BF;
Various meta work and some decomp (#184) * some * DeadUnkTexturePanFunc * DeadUnkTexturePanFunc2 * move guOrthoF to os * up * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "ae2cce951d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "ae2cce951d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Updating bin dir * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "5517f520e4" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "5517f520e4" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "fe48dc3b3a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "fe48dc3b3a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * revert garbage * :OK: * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "8c86e4b95b" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "8c86e4b95b" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * data migration * 3 * .rodata migration and a buncha funcs * 2 mo * some decomp, a file boundary fix * cleanup * UnkNpaAIFunc13s * Update symbol_addrs * remove sublist * deleted asm * data fix * fix data * wtf?! * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "88ce6b44a6" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "88ce6b44a6" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * symbol_addrs update * blah * PR comments
2021-02-16 11:32:34 +01:00
/* 0x0C0 */ s16 decorationList;
/* 0x0C2 */ s16 unk_C2;
/* 0x0C4 */ char unk_C4;
/* 0x0C5 */ s8 unk_C5;
2020-11-23 19:48:34 +01:00
/* 0x0C6 */ s16 unk_C6;
2020-12-22 15:58:31 +01:00
/* 0x0C8 */ s32* unk_C8;
/* 0x0CC */ s32 shadowID;
2020-09-18 22:07:15 +02:00
/* 0x0D0 */ char unk_D0[8];
/* 0x0D8 */ UNK_PTR** unk_D8;
/* 0x0DC */ s32 currentButtons;
/* 0x0E0 */ s32 pressedButtons;
/* 0x0E4 */ s32 heldButtons;
2020-10-05 22:04:33 +02:00
/* 0x0E8 */ s32 stickAxis[2];
/* 0x0F0 */ s32 currentButtonsBuffer[10];
/* 0x118 */ s32 pressedButtonsBuffer[10];
/* 0x140 */ s32 heldButtonsBuffer[10];
Various meta work and some decomp (#184) * some * DeadUnkTexturePanFunc * DeadUnkTexturePanFunc2 * move guOrthoF to os * up * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "ae2cce951d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "ae2cce951d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Updating bin dir * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "5517f520e4" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "5517f520e4" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "fe48dc3b3a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "fe48dc3b3a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * revert garbage * :OK: * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "8c86e4b95b" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "8c86e4b95b" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * data migration * 3 * .rodata migration and a buncha funcs * 2 mo * some decomp, a file boundary fix * cleanup * UnkNpaAIFunc13s * Update symbol_addrs * remove sublist * deleted asm * data fix * fix data * wtf?! * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "88ce6b44a6" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "88ce6b44a6" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * symbol_addrs update * blah * PR comments
2021-02-16 11:32:34 +01:00
/* 0x168 */ s32 stickXBuffer[10];
/* 0x190 */ s32 stickYBuffer[10];
/* 0x1B8 */ s32 inputBufPos;
/* 0x1BC */ char unk_1BC[204];
2020-08-16 05:19:00 +02:00
} PlayerStatus; // size = 0x288
2020-08-09 04:17:37 +02:00
2020-08-16 05:19:00 +02:00
typedef struct AnimatedModelNode {
/* 0x00 */ u32* displayList;
/* 0x04 */ s16 rot[3]; /* range = -180,180 */
/* 0x0A */ char unk_0A[34];
2020-08-16 05:19:00 +02:00
} AnimatedModelNode; // size = 0x2C
2020-08-10 07:03:56 +02:00
2020-08-16 05:19:00 +02:00
typedef struct EncounterStatus {
/* 0x000 */ s32 flags;
/* 0x004 */ u8 eFirstStrike; /* 0 = none, 1 = player, 2 = enemy */
/* 0x005 */ s8 hitType; /* 1 = none/enemy, 2 = jump */
/* 0x006 */ s8 hitTier; /* 0 = normal, 1 = super, 2 = ultra */
/* 0x007 */ char unk_07;
/* 0x008 */ s8 unk_08;
/* 0x009 */ s8 battleOutcome; /* 0 = won, 1 = lost */
/* 0x00A */ s8 unk_0A;
/* 0x00B */ s8 merleeCoinBonus; /* triple coins when != 0 */
/* 0x00C */ u8 damageTaken; /* valid after battle */
/* 0x00D */ char unk_0D;
/* 0x00E */ s16 coinsEarned; /* valid after battle */
/* 0x010 */ char unk_10;
/* 0x011 */ u8 allowFleeing;
/* 0x012 */ s8 unk_12;
/* 0x013 */ u8 dropWhackaBump;
/* 0x014 */ s32 songID;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s8 numEncounters; /* number of encounters for current map (in list) */
/* 0x01D */ s8 currentAreaIndex;
/* 0x01E */ u8 currentMapIndex;
/* 0x01F */ u8 currentEntryIndex;
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
/* 0x020 */ s8 mapID;
/* 0x021 */ s8 resetMapEncounterFlags;
/* 0x021 */ char unk_22[2];
/* 0x024 */ s32* npcGroupList;
/* 0x028 */ struct Encounter* encounterList[24];
/* 0x088 */ struct Encounter* currentEncounter;
/* 0x08C */ struct Enemy* currentEnemy;
/* 0x090 */ s32 fadeOutAmount;
/* 0x094 */ s32 unk_94;
/* 0x098 */ s32 fadeOutAccel;
/* 0x09C */ s32 battleStartCountdown;
/* 0x0A0 */ char unk_A0[16];
/* 0x0B0 */ s32 defeatFlags[60][12];
/* 0xFB0 */ s16 recentMaps[2];
/* 0xFB4 */ char unk_FB4[4];
} EncounterStatus; // size = 0xFB8
2020-08-13 07:03:47 +02:00
2020-09-19 17:16:02 +02:00
typedef struct SaveData {
/* 0x0000 */ char magicString[16]; /* "Mario Story 006" string */
/* 0x0010 */ s8 pad[32]; /* always zero */
/* 0x0030 */ s32 crc1;
/* 0x0034 */ s32 crc2;
/* 0x0038 */ s32 saveSlot;
/* 0x003C */ u32 saveCount;
/* 0x0040 */ PlayerData player;
2020-09-19 17:16:02 +02:00
/* 0x0380 */ char unk_380[0xE0];
/* 0x0460 */ s32 starPoints;
/* 0x0464 */ char unk_464[4];
/* 0x0468 */ s16 areaID;
/* 0x046A */ s16 mapID;
/* 0x046C */ s16 entryID;
/* 0x046E */ char unk_46E[2];
/* 0x0470 */ s32 enemyDefeatFlags[720];
2020-09-22 02:56:17 +02:00
/* 0x0FB0 */ s32 globalFlags[64];
2020-09-19 17:16:02 +02:00
/* 0x10B0 */ s8 globalBytes[512];
/* 0x12B0 */ s32 areaFlags[8];
/* 0x12D0 */ s8 areaBytes[16];
/* 0x12E0 */ char unk_12E0[6];
/* 0x12E6 */ Vec3s savePos;
2020-09-19 17:16:02 +02:00
/* 0x12EC */ s32 unk_12EC;
/* 0x12F0 */ s8 unk_12F0[12]; /* player name starts at 4th char */
/* 0x12FC */ s32 unk_12FC;
/* 0x1300 */ s32 unk_1300;
/* 0x1304 */ char unk_1304[0x7C];
} SaveData; // size = 0x1380
2020-10-29 21:16:39 +01:00
typedef struct {
/* 0x00 */ s32 numVectors;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec3f* staticVectorList;
/* 0x0C */ Vec3f* vectors;
/* 0x10 */ s32 timeElapsed;
/* 0x14 */ s32 timeLeft;
/* 0x18 */ s32 easingType;
} Path; // size = 0x1C
2020-11-10 05:23:01 +01:00
typedef struct {
/* 0x00 */ s8 enabled;
2020-11-10 21:21:37 +01:00
/* 0x01 */ u8 listStart;
2020-11-10 06:08:44 +01:00
/* 0x02 */ u8 numCols;
2020-11-12 06:18:35 +01:00
/* 0x03 */ u8 numRows;
2020-11-10 05:23:01 +01:00
/* 0x04 */ s32 startIndex;
/* 0x08 */ s32 count;
} PauseItemPage; // size = 0xC
2020-11-10 16:11:43 +01:00
typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ char unk_04[4];
2020-11-10 16:11:43 +01:00
/* 0x08 */ s8* unk_08;
/* 0x0C */ void* fpInit;
/* 0x10 */ void* fpHandleInput;
/* 0x14 */ void* fpUpdate;
/* 0x18 */ void* fpCleanup;
} MenuTab; // size = 0x1C
2020-11-12 19:38:17 +01:00
typedef struct {
/* 0x00 */ s8 flags;
/* 0x01 */ char unk_01;
2020-11-13 01:27:57 +01:00
/* 0x02 */ s8 unk_02; // related to heirarchy somehow - sibling? group?
2020-11-12 19:38:17 +01:00
/* 0x03 */ s8 parent; // ?
/* 0x04 */ s32 unk_04;
/* 0x08 */ UNK_PTR unk_08;
/* 0x0C */ s16 posX;
/* 0x0E */ s16 posY;
/* 0x10 */ s16 width;
/* 0x12 */ s16 height;
/* 0x14 */ UNK_PTR fpDrawContents;
/* 0x18 */ s32 unk_18; // MenuTab pointer for pause menu tabs
/* 0x1C */ u8 unk_1C;
2020-11-12 19:38:17 +01:00
/* 0x1D */ char unk_1D[3];
} UIPanel; // size = 0x20
// BEGIN ENTITY-SPECIFIC STRUCTS
2021-01-15 18:01:44 +01:00
typedef struct struct802E2BA4 {
/* 0x00 */ char unk_00[2];
/* 0x02 */ u16 unk_02[24][2];
} struct802E2BA4;
Splat refactor (#257) * all non-world rodata migrated * data disasm * kinda working * updated yaml * bloop * linker header * configure 2.0 * bin * mass rename to remove code_ * pause rename * battle partner stuff * whew * more renames * more renames * more renaming * it builds! * updates * remove main prefix * one more thing * crc, yay0 * .data, .rodata, .bss * img * dead_atan2 * it buildsgit add -A * split battle/partner/6FAD10 * rm &s on sleepy_sheep syms * sha1sum ninja rule description * OK but commented out PaperMarioMapFS and PaperMarioNpcSprites * uncomment * fix mapfs * match func_8003CFB4 * . * clean up and name npc_iter_no_op * npc.c * enable cc warnings * name npc_find_near * use singular options.asset_path * smores * cc_dsl only when needed * kinda fix configure for splat refactor2 * ok! * new msg format * remove old msg format docs * slight bug fixes, splat adjustment * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "cfc140bb76" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "cfc140bb76" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "85349befcd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "85349befcd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Update symbol addrs * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "a44631e194" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "a44631e194" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-04-13 09:47:52 +02:00
// from 102c80, size unknown.
2021-01-12 20:45:50 +01:00
typedef struct struct802E1400 {
/* 0x000 */ Vec3f unk_00;
/* 0x00C */ char unk_0C[4];
/* 0x010 */ s8 unk_10;
/* 0x011 */ s8 unk_11;
/* 0x014 */ Vec3f unk_14;
/* 0x020 */ u16 unk_20;
/* 0x022 */ s16 unk_22;
2021-01-15 18:01:44 +01:00
/* 0x024 */ s16 unk_24;
2021-01-12 20:45:50 +01:00
/* 0x028 */ Entity* attachedEntity;
2021-01-15 18:01:44 +01:00
/* 0x02C */ char unk_2C[8];
/* 0x034 */ struct802E2BA4* unk_34;
2021-01-12 20:45:50 +01:00
/* 0x038 */ f32 unk_38;
2021-01-15 18:01:44 +01:00
/* 0x03C */ union {
2021-01-15 18:18:27 +01:00
/* */ s16 s;
/* */ s8 b[2];
} unk_3C;
2021-01-15 18:01:44 +01:00
/* 0x03E */ char unk_3E[0x4D];
/* 0x08B */ u8 unk_8B[24];
/* 0x0A3 */ char unk_A3; // padding?
/* 0x0A4 */ u8 unk_A4[24];
/* 0x0BC */ char unk_BC[4];
/* 0x0C0 */ f32 unk_C0[24];
/* 0x120 */ char unk_120[4];
/* 0x124 */ f32 unk_124[24];
/* 0x184 */ char unk_184[4];
/* 0x188 */ f32 unk_188[24];
2021-01-12 20:45:50 +01:00
} struct802E1400;
Splat refactor (#257) * all non-world rodata migrated * data disasm * kinda working * updated yaml * bloop * linker header * configure 2.0 * bin * mass rename to remove code_ * pause rename * battle partner stuff * whew * more renames * more renames * more renaming * it builds! * updates * remove main prefix * one more thing * crc, yay0 * .data, .rodata, .bss * img * dead_atan2 * it buildsgit add -A * split battle/partner/6FAD10 * rm &s on sleepy_sheep syms * sha1sum ninja rule description * OK but commented out PaperMarioMapFS and PaperMarioNpcSprites * uncomment * fix mapfs * match func_8003CFB4 * . * clean up and name npc_iter_no_op * npc.c * enable cc warnings * name npc_find_near * use singular options.asset_path * smores * cc_dsl only when needed * kinda fix configure for splat refactor2 * ok! * new msg format * remove old msg format docs * slight bug fixes, splat adjustment * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "cfc140bb76" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "cfc140bb76" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "85349befcd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "85349befcd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Update symbol addrs * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "a44631e194" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "a44631e194" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-04-13 09:47:52 +02:00
// from 104940_len_dc0, size unknown
// appears to belong to the hammer blocks(?)
typedef struct struct802E3650 {
2020-11-21 10:28:02 +01:00
/* 0x000 */ u8 unk_00;
/* 0x001 */ char unk_01[2];
/* 0x003 */ s8 unk_03;
/* 0x004 */ s16 unk_04;
/* 0x006 */ s16 unk_06;
/* 0x008 */ char unk_08[2];
/* 0x00A */ u16 unk_0A;
/* 0x00C */ char unk_0C[2];
/* 0x00E */ s16 unk_0E;
/* 0x010 */ s16 unk_10;
/* 0x012 */ s16 unk_12;
/* 0x014 */ f32 unk_14;
/* 0x018 */ f32 unk_18;
/* 0x01C */ char unk_1C[0x10C];
/* 0x128 */ UNK_PTR unk_128;
/* 0x12C */ UNK_PTR unk_12C;
} struct802E3650;
2020-11-21 10:28:02 +01:00
// size unknown
typedef struct struct802E4B10 {
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
2020-11-23 08:52:10 +01:00
/* 0x02 */ s8 unk_02;
/* 0x03 */ char unk_03[6];
2020-11-21 10:28:02 +01:00
/* 0x09 */ u8 unk_09;
/* 0x0A */ u8 unk_0A;
/* 0x0B */ char unk_0B; // padding?
/* 0x0C */ s32 unk_0C;
/* 0x10 */ s32 unk_10;
2020-11-23 08:52:10 +01:00
/* 0x14 */ char unk_14[0xBC];
/* 0xD0 */ u16 unk_D0;
/* 0xD4 */ f32 unk_D4[0];
2020-11-21 10:28:02 +01:00
} struct802E4B10;
// END ENTITY-SPECIFIC STRUCTS
2021-01-11 04:52:08 +01:00
typedef struct {
/* 0x00000 */ LookAt lookAt[2];
2021-01-11 04:52:08 +01:00
/* 0x00030 */ Matrix4s camPerspMatrix[8]; // could only be length 4, unsure
/* 0x00230 */ Gfx mainGfx[0x2080];
/* 0x10630 */ Gfx backgroundGfx[0x200]; // used by gfx_task_background
2021-01-11 04:52:08 +01:00
/* 0x11630 */ Matrix4s matrixStack[0x200];
} DisplayContext; // size = 0x19630
typedef struct Temp8010F250 {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ char unk_02[5];
/* 0x07 */ s8 unk_07;
/* 0x08 */ s32 unk_08;
/* 0x0C */ s32 unk_0C;
/* 0x10 */ char unk_10[0x20];
/* 0x30 */ SoundID unk_30;
} Temp8010F250; // size = 0x34
typedef struct Temp8010EBB0 {
/* 0x000 */ s8 unk_00;
/* 0x001 */ s8 unk_01;
/* 0x002 */ s8 unk_02;
/* 0x003 */ s8 unk_03;
/* 0x004 */ char unk_04[0x4];
/* 0x008 */ s32 unk_08;
/* 0x009 */ s32 unk_0C;
/* 0x010 */ char unk_10[0x4];
/* 0x014 */ s8 unk_14;
/* 0x015 */ char unk_15[0x343];
/* 0x358 */ s32 unk_358;
/* 0x35C */ char unk_35C[0x4];
} Temp8010EBB0; // size = 0x360
typedef struct Temp8025D160 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ char unk_04[8];
/* 0x0C */ struct Temp8025D160_2* unk_0C;
} Temp8025D160; // size = 0x10 (?)
typedef struct Temp8025D160_2 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ char unk_10[12];
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ char unk_24[8];
/* 0x2C */ s32 unk_2C;
} Temp8025D160_2; // size = 0x30 (?)
typedef struct EntityModel {
/* 0x00 */ s32 flags;
/* 0x04 */ u8 renderMode;
/* 0x05 */ u8 unk_05;
/* 0x06 */ u8 unk_06;
/* 0x07 */ u8 unk_07;
/* 0x08 */ f32 nextFrameTime; ///< Set to 1.0 after each update
/* 0x0C */ f32 timeScale; ///< Default is 1.0
/* 0x10 */ s32* cmdListReadPos;
/* 0x14 */ Gfx* displayList;
/* 0x18 */ Matrix4s transform;
/* 0x58 */ s32* cmdListSavedPos;
/* 0x5C */ Vtx* vertexArray;
/* 0x60 */ UNK_FUN_PTR(fpSetupGfxCallback);
/* 0x64 */ s32 setupGfxCallbackArg0;
} EntityModel; // size = 0x68
typedef EntityModel* EntityModelList[MAX_ENTITY_MODELS];
Most of player_api and 18F340 (#296) * bss * 3 audios * d5a50 stuff * some icon funcs * get_icon_render_pos * PlayerLandJump * func_80248170 * cleanup * splat update prep * git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "81c4b35b89" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "81c4b35b89" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "9b791a654a" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "9b791a654a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2cf2a5e5d8" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2cf2a5e5d8" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * fix loop in PaperMarioNpcSprites * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "2fab217750" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "2fab217750" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * add sha1 to yaml * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "426b08200d" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "426b08200d" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * varTable -> union :( + player_api funcs * 6 more * 4 more * 5 mo * 1 mo * 1 mo 2 * 5 mo * player_jump * 3 mo * some 18F340 * 6 more * 6 mo * nm * 1 * 1 more * some PR feedback * symbol addr update * UnsetCamera0Flag1000 * SetPlayerSpriteSet2 * action 18 * encounter + a smol hammer * git subrepo pull (merge) tools/splat subrepo: subdir: "tools/splat" merged: "8cf482fe57" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "4c0a93eaed" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * 3 and cleanup * undo yucky union * PR comments * get_enemy_safe * cleanup * move VirtualEntity * attempt to fix doxygen
2021-06-16 11:52:15 +02:00
typedef struct VirtualEntity {
/* 0x00 */ s32 entityModelIndex;
/* 0x04 */ Vec3f pos;
/* 0x10 */ Vec3f rot;
/* 0x1C */ Vec3f scale;
/* 0x28 */ Vec3f goalPos;
/* 0x34 */ f32 moveDist;
/* 0x38 */ f32 moveAngle;
/* 0x3C */ f32 moveSpeed;
/* 0x40 */ f32 jumpGravity;
/* 0x44 */ f32 jumpVelocity;
/* 0x48 */ f32 moveTime;
} VirtualEntity; // size = 0x4C
typedef VirtualEntity* VirtualEntityList[0x40];
typedef struct TempSetZoneEnabled {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 id1;
/* 0x06 */ s16 id2;
/* 0x08 */ char unk_08[0x8];
/* 0x10 */ s32 unk_10;
/* 0x14 */ char unk_14[0x8];
} TempSetZoneEnabled; // size = 0x1C
2020-07-18 02:47:33 +02:00
#endif