mirror of https://github.com/zeldaret/tmc.git
				
				
				
			header clean up
This commit is contained in:
		
							parent
							
								
									f9e9fe0141
								
							
						
					
					
						commit
						d49be370d4
					
				| 
						 | 
				
			
			@ -153,6 +153,23 @@ typedef struct Entity {
 | 
			
		|||
 | 
			
		||||
} Entity;
 | 
			
		||||
 | 
			
		||||
#define COORD_TO_TILE(entity) ((((entity->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3fU) | (((entity->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6)
 | 
			
		||||
#define COORD_TO_TILE(entity)                                           \
 | 
			
		||||
    ((((entity->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \
 | 
			
		||||
     (((entity->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6)
 | 
			
		||||
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void InitAnimationForceUpdate(Entity*, u32);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern void UpdateSpriteOrderAndFlip(Entity*);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*);
 | 
			
		||||
extern void SetExtraSpriteFrame(Entity*, u32, u32);
 | 
			
		||||
extern void SetSpriteSubEntryOffsetData1(Entity*, u32, u32);
 | 
			
		||||
 | 
			
		||||
extern Entity* CreateEnemy(u32 subtype, u32 form);
 | 
			
		||||
extern Entity* CreateObject(u32 subtype, u32 form, u32 parameter);
 | 
			
		||||
extern Entity* CreateNPC(u32 subtype, u32 form, u32 parameter);
 | 
			
		||||
extern Entity* CreateObjectWithParent(Entity* parent, u32 subtype, u32 form, u32 parameter);
 | 
			
		||||
extern Entity* CreateFx(Entity* parent, u32 form, u32 parameter);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,28 +9,19 @@
 | 
			
		|||
// Identified - to be sorted into header files
 | 
			
		||||
extern u32 Random(void);
 | 
			
		||||
extern void PlaySFX(u32);
 | 
			
		||||
extern void UpdateSpriteOrderAndFlip(Entity*);
 | 
			
		||||
extern void InitAnimationForceUpdate(Entity*, u32);
 | 
			
		||||
extern void ShowNPCDialogue(Entity*, u32*);
 | 
			
		||||
extern u32 UpdateFuseInteraction();
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void DeleteEntity(Entity*);
 | 
			
		||||
extern u32 __modsi3(u32, u32);
 | 
			
		||||
extern void DoFade(u32, u32);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern u32 GetInventoryValue(u32);
 | 
			
		||||
extern Entity* CreateFx(Entity*, u32, u32);
 | 
			
		||||
extern u32 CheckKinstoneFused(u32);
 | 
			
		||||
extern void ForceEquipItem(u8, u8);
 | 
			
		||||
extern void LoadRoomEntityList();
 | 
			
		||||
void ModHealth(s32);
 | 
			
		||||
void CopyPosition(Entity*, Entity*);
 | 
			
		||||
extern u32* StartCutscene(Entity*, u8*);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern u32 LoadExtraSpriteData(Entity*, u32*);
 | 
			
		||||
extern void ResolveEntityOnTop(Entity*, Entity*);
 | 
			
		||||
extern void SetExtraSpriteFrame(Entity*, u32, u32);
 | 
			
		||||
extern void SetSpriteSubEntryOffsetData1(Entity*, u32, u32);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Unidentified
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,4 +76,8 @@ extern LinkState gLinkState;
 | 
			
		|||
extern Stats gStats;
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
extern u32 GetInventoryValue(u32);
 | 
			
		||||
extern s32 ModHealth(s32);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -4,12 +4,6 @@
 | 
			
		|||
#ifndef NPC_H
 | 
			
		||||
#define NPC_H
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u16 palette;
 | 
			
		||||
    u8 animIndex;
 | 
			
		||||
    u8 unk;
 | 
			
		||||
} SpriteLoadData;
 | 
			
		||||
 | 
			
		||||
extern void Gentari(Entity*);
 | 
			
		||||
extern void Gentari_Fusion(Entity*);
 | 
			
		||||
extern void Festari(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			@ -175,4 +169,7 @@ extern void Phonograph(Entity*);
 | 
			
		|||
extern void NPC58(Entity*);
 | 
			
		||||
extern void NPC58_Head(Entity*);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
extern u32 UpdateFuseInteraction(Entity*);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -60,4 +60,7 @@ typedef struct {
 | 
			
		|||
 | 
			
		||||
extern RoomControls gRoomControls;
 | 
			
		||||
extern RoomVars gRoomVars;
 | 
			
		||||
 | 
			
		||||
extern void SetTileType(u32, u32, u32);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
#define SPRITE_H
 | 
			
		||||
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 index;
 | 
			
		||||
| 
						 | 
				
			
			@ -28,4 +29,11 @@ typedef struct {
 | 
			
		|||
    u8 numGfxTiles;
 | 
			
		||||
    u16 gfxTileIndex;
 | 
			
		||||
} FrameGfxData;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u16 palette;
 | 
			
		||||
    u8 animIndex;
 | 
			
		||||
    u8 unk;
 | 
			
		||||
} SpriteLoadData;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -450,7 +450,7 @@ SECTIONS {
 | 
			
		|||
		asm/initializeLink.o(.text);
 | 
			
		||||
		src/sub_08052620.o(.text);
 | 
			
		||||
		src/sub_08052638.o(.text);
 | 
			
		||||
		src/bitGetters.o(.text);
 | 
			
		||||
		src/area.o(.text);
 | 
			
		||||
		src/modHealth.o(.text);
 | 
			
		||||
		src/modRupees.o(.text);
 | 
			
		||||
		asm/code_080526F8.o(.text);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "sprite.h"
 | 
			
		||||
 | 
			
		||||
extern void UpdateSpriteOrderAndFlip();
 | 
			
		||||
extern u32 CheckIsDungeon();
 | 
			
		||||
 | 
			
		||||
void Archway(Entity *this)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,12 +1,8 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern void UpdateAnimationSingleFrame();
 | 
			
		||||
extern void (*gUnk_08123384[])(Entity*);
 | 
			
		||||
 | 
			
		||||
extern void UpdateSpriteOrderAndFlip(Entity*);
 | 
			
		||||
extern void InitAnimationForceUpdate();
 | 
			
		||||
 | 
			
		||||
void Bell(Entity* ent) {
 | 
			
		||||
    gUnk_08123384[ent->action](ent);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
 | 
			
		||||
extern void (*gUnk_081140D4[])(Entity*);
 | 
			
		||||
 | 
			
		||||
extern u16 gUnk_081140CC[];
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
extern u32 gUnk_030010A0;
 | 
			
		||||
extern void sub_0805E3A0(Entity*, u32);
 | 
			
		||||
extern void sub_0806D0B0(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,6 @@ extern void (*gUnk_081115D0[])(Entity*);
 | 
			
		|||
 | 
			
		||||
extern struct_030010A0 gUnk_030010A0;
 | 
			
		||||
extern u16 gUnk_081115DC[];
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
extern u8 gUnk_08111618[];
 | 
			
		||||
extern u32* gUnk_081115EC[];
 | 
			
		||||
extern struct_02002A40 gUnk_02002A40;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,6 @@ extern s32 sub_080012DC(Entity*);
 | 
			
		|||
extern u32 GetNextFunction(Entity*);
 | 
			
		||||
extern void sub_0802AD54(Entity*);
 | 
			
		||||
extern void sub_0802B048(Entity*);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void sub_0806F4E8(Entity*);
 | 
			
		||||
extern void sub_0806F3E4(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,9 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_080842D8(Entity*);
 | 
			
		||||
extern void sub_08078828(Entity*);
 | 
			
		||||
extern u32 CheckLocalFlag(u32);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern u32 CheckFlags(u32);
 | 
			
		||||
extern void sub_08083E20(Entity*);
 | 
			
		||||
 | 
			
		||||
extern void (*const gUnk_0811F7E8[])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,18 +2,17 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
#include "room.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0809F7BC(Entity*);
 | 
			
		||||
extern void PlaySFX(u32);
 | 
			
		||||
extern void sub_0809F814(u32);
 | 
			
		||||
extern void sub_0809F7F4(Entity*);
 | 
			
		||||
extern void SetGlobalFlag(u32);
 | 
			
		||||
extern void LoadRoomEntityList();
 | 
			
		||||
extern void DeleteThisEntity();
 | 
			
		||||
extern u32 CheckRoomFlag(u32);
 | 
			
		||||
extern void sub_08078A90(u32);
 | 
			
		||||
extern void sub_08078B48(void);
 | 
			
		||||
extern u32 SetLocalFlag(u32);
 | 
			
		||||
extern u32 Random(void);
 | 
			
		||||
extern void sub_0806F69C(Entity*);
 | 
			
		||||
extern void (*gUnk_08124798[])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void sub_0806920C(Entity*);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern u32 sub_0805ACC0(Entity*);
 | 
			
		||||
extern u32 sub_0801E99C(Entity*);
 | 
			
		||||
extern void sub_0806924C(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +16,6 @@ extern void sub_080791D0();
 | 
			
		|||
extern void (*gUnk_08111914[])(Entity*);
 | 
			
		||||
extern void (*gUnk_08111928[])(Entity*);
 | 
			
		||||
extern u32 gUnk_08111938[];
 | 
			
		||||
extern void InitAnimationForceUpdate();
 | 
			
		||||
extern void PlaySFX(u32);
 | 
			
		||||
extern u32 Random();
 | 
			
		||||
extern u32 UpdateFuseInteraction(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,14 +4,14 @@
 | 
			
		|||
extern Entity* GetEmptyEntity();
 | 
			
		||||
extern void sub_0805EA2C(Entity*, u8);
 | 
			
		||||
 | 
			
		||||
Entity* CreateEnemy(u32 subtype, u32 param1) {
 | 
			
		||||
Entity* CreateEnemy(u32 subtype, u32 form) {
 | 
			
		||||
    Entity* enemy;
 | 
			
		||||
 | 
			
		||||
    enemy = GetEmptyEntity();
 | 
			
		||||
    if (enemy != NULL) {
 | 
			
		||||
        (enemy->entityType).type = 3;
 | 
			
		||||
        (enemy->entityType).subtype = subtype;
 | 
			
		||||
        (enemy->entityType).form = param1;
 | 
			
		||||
        (enemy->entityType).form = form;
 | 
			
		||||
        sub_0805EA2C(enemy, 4);
 | 
			
		||||
    }
 | 
			
		||||
    return enemy;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,6 @@
 | 
			
		|||
// sub_0804AEB0(entity,param_1);
 | 
			
		||||
// if ((param_1->field_0x1 & 240) != 16) {
 | 
			
		||||
// (entity->entityType).parameter = *(u8 *)¶m_1->entityparameter;
 | 
			
		||||
// /* i suspect this is where the entity's behavior is defined. Not sure. */
 | 
			
		||||
// entity->actionDelay = (u8)((u32)param_1->entityparameter >> 8);
 | 
			
		||||
// if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) {
 | 
			
		||||
// if ((param_1->entityType & 16) == 0) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										132
									
								
								src/dampe.c
								
								
								
								
							
							
						
						
									
										132
									
								
								src/dampe.c
								
								
								
								
							| 
						 | 
				
			
			@ -2,23 +2,19 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
#include "room.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
#include "sprite.h"
 | 
			
		||||
#include "textbox.h"
 | 
			
		||||
#include "npc.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0805E3A0(Entity*, u32);
 | 
			
		||||
extern void sub_0807DD50(Entity*);
 | 
			
		||||
extern void sub_080045C4(Entity*, Entity*);
 | 
			
		||||
extern void InitAnimationForceUpdate(Entity*, u32);
 | 
			
		||||
extern u32 sub_0806F5A4(void);
 | 
			
		||||
extern void sub_0806F118(Entity*);
 | 
			
		||||
extern void sub_0807DD94(Entity*, u32);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern u32 UpdateFuseInteraction(Entity*);
 | 
			
		||||
extern u32 sub_0801E99C(void);
 | 
			
		||||
extern void sub_08078784(Entity*, u32);
 | 
			
		||||
extern u32 CheckLocalFlag(u32);
 | 
			
		||||
extern void SetLocalFlag(u32);
 | 
			
		||||
extern u32 GetInventoryValue(u32);
 | 
			
		||||
extern void TextboxNoOverlap(u16, Entity*);
 | 
			
		||||
extern void SetTileType(u32, u32, u32);
 | 
			
		||||
 | 
			
		||||
extern u16 gUnk_08113344[];
 | 
			
		||||
extern u16 gUnk_0811334A[];
 | 
			
		||||
| 
						 | 
				
			
			@ -57,76 +53,66 @@ void Dampe(Entity* this) {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BE3C(Entity *this)
 | 
			
		||||
{
 | 
			
		||||
  this->field_0x68 = sub_0801E99C();
 | 
			
		||||
  sub_08078784(this, this->field_0x68);
 | 
			
		||||
void sub_0806BE3C(Entity* this) {
 | 
			
		||||
    this->field_0x68 = sub_0801E99C();
 | 
			
		||||
    sub_08078784(this, this->field_0x68);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Dampe_Fusion(Entity *this)
 | 
			
		||||
{
 | 
			
		||||
  if (this->action == 0) {
 | 
			
		||||
    this->action++;
 | 
			
		||||
    this->spriteSettings.b.ss0 = 1;
 | 
			
		||||
    InitAnimationForceUpdate(this, 2);
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    UpdateAnimationSingleFrame(this);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BE84(Entity *this, struct_0806BE84* r1)
 | 
			
		||||
{
 | 
			
		||||
  u32 iVar3;
 | 
			
		||||
  
 | 
			
		||||
  r1->unk = 0;
 | 
			
		||||
  iVar3 = 1;
 | 
			
		||||
  if (!CheckLocalFlag(0x69)) {
 | 
			
		||||
    iVar3 = 0;
 | 
			
		||||
    SetLocalFlag(0x69);
 | 
			
		||||
    r1->unk = 1;
 | 
			
		||||
  }
 | 
			
		||||
  // Graveyard key
 | 
			
		||||
  if (2 <= GetInventoryValue(0x3C)) {
 | 
			
		||||
    iVar3 = 2;
 | 
			
		||||
  }
 | 
			
		||||
  TextboxNoOverlap(gUnk_08113344[iVar3], this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BEC8(Entity *this, struct_0806BE84* r1)
 | 
			
		||||
{
 | 
			
		||||
    u32 uVar1;
 | 
			
		||||
  u32 iVar2;
 | 
			
		||||
  
 | 
			
		||||
  iVar2 = 0;
 | 
			
		||||
  r1->unk = 0;
 | 
			
		||||
  uVar1 = GetInventoryValue(0x3C);
 | 
			
		||||
    if (uVar1 == 1) {
 | 
			
		||||
    iVar2 = 1;
 | 
			
		||||
    r1->unk = 1;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    if (1 < uVar1) {
 | 
			
		||||
      iVar2 = 2;
 | 
			
		||||
void Dampe_Fusion(Entity* this) {
 | 
			
		||||
    if (this->action == 0) {
 | 
			
		||||
        this->action++;
 | 
			
		||||
        this->spriteSettings.b.ss0 = 1;
 | 
			
		||||
        InitAnimationForceUpdate(this, 2);
 | 
			
		||||
    } else {
 | 
			
		||||
        UpdateAnimationSingleFrame(this);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  TextboxNoOverlap(gUnk_0811334A[iVar2], this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BEFC(void)
 | 
			
		||||
{
 | 
			
		||||
  SetTileType(0x17E, 0x58E, 1);
 | 
			
		||||
  SetTileType(0x17F, 0x58F, 1);
 | 
			
		||||
  SetTileType(0x180, 0x5cE, 1);
 | 
			
		||||
  SetTileType(0x181, 0x5cF, 1);
 | 
			
		||||
void sub_0806BE84(Entity* this, struct_0806BE84* r1) {
 | 
			
		||||
    u32 msgIndex;
 | 
			
		||||
 | 
			
		||||
    r1->unk = 0;
 | 
			
		||||
    msgIndex = 1;
 | 
			
		||||
    if (!CheckLocalFlag(0x69)) {
 | 
			
		||||
        msgIndex = 0;
 | 
			
		||||
        SetLocalFlag(0x69);
 | 
			
		||||
        r1->unk = 1;
 | 
			
		||||
    }
 | 
			
		||||
    // Graveyard key
 | 
			
		||||
    if (GetInventoryValue(0x3C) >= 2) {
 | 
			
		||||
        msgIndex = 2;
 | 
			
		||||
    }
 | 
			
		||||
    TextboxNoOverlap(gUnk_08113344[msgIndex], this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BF44(Entity *this, struct_0806BE84 *r1)
 | 
			
		||||
{
 | 
			
		||||
  r1->unk = 0;
 | 
			
		||||
  if (((this->x.HALF.HI - gRoomControls.roomScrollX) + 0x10U < 0x110) &&
 | 
			
		||||
     ((this->y.HALF.HI - gRoomControls.roomScrollY) + 0x18U < 0xd0)) {
 | 
			
		||||
    r1->unk = 1;
 | 
			
		||||
  }
 | 
			
		||||
void sub_0806BEC8(Entity* this, struct_0806BE84* r1) {
 | 
			
		||||
    u32 hasGraveyardKey;
 | 
			
		||||
    u32 msgIndex;
 | 
			
		||||
 | 
			
		||||
    msgIndex = 0;
 | 
			
		||||
    r1->unk = 0;
 | 
			
		||||
    hasGraveyardKey = GetInventoryValue(0x3C);
 | 
			
		||||
    if (hasGraveyardKey == 1) {
 | 
			
		||||
        msgIndex = 1;
 | 
			
		||||
        r1->unk = 1;
 | 
			
		||||
    } else if (hasGraveyardKey >= 2) {
 | 
			
		||||
        msgIndex = 2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    TextboxNoOverlap(gUnk_0811334A[msgIndex], this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BEFC() {
 | 
			
		||||
    SetTileType(0x17E, 0x58E, 1);
 | 
			
		||||
    SetTileType(0x17F, 0x58F, 1);
 | 
			
		||||
    SetTileType(0x180, 0x5CE, 1);
 | 
			
		||||
    SetTileType(0x181, 0x5CF, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806BF44(Entity* this, struct_0806BE84* r1) {
 | 
			
		||||
    r1->unk = 0;
 | 
			
		||||
    if (((this->x.HALF.HI - gRoomControls.roomScrollX) + 0x10U < 0x110) &&
 | 
			
		||||
        ((this->y.HALF.HI - gRoomControls.roomScrollY) + 0x18U < 0xD0)) {
 | 
			
		||||
        r1->unk = 1;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,6 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
 | 
			
		||||
extern void EnemyFunctionHandler(Entity*, void (*const funcs[])(Entity*));
 | 
			
		||||
extern void CreateFx(Entity*, u32, u32);
 | 
			
		||||
extern void DeleteThisEntity();
 | 
			
		||||
 | 
			
		||||
extern void (*const gUnk_080CB570[])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
 | 
			
		||||
extern u32 CheckFlags(u32);
 | 
			
		||||
extern void DeleteThisEntity();
 | 
			
		||||
extern void sub_0808E714(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,13 +10,10 @@ extern u32 sub_0806F3E4(Entity*);
 | 
			
		|||
extern void sub_0804A7D4(Entity*);
 | 
			
		||||
extern void sub_0804A720(Entity*);
 | 
			
		||||
extern u32 Random();
 | 
			
		||||
extern void UpdateSpriteOrderAndFlip(Entity*);
 | 
			
		||||
extern void sub_08021EF0(Entity*);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern void sub_080AEFB4(Entity*);
 | 
			
		||||
extern void sub_08021F24(Entity*);
 | 
			
		||||
extern u32 sub_0806FCB8(Entity*, s32, s32, u32);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
 | 
			
		||||
extern void (*gUnk_080CB69C[])(Entity*);
 | 
			
		||||
extern void (*gUnk_080CB6B4[])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,8 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity *);
 | 
			
		||||
extern void InitAnimationForceUpdate(Entity *, s32);
 | 
			
		||||
extern u32 GetNextFunction(Entity *);
 | 
			
		||||
extern void ModHealth(s32);
 | 
			
		||||
extern void CreateFx(Entity *, u16, u16);
 | 
			
		||||
 | 
			
		||||
extern void (* const gUnk_080D0418[])(Entity *);
 | 
			
		||||
extern void (* const gUnk_080D0430[])(Entity *);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,12 +1,9 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "textbox.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void InitAnimationForceUpdate();
 | 
			
		||||
extern void sub_08063280();
 | 
			
		||||
extern void TextboxNoOverlapFollow(u32);
 | 
			
		||||
extern void UpdateAnimationSingleFrame();
 | 
			
		||||
extern void CreateFx();
 | 
			
		||||
 | 
			
		||||
extern void (*gMailboxBehaviors[4])(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +31,7 @@ void sub_08063220(Entity* this) {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if (this->animIndex != bVar1) {
 | 
			
		||||
        InitAnimationForceUpdate(this);
 | 
			
		||||
        InitAnimationForceUpdate(this, bVar1);
 | 
			
		||||
    } else {
 | 
			
		||||
        sub_08063280(this, bVar1);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +54,7 @@ void sub_08063280(Entity* this, u32 unused) {
 | 
			
		|||
    u8 var;    // r2@1
 | 
			
		||||
 | 
			
		||||
    e = this;
 | 
			
		||||
    UpdateAnimationSingleFrame();
 | 
			
		||||
    UpdateAnimationSingleFrame(e);
 | 
			
		||||
    var = e->frames.all & 0x7F;
 | 
			
		||||
    e->frames.all ^= var;
 | 
			
		||||
    if (var == 2) CreateFx(e, 49, 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,8 +16,6 @@ extern void ClearFlag(u16);
 | 
			
		|||
 | 
			
		||||
extern void SetTile(u32, u16, u32);
 | 
			
		||||
 | 
			
		||||
extern void CreateFx(Entity *, u16, u16);
 | 
			
		||||
 | 
			
		||||
extern void sub_08000148(u16, u16, u32);
 | 
			
		||||
extern s16 sub_080001DA(u16, u32);
 | 
			
		||||
extern u16 sub_080002E0(u16, u32);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,7 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
 | 
			
		||||
extern void _call_via_r1(Entity*, u32);
 | 
			
		||||
extern void sub_0806ED78();
 | 
			
		||||
extern void InitAnimationForceUpdate();
 | 
			
		||||
extern void UpdateAnimationSingleFrame();
 | 
			
		||||
 | 
			
		||||
extern void (*gMilkCartBehaviors[2])(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +13,7 @@ void MilkCart(Entity* ent) {
 | 
			
		|||
void sub_08065B6C(Entity* ent) {
 | 
			
		||||
    ent->action++;
 | 
			
		||||
    ent->spriteSettings.b.ss0 = 1;
 | 
			
		||||
    (ent->y).HALF.LO += -0x8000;
 | 
			
		||||
    ent->y.HALF.LO += -0x8000;
 | 
			
		||||
    ent->animationState = 6;
 | 
			
		||||
    InitAnimationForceUpdate(ent, 3);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,10 +5,8 @@ extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*));
 | 
			
		|||
extern void sub_0804AA30(Entity*, void (*const func[][])(Entity*));
 | 
			
		||||
extern void sub_0804A7D4(Entity*);
 | 
			
		||||
extern void sub_0804A720(Entity*);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void sub_08045678(Entity*);
 | 
			
		||||
extern void sub_080AEFE0(void);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern u32 sub_08003FC4(Entity*, u32);
 | 
			
		||||
extern void sub_08045678(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
 | 
			
		||||
extern Entity* CreateObject();
 | 
			
		||||
extern void CopyPosition();
 | 
			
		||||
extern void sub_08086A6C();
 | 
			
		||||
extern s32 sub_080044EC();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,14 +9,12 @@ extern void sub_0804A7D4();
 | 
			
		|||
extern void CreateDeathFx();
 | 
			
		||||
extern void sub_0801ECFC();
 | 
			
		||||
extern u32 sub_0806F520();
 | 
			
		||||
extern void InitializeAnimation();
 | 
			
		||||
extern void sub_0806F4E8();
 | 
			
		||||
extern void sub_0806F3E4();
 | 
			
		||||
extern void InitializeAnimationAnimation();
 | 
			
		||||
extern void sub_0804A720();
 | 
			
		||||
extern u32 Random();
 | 
			
		||||
extern void sub_0801ED14();
 | 
			
		||||
extern void GetNextFrame();
 | 
			
		||||
 | 
			
		||||
extern void(*gOctorok[2]);
 | 
			
		||||
extern void (*gOctorokIdle[4])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
 | 
			
		||||
extern void sub_0807DDAC(Entity*, u32);
 | 
			
		||||
extern void sub_0807DDE4(Entity*);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void PlaySFX(u32);
 | 
			
		||||
extern void sub_0805E3A0(Entity*, u32);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,6 @@ typedef struct {
 | 
			
		|||
 | 
			
		||||
extern void DoExitTransition(void *);
 | 
			
		||||
extern void SetTileType(u32, u32, u32);
 | 
			
		||||
extern void CreateObjectWithParent(Entity*, u32, u32, u32);
 | 
			
		||||
extern void DoExitTransition(void *);
 | 
			
		||||
extern void DoFade(u32, u32);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,15 +12,12 @@ extern void SetChildOffset(Entity*, u32, u32, u32);
 | 
			
		|||
extern void sub_0804AA30(Entity*, void*);
 | 
			
		||||
extern void sub_0804A9FC(Entity*, u32);
 | 
			
		||||
extern void sub_0804A720(Entity*);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void sub_08044FF8(Entity*);
 | 
			
		||||
extern u32 Random(void);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern u32 sub_0806FA04(u32, u32);
 | 
			
		||||
extern u32 sub_08049FA0(Entity*);
 | 
			
		||||
extern u32 sub_08049EE4(Entity*);
 | 
			
		||||
extern u32 sub_080AEF88(void);
 | 
			
		||||
extern Entity* CreateEnemy(u32, u32);
 | 
			
		||||
 | 
			
		||||
extern void (*gUnk_080D16BC[])(Entity*);
 | 
			
		||||
extern void (*gUnk_080D16A4[])(Entity*);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,6 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
 | 
			
		||||
extern u32 GetNextFunction(Entity*);
 | 
			
		||||
extern u32 GetNextFrame(Entity*);
 | 
			
		||||
extern u32 sub_0806F520(Entity*);
 | 
			
		||||
extern void sub_0806F4E8(Entity*);
 | 
			
		||||
extern u32 sub_0806F3E4();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										24
									
								
								src/stamp.c
								
								
								
								
							
							
						
						
									
										24
									
								
								src/stamp.c
								
								
								
								
							| 
						 | 
				
			
			@ -2,15 +2,11 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
#include "textbox.h"
 | 
			
		||||
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void sub_08078778(Entity*);
 | 
			
		||||
extern void sub_0805E47C(Entity*);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void TextboxNoOverlapFollow(u32);
 | 
			
		||||
extern void sub_0805E584();
 | 
			
		||||
extern void sub_0807DD64();
 | 
			
		||||
extern void CreateFx();
 | 
			
		||||
extern void sub_08062CA4();
 | 
			
		||||
extern void sub_0807DDAC();
 | 
			
		||||
extern void sub_0807DDE4();
 | 
			
		||||
| 
						 | 
				
			
			@ -20,29 +16,9 @@ extern void ShowNPCDialogue();
 | 
			
		|||
extern void (*gStampBehaviors1[4])(Entity*);
 | 
			
		||||
extern void (*gStampBehaviors2[2])(Entity*);
 | 
			
		||||
 | 
			
		||||
extern TextBox gTextBox;
 | 
			
		||||
extern u32 gUnk_0810C2E4;
 | 
			
		||||
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern void sub_08078778(Entity*);
 | 
			
		||||
extern void sub_0805E47C(Entity*);
 | 
			
		||||
extern void GetNextFrame(Entity*);
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void TextboxNoOverlapFollow(u32);
 | 
			
		||||
extern void sub_0805E584();
 | 
			
		||||
extern void sub_0807DD64();
 | 
			
		||||
extern void CreateFx();
 | 
			
		||||
extern void sub_08062CA4();
 | 
			
		||||
extern void sub_0807DDAC();
 | 
			
		||||
extern void sub_0807DDE4();
 | 
			
		||||
extern u32 CheckKinstoneFused();
 | 
			
		||||
extern void ShowNPCDialogue();
 | 
			
		||||
 | 
			
		||||
extern void (*gStampBehaviors1[4])(Entity*);
 | 
			
		||||
extern void (*gStampBehaviors2[2])(Entity*);
 | 
			
		||||
 | 
			
		||||
extern TextBox gTextBox;
 | 
			
		||||
extern u32 gUnk_0810C2E4;
 | 
			
		||||
 | 
			
		||||
void Stamp(Entity* ent) {
 | 
			
		||||
    if ((ent->flags & 2) != 0) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,10 +4,8 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
extern void sub_0807DD50(Entity*);
 | 
			
		||||
extern Entity* LoadExtraSpriteData(Entity*, SpriteLoadData*);
 | 
			
		||||
extern void sub_0806ED78(Entity*);
 | 
			
		||||
extern void sub_0805E3A0(Entity*, u32);
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
 | 
			
		||||
extern void (*gUnk_081121D4[])(Entity*);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +24,7 @@ void Syrup(Entity *this)
 | 
			
		|||
 | 
			
		||||
void sub_0806A1F8(Entity *this)
 | 
			
		||||
{
 | 
			
		||||
  Entity *iVar1;
 | 
			
		||||
    u32 iVar1;
 | 
			
		||||
  SpriteLoadData *paVar2;
 | 
			
		||||
 | 
			
		||||
  (this->entityType).form == 0 ? (paVar2 = &gUnk_081121B4) : (paVar2 = &gUnk_081121C4);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,11 +4,9 @@
 | 
			
		|||
#include "functions.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
 | 
			
		||||
extern void (*gUnk_0810FEC4[])(Entity* this);
 | 
			
		||||
extern void (*gUnk_0810FEBC[])(Entity* this);
 | 
			
		||||
extern u32 gUnk_0810FEB0;
 | 
			
		||||
extern SpriteLoadData gUnk_0810FEB0;
 | 
			
		||||
extern u8 gUnk_0800B41C;
 | 
			
		||||
extern u8 gUnk_0810FED8[];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,8 +7,6 @@ void sub_0801D630();
 | 
			
		|||
void ShowTextbox();
 | 
			
		||||
void TextboxAtPosition();
 | 
			
		||||
 | 
			
		||||
extern TextBox gTextBox;
 | 
			
		||||
extern RoomControls gRoomControls;
 | 
			
		||||
extern u32 gUnk_02022780;
 | 
			
		||||
extern u32 gUnk_02036A40;
 | 
			
		||||
extern u32 gUnk_02036A38;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,13 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "room.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
 | 
			
		||||
void SetTile(u32 tileIndex, s32 tilePosition, s32 layerIndex);
 | 
			
		||||
s32 GetTileType(s32 tilePosition, s32 layerIndex);
 | 
			
		||||
void sub_08078B48();
 | 
			
		||||
void DeleteThisEntity();
 | 
			
		||||
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
extern RoomControls gRoomControls;
 | 
			
		||||
extern void (*gUnk_08124C08[])(Entity*);
 | 
			
		||||
 | 
			
		||||
void Well(Entity* ent) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
#include "npc.h"
 | 
			
		||||
#include "textbox.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 filler[8];
 | 
			
		||||
| 
						 | 
				
			
			@ -14,19 +15,13 @@ extern void sub_0806C7D4(Entity*);
 | 
			
		|||
extern void sub_0806F118(Entity*);
 | 
			
		||||
extern void sub_0807DD94(Entity*, u32);
 | 
			
		||||
extern void sub_0807DD80(Entity*, u32*);
 | 
			
		||||
extern u32 CheckGlobalFlag(u32);
 | 
			
		||||
extern u32 CheckLocalFlag(u32);
 | 
			
		||||
extern u32 CheckRoomFlag(u32);
 | 
			
		||||
extern u32 sub_0801E99C();
 | 
			
		||||
extern void InitializeAnimation(Entity*, u32);
 | 
			
		||||
extern u32 UpdateFuseInteraction();
 | 
			
		||||
extern void sub_08078784(Entity*, u32);
 | 
			
		||||
extern void SetExtraSpriteFrame(Entity*, u32, u32);
 | 
			
		||||
extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32);
 | 
			
		||||
extern void SetSpriteSubEntryOffsetData1(Entity*, u32, u32);
 | 
			
		||||
extern void sub_0807000C(Entity*);
 | 
			
		||||
extern void ShowNPCDialogue(Entity*, u16*);
 | 
			
		||||
extern void TextboxNoOverlap(u32, Entity*);
 | 
			
		||||
 | 
			
		||||
extern void (*const gUnk_08113A7C[])(Entity*);
 | 
			
		||||
extern void (*const gUnk_08113A8C[])(Entity*, Entity*);
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +75,7 @@ void sub_0806C834(Entity* this) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void sub_0806C85C(Entity* this) {
 | 
			
		||||
    if (UpdateFuseInteraction() != 0) {
 | 
			
		||||
    if (UpdateFuseInteraction(this) != 0) {
 | 
			
		||||
        this->action = 1;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "room.h"
 | 
			
		||||
#include "flags.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0805EA78(Entity*, u32);
 | 
			
		||||
extern void sub_0805E3A0(Entity*, u32);
 | 
			
		||||
| 
						 | 
				
			
			@ -10,14 +11,10 @@ extern Entity* sub_0805EB9C(u32, u32);
 | 
			
		|||
void CopyPosition(Entity*, Entity*);
 | 
			
		||||
void sub_08068680(Entity*, Entity*);
 | 
			
		||||
void sub_08068694(Entity*, Entity*);
 | 
			
		||||
extern void SetGlobalFlag(u32);
 | 
			
		||||
extern Entity* CreateNPC(u32 subtype, u32 form, u32 parameter);
 | 
			
		||||
u32 sub_0806EDC4(Entity* ent);
 | 
			
		||||
void DeleteThisEntity(void);
 | 
			
		||||
extern Entity* GetEntityByType(u32, u32);
 | 
			
		||||
extern void sub_080686C4(Entity*, Entity*);
 | 
			
		||||
extern void InitAnimationForceUpdate(Entity*, u32);
 | 
			
		||||
extern void UpdateAnimationSingleFrame(Entity*);
 | 
			
		||||
extern void sub_0806F62C(Entity*, u32, u32);
 | 
			
		||||
extern u32 sub_08003FC4(Entity*, u32);
 | 
			
		||||
extern void PlaySFX(u32);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue