mirror of https://github.com/zeldaret/tmc.git
				
				
				
			
		
			
				
	
	
		
			147 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
| #ifndef COMMON_H
 | |
| #define COMMON_H
 | |
| 
 | |
| #include "global.h"
 | |
| 
 | |
| struct Entity_;
 | |
| 
 | |
| /**
 | |
|  * Holds input information from system registers.
 | |
|  */
 | |
| typedef struct {
 | |
|     u16 heldKeys; /**< Keys held since last frame. */
 | |
|     u16 newKeys;  /** Keys newly pressed this frame. */
 | |
|     u16 menuScrollKeys;
 | |
|     u8 unk6;
 | |
|     u8 menuScrollTimer;
 | |
| } Input;
 | |
| extern Input gInput; /**< Input instance. */
 | |
| 
 | |
| void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes);
 | |
| 
 | |
| /**
 | |
|  * Loads a packed group of palettes.
 | |
|  *
 | |
|  * @param group Group number.
 | |
|  */
 | |
| void LoadPaletteGroup(u32 group);
 | |
| 
 | |
| /**
 | |
|  * Loads a packed group of tiles.
 | |
|  *
 | |
|  * @param group Group number.
 | |
|  */
 | |
| void LoadGfxGroup(u32 group);
 | |
| 
 | |
| /**
 | |
|  * Set color in the palette.
 | |
|  *
 | |
|  * @param colorIndex Color index.
 | |
|  * @param color Color.
 | |
|  */
 | |
| void SetColor(u32 colorIndex, u32 color);
 | |
| 
 | |
| void SetFillColor(u32 color, u32 arg1);
 | |
| 
 | |
| /**
 | |
|  * Fill memory with 16 bit value.
 | |
|  *
 | |
|  * @param value Fill value.
 | |
|  * @param dest Destination.
 | |
|  * @param size Byte count.
 | |
|  */
 | |
| void MemFill16(u32 value, void* dest, u32 size);
 | |
| 
 | |
| /**
 | |
|  * Fill memory with 32 bit value.
 | |
|  *
 | |
|  * @param value Fill value.
 | |
|  * @param dest Destination.
 | |
|  * @param size Byte count.
 | |
|  */
 | |
| void MemFill32(u32 value, void* dest, u32 size);
 | |
| 
 | |
| /**
 | |
|  * Clear memory.
 | |
|  *
 | |
|  * @param dest Destination
 | |
|  * @param size Byte count.
 | |
|  */
 | |
| void MemClear(void* dest, u32 size);
 | |
| 
 | |
| /**
 | |
|  * Copy memory.
 | |
|  *
 | |
|  * @param src Source.
 | |
|  * @param dest Destination.
 | |
|  * @param size Byte count.
 | |
|  */
 | |
| void MemCopy(const void* src, void* dest, u32 size);
 | |
| 
 | |
| /**
 | |
|  * Refresh #gInput from system registers.
 | |
|  */
 | |
| void ReadKeyInput(void);
 | |
| 
 | |
| /**
 | |
|  * Initialize the heap.
 | |
|  */
 | |
| void zMallocInit(void);
 | |
| 
 | |
| /**
 | |
|  * Allocate memory on heap.
 | |
|  *
 | |
|  * The heap size is 0x1000 bytes and should be used sparingly.
 | |
|  * It is customary for entities store the returned pointer in the Entity.myHeap field.
 | |
|  *
 | |
|  * @param size u32 Size to be allocated.
 | |
|  * @return Pointer to allocated memory.
 | |
|  */
 | |
| void* zMalloc(u32 size);
 | |
| 
 | |
| /**
 | |
|  * Free memory from heap.
 | |
|  * The Entity system will automatically free the pointer stored in the Entity.myHeap field.
 | |
|  *
 | |
|  * @param ptr Pointer to be freed.
 | |
|  */
 | |
| void zFree(void* ptr);
 | |
| 
 | |
| /**
 | |
|  * Reset All display system registers.
 | |
|  *
 | |
|  * @param refresh Request refresh of HUD layer (bg 0).
 | |
|  */
 | |
| void DispReset(bool32 refresh);
 | |
| 
 | |
| u32 CheckPlayerProximity(u32, u32, u32, u32);
 | |
| u32 CheckKinstoneFused(u32);
 | |
| void sub_0801E1EC(u32, u32, u32);
 | |
| void sub_0801DD58(u32, u32);
 | |
| void sub_0801E1B8(u32, u32);
 | |
| void AddKinstoneToBag(u32);
 | |
| void InitializeFuseInfo(struct Entity_* entity, u32 textIndex, u32 cancelledTextIndex, u32 fusingTextIndex);
 | |
| u32 PerformFuseAction(void);
 | |
| bool32 CheckFusionMapMarkerDisabled(u32);
 | |
| u32 sub_0801DB94(void);
 | |
| u32 GetRandomSharedFusion(u8*);
 | |
| 
 | |
| typedef struct {
 | |
|     u8 numFloors;
 | |
|     u8 highestFloor;
 | |
|     u8 unk_2;
 | |
|     // u8 pad;
 | |
| } DungeonFloorMetadata;
 | |
| 
 | |
| extern const DungeonFloorMetadata gDungeonFloorMetadatas[];
 | |
| 
 | |
| typedef struct {
 | |
|     u8 area;
 | |
|     u8 room;
 | |
|     u8 unk_2; // TODO u16 pad?
 | |
|     u8 unk_3;
 | |
|     u32 mapDataOffset;
 | |
| } DungeonLayout;
 | |
| 
 | |
| #endif // COMMON_H
 |