mirror of https://github.com/zeldaret/tmc.git
230 lines
6.2 KiB
C
230 lines
6.2 KiB
C
#ifndef ENEMY_H
|
|
#define ENEMY_H
|
|
|
|
#include "global.h"
|
|
#include "asm.h"
|
|
|
|
#include "audio.h"
|
|
#include "effects.h"
|
|
#include "flags.h"
|
|
#include "utils.h"
|
|
|
|
#include "entity.h"
|
|
|
|
extern u32 GetNextFunction(Entity*);
|
|
extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*));
|
|
extern void sub_08001324(Entity*);
|
|
|
|
extern Entity* sub_0804A9FC(Entity*, u32);
|
|
|
|
typedef enum {
|
|
/*0x00*/ OCTOROK,
|
|
/*0x01*/ CHUCHU,
|
|
/*0x02*/ LEEVER,
|
|
/*0x03*/ PEAHAT,
|
|
/*0x04*/ ROLLOBITE,
|
|
/*0x05*/ DARK_NUT,
|
|
/*0x06*/ HANGING_SEED,
|
|
/*0x07*/ BEETLE,
|
|
/*0x08*/ KEESE,
|
|
/*0x09*/ DOOR_MIMIC,
|
|
/*0x0a*/ ROCK_CHUCHU,
|
|
/*0x0b*/ SPINY_CHUCHU,
|
|
/*0x0c*/ CUCCO_CHICK_AGGR,
|
|
/*0x0d*/ MOLDORM,
|
|
/*0x0e*/ ENEMY_E,
|
|
/*0x0f*/ MOLDWORM,
|
|
/*0x10*/ SLUGGULA,
|
|
/*0x11*/ PESTO,
|
|
/*0x12*/ PUFFSTOOL,
|
|
/*0x13*/ CHUCHU_BOSS,
|
|
/*0x14*/ LIKE_LIKE,
|
|
/*0x15*/ SPEAR_MOBLIN,
|
|
/*0x16*/ BUSINESS_SCRUB,
|
|
/*0x17*/ RUPEE_LIKE,
|
|
/*0x18*/ MADDERPILLAR,
|
|
/*0x19*/ WATER_DROP,
|
|
/*0x1a*/ WALL_MASTER,
|
|
/*0x1b*/ BOMB_PEAHAT,
|
|
/*0x1c*/ SPARK,
|
|
/*0x1d*/ CHASER,
|
|
/*0x1e*/ SPIKED_BEETLE,
|
|
/*0x1f*/ SENSOR_BLADE_TRAP,
|
|
/*0x20*/ HELMASAUR,
|
|
/*0x21*/ FALLING_BOULDER,
|
|
/*0x22*/ BOBOMB,
|
|
/*0x23*/ WALL_MASTER_2,
|
|
/*0x24*/ GLEEROCK,
|
|
/*0x25*/ VAATI_EYES_MACRO,
|
|
/*0x26*/ TEKTITE,
|
|
/*0x27*/ WIZZROBE_WIND,
|
|
/*0x28*/ WIZZROBE_FIRE,
|
|
/*0x29*/ WIZZROBE_ICE,
|
|
/*0x2a*/ ARMOS,
|
|
/*0x2b*/ EYEGORE,
|
|
/*0x2c*/ ROPE,
|
|
/*0x2d*/ SMALL_PESTO,
|
|
/*0x2e*/ ACRO_BANDIT,
|
|
/*0x2f*/ BLADE_TRAP,
|
|
/*0x30*/ KEATON,
|
|
/*0x31*/ CROW,
|
|
/*0x32*/ MULLDOZER,
|
|
/*0x33*/ BOMBAROSSA,
|
|
/*0x34*/ WISP,
|
|
/*0x35*/ SPINY_BEETLE,
|
|
/*0x36*/ MAZAAL_HEAD,
|
|
/*0x37*/ MAZAAL_MACRO,
|
|
/*0x38*/ MAZAAL_HAND,
|
|
/*0x39*/ OCTOROK_BOSS,
|
|
/*0x3a*/ FLYING_POT,
|
|
/*0x3b*/ GOBDO,
|
|
/*0x3c*/ OCTOROK_GOLDEN,
|
|
/*0x3d*/ TEKTITE_GOLDEN,
|
|
/*0x3e*/ ROPE_GOLDEN,
|
|
/*0x3f*/ CLOUD_PIRANHA,
|
|
/*0x40*/ SCISSORS_BEETLE,
|
|
/*0x41*/ CUCCO_AGGR,
|
|
/*0x42*/ STALFOS,
|
|
/*0x43*/ FLYING_SKULL,
|
|
/*0x44*/ MAZAAL_BRACELET,
|
|
/*0x45*/ TAKKURI,
|
|
/*0x46*/ BOW_MOBLIN,
|
|
/*0x47*/ LAKITU,
|
|
/*0x48*/ LAKITU_CLOUD,
|
|
/*0x49*/ ENEMY_49,
|
|
/*0x4a*/ VAATI_REBORN_ENEMY,
|
|
/*0x4b*/ VAATI_PROJECTILE,
|
|
/*0x4c*/ BALL_CHAIN_SOLIDER,
|
|
/*0x4d*/ ENEMY_4D,
|
|
/*0x4e*/ GHINI,
|
|
/*0x4f*/ VAATI_TRANSFIGURED,
|
|
/*0x50*/ ENEMY_50,
|
|
/*0x51*/ VAATI_WRATH,
|
|
/*0x52*/ VAATI_ARM,
|
|
/*0x53*/ DUST,
|
|
/*0x54*/ VAATI_BALL,
|
|
/*0x55*/ OCTOROK2,
|
|
/*0x56*/ SLIME,
|
|
/*0x57*/ MINI_SLIME,
|
|
/*0x58*/ FIREBALL_GUY,
|
|
/*0x59*/ MINI_FIREBALL_GUY,
|
|
/*0x5a*/ VAATI_TRANSFIGURED_EYE,
|
|
/*0x5b*/ BUSINESS_SCRUB_PROLOGUE,
|
|
/*0x5c*/ GYORG_FEMALE,
|
|
/*0x5d*/ GYORG_MALE,
|
|
/*0x5e*/ CURTAIN,
|
|
/*0x5f*/ VAATI_WRATH_EYE,
|
|
/*0x60*/ GYORG_CHILD,
|
|
/*0x61*/ GYORG_FEMALE_EYE,
|
|
/*0x62*/ ENEMY_62,
|
|
/*0x63*/ GYORG_FEMALE_MOUTH,
|
|
/*0x64*/ ENEMY_64,
|
|
/*0x65*/ TREE_ITEM,
|
|
/*0x66*/ ENEMY_66
|
|
} Enemy;
|
|
|
|
extern void Octorok(Entity*);
|
|
extern void Chuchu(Entity*);
|
|
extern void Leever(Entity*);
|
|
extern void Peahat(Entity*);
|
|
extern void Rollobite(Entity*);
|
|
extern void DarkNut(Entity*);
|
|
extern void HangingSeed(Entity*);
|
|
extern void Beetle(Entity*);
|
|
extern void Keese(Entity*);
|
|
extern void DoorMimic(Entity*);
|
|
extern void RockChuchu(Entity*);
|
|
extern void SpinyChuchu(Entity*);
|
|
extern void CuccoChickAggr(Entity*);
|
|
extern void Moldorm(Entity*);
|
|
extern void EnemyE(Entity*);
|
|
extern void Moldworm(Entity*);
|
|
extern void Sluggula(Entity*);
|
|
extern void Pesto(Entity*);
|
|
extern void Puffstool(Entity*);
|
|
extern void ChuchuBoss(Entity*);
|
|
extern void LikeLike(Entity*);
|
|
extern void SpearMoblin(Entity*);
|
|
extern void BusinessScrub(Entity*);
|
|
extern void RupeeLike(Entity*);
|
|
extern void Madderpillar(Entity*);
|
|
extern void WaterDrop(Entity*);
|
|
extern void WallMaster(Entity*);
|
|
extern void BombPeahat(Entity*);
|
|
extern void Spark(Entity*);
|
|
extern void Chaser(Entity*);
|
|
extern void SpikedBeetle(Entity*);
|
|
extern void SensorBladeTrap(Entity*);
|
|
extern void Helmasaur(Entity*);
|
|
extern void FallingBoulder(Entity*);
|
|
extern void Bobomb(Entity*);
|
|
extern void WallMaster2(Entity*);
|
|
extern void Gleerok(Entity*);
|
|
extern void VaatiEyesMacro(Entity*);
|
|
extern void Tektite(Entity*);
|
|
extern void WizzrobeWind(Entity*);
|
|
extern void WizzrobeFire(Entity*);
|
|
extern void WizzrobeIce(Entity*);
|
|
extern void Armos(Entity*);
|
|
extern void Eyegore(Entity*);
|
|
extern void Rope(Entity*);
|
|
extern void SmallPesto(Entity*);
|
|
extern void AcroBandit(Entity*);
|
|
extern void BladeTrap(Entity*);
|
|
extern void Keaton(Entity*);
|
|
extern void Crow(Entity*);
|
|
extern void Mulldozer(Entity*);
|
|
extern void Bombarossa(Entity*);
|
|
extern void Wisp(Entity*);
|
|
extern void SpinyBeetle(Entity*);
|
|
extern void MazaalHead(Entity*);
|
|
extern void MazaalMacro(Entity*);
|
|
extern void MazaalHand(Entity*);
|
|
extern void OctorokBoss(Entity*);
|
|
extern void FlyingPot(Entity*);
|
|
extern void Gibdo(Entity*);
|
|
extern void OctorokGolden(Entity*);
|
|
extern void TektiteGolden(Entity*);
|
|
extern void RopeGolden(Entity*);
|
|
extern void CloudPiranha(Entity*);
|
|
extern void ScissorsBeetle(Entity*);
|
|
extern void CuccoAggr(Entity*);
|
|
extern void Stalfos(Entity*);
|
|
extern void FlyingSkull(Entity*);
|
|
extern void MazaalBracelet(Entity*);
|
|
extern void Takkuri(Entity*);
|
|
extern void BowMoblin(Entity*);
|
|
extern void Lakitu(Entity*);
|
|
extern void LakituCloud(Entity*);
|
|
extern void Enemy49(Entity*);
|
|
extern void VaatiRebornEnemy(Entity*);
|
|
extern void VaatiProjectile(Entity*);
|
|
extern void BallChainSoldier(Entity*);
|
|
extern void Enemy4D(Entity*);
|
|
extern void Ghini(Entity*);
|
|
extern void VaatiTransfigured(Entity*);
|
|
extern void Enemy50(Entity*);
|
|
extern void VaatiWrath(Entity*);
|
|
extern void VaatiArm(Entity*);
|
|
extern void Dust(Entity*);
|
|
extern void VaatiBall(Entity*);
|
|
extern void Slime(Entity*);
|
|
extern void MiniSlime(Entity*);
|
|
extern void FireballGuy(Entity*);
|
|
extern void MiniFireballGuy(Entity*);
|
|
extern void VaatiTransfiguredEye(Entity*);
|
|
extern void BusinessScrubPrologue(Entity*);
|
|
extern void GyorgFemale(Entity*);
|
|
extern void GyorgMale(Entity*);
|
|
extern void Curtain(Entity*);
|
|
extern void VaatiWrathEye(Entity*);
|
|
extern void GyorgChild(Entity*);
|
|
extern void GyorgFemaleEye(Entity*);
|
|
extern void Enemy62(Entity*);
|
|
extern void GyorgFemaleMouth(Entity*);
|
|
extern void Enemy64(Entity*);
|
|
extern void TreeItem(Entity*);
|
|
extern void Enemy66(Entity*);
|
|
|
|
#endif
|