mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			240 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			240 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
| #ifndef ENEMY_H
 | |
| #define ENEMY_H
 | |
| 
 | |
| #include "global.h"
 | |
| #include "asm.h"
 | |
| 
 | |
| #include "sound.h"
 | |
| #include "effects.h"
 | |
| #include "flags.h"
 | |
| #include "common.h"
 | |
| 
 | |
| #include "entity.h"
 | |
| #include "projectile.h"
 | |
| 
 | |
| bool32 EnemyInit(Entity* this);
 | |
| extern u32 GetNextFunction(Entity*);
 | |
| extern void EnemyFunctionHandler(Entity*, EntityActionArray);
 | |
| extern void GenericKnockback(Entity*);
 | |
| extern Entity* CreateDeathFx(Entity*, u32, u32);
 | |
| 
 | |
| extern Entity* Create0x68FX(Entity*, u32);
 | |
| extern void SetChildOffset(Entity*, s32, s32, s32);
 | |
| extern Entity* CreateProjectileWithParent(Entity*, u8, u8);
 | |
| 
 | |
| extern void GenericDeath(Entity*);
 | |
| extern void sub_08002724(void*, u8*);
 | |
| extern void sub_080026C4(u8*, u8*, u8*, u32);
 | |
| extern void sub_080026F2(u8*, void*, u8*, 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*/ GLEEROK,
 | |
|     /*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*/ TORCH_TRAP,
 | |
|     /*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*/ GYORG_MALE_EYE,
 | |
|     /*0x63*/ GYORG_FEMALE_MOUTH,
 | |
|     /*0x64*/ ENEMY_64,
 | |
|     /*0x65*/ TREE_ITEM,
 | |
|     /*0x66*/ ENEMY_66
 | |
| } Enemy;
 | |
| 
 | |
| void Octorok(Entity*);
 | |
| void Chuchu(Entity*);
 | |
| void Leever(Entity*);
 | |
| void Peahat(Entity*);
 | |
| void Rollobite(Entity*);
 | |
| void DarkNut(Entity*);
 | |
| void HangingSeed(Entity*);
 | |
| void Beetle(Entity*);
 | |
| void Keese(Entity*);
 | |
| void DoorMimic(Entity*);
 | |
| void RockChuchu(Entity*);
 | |
| void SpinyChuchu(Entity*);
 | |
| void CuccoChickAggr(Entity*);
 | |
| void Moldorm(Entity*);
 | |
| void EnemyE(Entity*);
 | |
| void Moldworm(Entity*);
 | |
| void Sluggula(Entity*);
 | |
| void Pesto(Entity*);
 | |
| void Puffstool(Entity*);
 | |
| void ChuchuBoss(Entity*);
 | |
| void LikeLike(Entity*);
 | |
| void SpearMoblin(Entity*);
 | |
| void BusinessScrub(Entity*);
 | |
| void RupeeLike(Entity*);
 | |
| void Madderpillar(Entity*);
 | |
| void WaterDrop(Entity*);
 | |
| void WallMaster(Entity*);
 | |
| void BombPeahat(Entity*);
 | |
| void Spark(Entity*);
 | |
| void Chaser(Entity*);
 | |
| void SpikedBeetle(Entity*);
 | |
| void SensorBladeTrap(Entity*);
 | |
| void Helmasaur(Entity*);
 | |
| void FallingBoulder(Entity*);
 | |
| void Bobomb(Entity*);
 | |
| void WallMaster2(Entity*);
 | |
| void Gleerok(Entity*);
 | |
| void VaatiEyesMacro(Entity*);
 | |
| void Tektite(Entity*);
 | |
| void WizzrobeWind();
 | |
| void WizzrobeFire();
 | |
| void WizzrobeIce();
 | |
| void Armos();
 | |
| void Eyegore();
 | |
| void Rope(Entity*);
 | |
| void SmallPesto(Entity*);
 | |
| void AcroBandit(Entity*);
 | |
| void BladeTrap(Entity*);
 | |
| void Keaton(Entity*);
 | |
| void Crow(Entity*);
 | |
| void Mulldozer();
 | |
| void Bombarossa(Entity*);
 | |
| void Wisp(Entity*);
 | |
| void SpinyBeetle(Entity*);
 | |
| void MazaalHead(Entity*);
 | |
| void MazaalMacro(Entity*);
 | |
| void MazaalHand(Entity*);
 | |
| void OctorokBoss();
 | |
| void FlyingPot(Entity*);
 | |
| void Gibdo(Entity*);
 | |
| void OctorokGolden(Entity*);
 | |
| void TektiteGolden(Entity*);
 | |
| void RopeGolden(Entity*);
 | |
| void CloudPiranha();
 | |
| void ScissorsBeetle(Entity*);
 | |
| void CuccoAggr(Entity*);
 | |
| void Stalfos();
 | |
| void FlyingSkull(Entity*);
 | |
| void MazaalBracelet(Entity*);
 | |
| void Takkuri(Entity*);
 | |
| void BowMoblin(Entity*);
 | |
| void Lakitu(Entity*);
 | |
| void LakituCloud(Entity*);
 | |
| void TorchTrap(Entity*);
 | |
| void VaatiRebornEnemy(Entity*);
 | |
| void VaatiProjectile(Entity*);
 | |
| void BallChainSoldier(Entity*);
 | |
| void Enemy4D();
 | |
| void Ghini();
 | |
| void VaatiTransfigured(Entity*);
 | |
| void Enemy50();
 | |
| void VaatiWrath(Entity*);
 | |
| void VaatiArm(Entity*);
 | |
| void Dust(Entity*);
 | |
| void VaatiBall(Entity*);
 | |
| void Slime(Entity*);
 | |
| void MiniSlime(Entity*);
 | |
| void FireballGuy(Entity*);
 | |
| void MiniFireballGuy(Entity*);
 | |
| void VaatiTransfiguredEye(Entity*);
 | |
| void BusinessScrubPrologue(Entity*);
 | |
| void GyorgFemale();
 | |
| void GyorgMale();
 | |
| void Curtain(Entity*);
 | |
| void VaatiWrathEye(Entity*);
 | |
| void GyorgChild();
 | |
| void GyorgFemaleEye();
 | |
| void GyorgMaleEye();
 | |
| void GyorgFemaleMouth();
 | |
| void Enemy64();
 | |
| void TreeItem(Entity*);
 | |
| void Enemy66(Entity*);
 | |
| 
 | |
| #endif
 |