mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-08-13 17:03:47 -04:00
39cc86c260
subrepo: subdir: "soh" merged: "ba904bbd0" upstream: origin: "https://github.com/HarbourMasters/soh.git" branch: "master" commit: "ba904bbd0" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
46 lines
2.3 KiB
C
46 lines
2.3 KiB
C
#ifndef Z_DEMO_GJ_H
|
|
#define Z_DEMO_GJ_H
|
|
|
|
#include "ultra64.h"
|
|
#include "global.h"
|
|
|
|
#include "overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.h"
|
|
|
|
struct DemoGj;
|
|
|
|
typedef struct DemoGj {
|
|
/* 0x0000 */ DynaPolyActor dyna;
|
|
/* 0x0164 */ s32 updateMode;
|
|
/* 0x0168 */ s32 drawConfig;
|
|
/* 0x016C */ Vec3s rotationVec;
|
|
/* 0x0172 */ Vec3s unk_172; // It is assigned only. @see DemoGj_SetupTranslation and @see DemoGj_SetupMovement
|
|
/* 0x0178 */ BossGanon2* ganon;
|
|
/* 0x017C */ s32 isTransformedIntoGanon; // flag
|
|
/* 0x0180 */ s32 isRotated; // flag
|
|
/* 0x0184 */ ColliderCylinder cylinders[3];
|
|
/* 0x0268 */ s32 killFlag; // This actor never sets this flag, but it reads it. If set to `true` and the actor type is DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_1, DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_2 or DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_TALL, then the actor will be killed and will drop the specified amount of collectibles.
|
|
/* 0x026C */ Vec3f unk_26C; // This actor never sets this. Specifies which direction will this actor explode when killed using `killFlag`.
|
|
} DemoGj; // size = 0x0278
|
|
|
|
/**
|
|
* The format of this actor's params is the following:
|
|
* bits 11-15: The collectible that will be dropped when killed.
|
|
* bits 8-10: The amount of collectible that will be dropped when killed.
|
|
* bits 0- 7: A value of the enum DemoGjType.
|
|
*/
|
|
typedef enum {
|
|
/* 04 */ DEMOGJ_TYPE_AROUNDARENA = 4, // This is the indestructible rubble around the arena. This actor keeps alive the whole fight.
|
|
/* 08 */ DEMOGJ_TYPE_RUBBLE_PILE_1 = 8, // DEMOGJ_TYPE_RUBBLE_PILE_X are the rubbles from where Ganondorf rises. When he transforms into Ganon these are removed from the scene (Actor_Kill).
|
|
/* 09 */ DEMOGJ_TYPE_RUBBLE_PILE_2,
|
|
/* 10 */ DEMOGJ_TYPE_RUBBLE_PILE_3,
|
|
/* 11 */ DEMOGJ_TYPE_RUBBLE_PILE_4,
|
|
/* 12 */ DEMOGJ_TYPE_RUBBLE_PILE_5,
|
|
/* 13 */ DEMOGJ_TYPE_RUBBLE_PILE_6,
|
|
/* 14 */ DEMOGJ_TYPE_RUBBLE_PILE_7,
|
|
/* 16 */ DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_1 = 16, // This three rubbles are the ones that Ganon can destroy and drop collectables.
|
|
/* 17 */ DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_2, // They are spawned as soon as the others, but they have collision and are rendered only when Ganondorf has transformed into Ganon.
|
|
/* 22 */ DEMOGJ_TYPE_DESTRUCTABLE_RUBBLE_TALL = 22 //
|
|
} DemoGjType;
|
|
|
|
#endif
|