Files
ss/include/toBeSorted/actor_info.h
T
robojumper 031102f74f I guess?
2025-06-07 19:21:10 +02:00

76 lines
1.8 KiB
C

#ifndef D_ACTOR_INFO_H
#define D_ACTOR_INFO_H
#include "common.h"
// TODO: Expand when we figure out what the other entries have in common
enum SoundSourceType_e {
// 0-1: Player (0)
SND_SOURCE_PLAYER = 0,
SND_SOURCE_PLAYER_HEAD = 1,
// 2-9: Equipment (1)
SND_SOURCE_NET = 2,
SND_SOURCE_BLADE = 3,
SND_SOURCE_SHIELD = 4,
SND_SOURCE_WHIP = 5,
SND_SOURCE_BOOMERANG = 6,
SND_SOURCE_ARROW = 7,
SND_SOURCE_BOMB = 8,
SND_SOURCE_HOOKSHOT = 9,
// 10-31: Enemy? (2)
SND_SOURCE_BIGBOSS = 20,
SND_SOURCE_GIRAHUMU_3 = 24,
SND_SOURCE_BULLET = 29,
// 32-42: Object? (3)
SND_SOURCE_OBJECT = 32,
SND_SOURCE_BAMBOO = 34,
SND_SOURCE_ITEM = 35,
SND_SOURCE_TERRY_SHOP = 36,
SND_SOURCE_TIME_STONE = 37,
SND_SOURCE_CLEF = 38,
SND_SOURCE_SHUTTER = 39,
// 43-52: Npc (4)
SND_SOURCE_KENSEI = 44,
SND_SOURCE_PLAYER_BIRD = 45,
SND_SOURCE_INSECT = 49,
SND_SOURCE_NPC_NRM = 51,
SND_SOURCE_NPC_DRAGON = 52,
// 53: TagSound (5)
SND_SOURCE_TG_SOUND = 53,
// 54-57: Harp Related (6)
SND_SOURCE_OBJECT_WARP = 55,
SND_SOURCE_SW_HARP = 56,
// 58: ? (7)
// 59: ? (9)
};
/**
* profileId and profileId2 are always the same.
*/
struct ActorInfo {
/* 0x00 */ const char *name;
/* 0x04 */ u16 profileId;
/* 0x06 */ u16 profileId2;
/* 0x08 */ u16 fiTextEntryId; // also used for kill counters
/* 0x0A */ s8 soundSourceType;
/* 0x0B */ u8 subtype;
};
const ActorInfo *getActorInfoByName(const char *name);
u16 getProfileIdForName(const char *name);
u16 getProfileId2ForName(const char *name);
const char *getNameForProfileId(u32 profileId);
const char *getActorName(const ActorInfo *actorInfo);
const ActorInfo *getActorInfoByProfileAndSubtype(u32 profileId, u32 subtype);
s32 getSoundSourceTypeForName(const char *name);
#endif