====== Fusion Data Structs ====== These are the structures of various objects in fusion. Displayed as [[https://en.wikipedia.org/wiki/Struct_(C_programming_language)#Declaration|C typedefs]]. typedef struct __attribute__((packed)) __attribute__((aligned(1))) { unsigned short CurEnemy_orientation; unsigned short CurEnemy_Y_position; unsigned short CurEnemy_X_position; unsigned short CurEnemy_Y_position_spawn; unsigned short CurEnemy_X_position_spawn; unsigned short CurEnemy_top_boundary_offset; unsigned short CurEnemy_bottom_boundary_offset; unsigned short CurEnemy_left_boundary_offset; unsigned short CurEnemy_right_boundary_offset; unsigned short anonymous_0; unsigned short CurEnemy_health; unsigned short CurEnemy_animation; unsigned long CurEnemy_graphic_pointer; char CurEnemy_animation_counter; char CurEnemy_id; char CurEnemy_spriteset_slot; char CurEnemy_spriteset_gfx_slot; char CurEnemy_palette; unsigned char unknownByte1; unsigned char unknownByte2; char CurEnemy_slot; char CurEnemy_pose; char InteractionType;//{1=Can damage when touched, 5 = bounces samus} char CurEnemy_timer_for_something; char anonymous_4; char anonymous_5; char anonymous_6; char anonymous_7; char anonymous_8; char CurEnemy_invincibility_timer; char SomeCounter; char Enemy_respawn_timer; char Enemy_attached_enemy_slot; unsigned char AnimCounter; unsigned char AnimCounter2; unsigned short Enemy_freeze_timer; char Enemy_collision_properties; unsigned short GFXSlotModifier; } EnemyData; typedef struct __attribute__((packed)) __attribute__((aligned(1))) { unsigned char EnemySlot; unsigned char SomeFlipFlag; unsigned char SawTarget; unsigned char unkD; unsigned char FacingSamusDirection ; unsigned char StopAndFlipFlop; } AIThoughts; /* 31 */ typedef struct { unsigned long Pointer; unsigned long Time; } Frame; typedef struct { unsigned short Orientation; unsigned short Y; unsigned short X; unsigned short anonymous_2; unsigned char gap8[2]; unsigned short Top; unsigned short Bottom; unsigned short Left; unsigned short Right; __attribute__((aligned(4))) unsigned short enemyHealth; unsigned char gap16[7]; char spriteID; char SpriteSetSlot; char spriteset_gfx_slot; char anonymous_11; char anonymous_12; char anonymous_13; char Slot; char CopyOfPose; __attribute__((aligned(2))) char DontKill; unsigned char gap27[3]; char SomeKindofDirection; __attribute__((aligned(2))) char anonymous_18; char anonymous_19; unsigned char gap2E[1]; char anonymous_20; unsigned char gap30[2]; char anonymous_21; char anonymous_22; char SpawnType; unsigned char anonymous_24; unsigned char anonymous_25; char field_37; } EnemyDataMem; typedef struct FusionObjectStat_Primary { unsigned short Health; unsigned short Damage; unsigned char filler2; unsigned char Reduction; unsigned char filler; unsigned char Vulnerability; unsigned short HealthX; unsigned short MissileX; unsigned short redX; } FusionObjectStat_Primary;