tmc/include/enemy/gyorg.h

95 lines
1.8 KiB
C

#ifndef ENEMY_GYORG_H
#define ENEMY_GYORG_H
#include "enemy.h"
typedef struct {
Entity base;
u8 unk_68[0x8];
u16 childrenSpawnTimer;
u8 unk_72[0x6];
u8 eyesVulnerable; /**< bitset of eyes currently vulnerable */
u8 unk_79;
u16 eyeTimer;
u8 eyesHitFrame; /**< bitset of eyes hit this frame */
u8 eyesHit; /**< bitset buffer of eyes hit */
u8 unk_7e[1];
u8 unk_7f;
u8 unk_80;
u8 unk_81[1];
u8 damageTakenCycle; /**< damage taken this cycle */
u8 unk_83[5];
} GyorgFemaleEntity;
typedef struct {
Entity base;
u8 unk_68[0x20];
} GyorgFemaleEyeEntity;
typedef struct {
Entity base;
u8 filler[0x20];
} GyorgFemaleMouthEntity;
typedef struct {
Entity base;
u8 unk_68[0x8];
u16 unk_70;
u16 unk_72;
u16 unk_74;
u16 unk_76;
u16 unk_78;
u16 unk_7a;
u8 unk_7c;
u8 unk_7d;
u16 unk_7e;
u16 unk_80;
u16 unk_82;
u16 unk_84;
u16 unk_86;
} GyorgMaleEntity;
typedef struct {
Entity base;
u8 unk_68[0xC];
s16 attackOffsetX;
s16 attackOffsetY;
s16 attackSpeed;
u8 attackDirection;
u8 unk_7b;
u8 unk_7c[0xC];
} GyorgChildEntity;
typedef struct {
Entity base;
u8 unk_68[4];
u16 unk_6c;
u16 timer;
u16 unk_70;
u16 unk_72;
u8 unk_74;
u8 unk_75;
u16 unk_76;
u16 unk_78;
u8 unk_7a;
u8 unk_7b;
u16 unk_7c;
u8 unk_7e[0xa];
} GyorgBossObjectEntity;
typedef struct {
GyorgBossObjectEntity* boss;
GyorgFemaleEntity* female;
GyorgMaleEntity* male1;
GyorgMaleEntity* male2;
GyorgFemaleMouthEntity* mouth;
GenericEntity* tail;
void* unk_18[0x8];
Coords reflectFxPos;
u8 unk_3c;
} GyorgHeap;
extern void GyorgBossObject_SpawnChildren(u32 unk0, bool32 fromBlue, u32 animationState);
#endif