World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
См. документацию.
5 #include "../Spells/Spells.h"
109 #define ACTOR_VISIBLE 0x00000008
110 #define ACTOR_STAND_IN_QUEUE 0x00000080
111 #define ACTOR_ALIVE 0x00000400
112 #define ACTOR_ACTIVE 0x00004000
113 #define ACTOR_NEARBY 0x00008000
114 #define ACTOR_UNKNOW11 0x00010000 // aidisabled
115 #define ACTOR_FLEEING 0x00020000
116 #define ACTOR_UNKNOW5 0x00040000 // casting??
117 #define ACTOR_AGGRESSOR 0x00080000
118 #define ACTOR_UNKNOW7 0x00100000 // alertstatus
119 #define ACTOR_ANIMATION 0x00200000
120 #define ACTOR_UNKNOW9 0x00400000 // actor has job - never finished feature
121 #define ACTOR_HAS_ITEM 0x00800000
122 #define ACTOR_HOSTILE 0x01000000
125 #pragma pack(push, 1)
136 #pragma pack(push, 1)
150 #pragma pack(push, 1)
156 for (i = 0; i < 22; i++) {
199 bool can_target_party);
200 static void AI_Pursue3(
unsigned int uActorID,
unsigned int a2,
202 static void AI_Pursue2(
unsigned int uActorID,
unsigned int a2,
203 signed int uActionLength,
struct AIDirection *pDir,
205 static void AI_Flee(
unsigned int uActorID,
signed int edx0,
207 static void AI_Pursue1(
unsigned int uActorID,
unsigned int a2,
208 signed int arg0,
signed int uActionLength,
210 static void PlaySound(
unsigned int uActorID,
unsigned int uSoundID);
211 static void Die(
unsigned int uActorID);
212 static void Resurrect(
unsigned int uActorID);
213 static void AI_Bored(
unsigned int uActorID,
unsigned int uObjID,
215 static void AI_Stun(
unsigned int uActorID,
signed int edx0,
int arg0);
217 signed int a2,
int a3);
218 static void AI_RandomMove(
unsigned int uActor_id,
unsigned int uTarget_id,
219 int radius,
int uActionLength);
224 static void AI_SpellAttack1(
unsigned int uActorID,
signed int sTargetPid,
226 static void AI_SpellAttack2(
unsigned int uActorID,
signed int sTargetPid,
228 static void AI_MeleeAttack(
unsigned int uActorID,
signed int sTargetPid,
231 static void AI_Stand(
unsigned int uActorID,
unsigned int object_to_face_pid,
232 unsigned int uActionLength,
struct AIDirection *a4);
235 static void AI_FaceObject(
unsigned int uActorID,
unsigned int uObjID,
239 static void Explode(
unsigned int uActorID);
243 int uSpellID,
int a4,
unsigned int uSkillLevel);
245 struct Vec3_int_ *pVelocity,
int a4);
251 static void StealFrom(
unsigned int uActorID);
252 static void GiveItem(
signed int uActorID,
unsigned int uItemID,
254 static void ToggleFlag(
signed int uActorID,
unsigned int uFlag,
265 struct Vec3_int_ *pVelocity);
329 extern std::array<Actor, 500>
pActors;
333 int IsActorAlive(
unsigned int uType,
unsigned int uParam,
334 unsigned int uNumAlive);
337 unsigned int bToggle);
341 int duration_game_seconds);
343 int a3,
int a4,
int a5);
347 struct Vec3_int_ *pVelocity);
unsigned __int16 uint16_t
unsigned __int16 uAttributes
uint16_t pSoundSampleIDs[4]
struct Vec3_short_ vPosition
struct ItemGen ActorHasItems[4]
static void AI_Stun(unsigned int uActorID, signed int edx0, int arg0)
static void StealFrom(unsigned int uActorID)
static void AI_RandomMove(unsigned int uActor_id, unsigned int uTarget_id, int radius, int uActionLength)
@ ACTOR_BUFF_PAIN_REFLECTION
static bool ArePeasantsOfSameFaction(Actor *a1, Actor *a2)
static void ToggleFlag(signed int uActorID, unsigned int uFlag, int bToggle)
static void AI_StandOrBored(unsigned int uActorID, signed int uObjID, int uActionLength, struct AIDirection *a4)
bool DoesDmgTypeDoDamage(DAMAGE_TYPE uType)
int dword_000334_unique_name
static void AI_MeleeAttack(unsigned int uActorID, signed int sTargetPid, struct AIDirection *arg0)
static unsigned int SearchActorByGroup(unsigned int *pTotalActors, unsigned int uGroup)
double sub_43AE12(signed int a1)
@ ACTOR_BUFF_DAY_OF_PROTECTION
static void AI_Pursue1(unsigned int uActorID, unsigned int a2, signed int arg0, signed int uActionLength, struct AIDirection *pDir)
static void PlaySound(unsigned int uActorID, unsigned int uSoundID)
static void AI_SpellAttack(unsigned int uActorID, struct AIDirection *pDir, int uSpellID, int a4, unsigned int uSkillLevel)
int sub_44FA4C_spawn_light_elemental(int spell_power, int caster_skill_level, int duration_game_seconds)
struct Vec3_short_ vVelocity
static void AI_MissileAttack1(unsigned int uActorID, signed int sTargetPid, struct AIDirection *pDir)
static void AI_FaceObject(unsigned int uActorID, unsigned int uObjID, int UNUSED, struct AIDirection *Dir_In)
bool SpawnActor(unsigned int uMonsterID)
int CalcMagicalDamageToActor(DAMAGE_TYPE dmgType, int incomingDmg)
static char _4031C1_update_job_never_gets_called(unsigned int uActorID, signed int a2, int a3)
bool ActorHitOrMiss(Player *pPlayer)
static void Die(unsigned int uActorID)
static void UpdateActorAI()
static void AI_Stand(unsigned int uActorID, unsigned int object_to_face_pid, unsigned int uActionLength, struct AIDirection *a4)
static bool _46DF1A_collide_against_actor(int a1, int a2)
static void AI_SpellAttack2(unsigned int uActorID, signed int sTargetPid, struct AIDirection *pDir)
void ToggleActorGroupFlag(unsigned int uGroupID, unsigned int uFlag, unsigned int bToggle)
static void AI_RangedAttack(unsigned int uActorID, struct AIDirection *a2, int type, char a4)
static void ApplyFineForKillingPeasant(unsigned int uActorID)
int which_player_to_attack(struct Actor *pActor)
static void StandAwhile(unsigned int uActorID)
unsigned int uLastCharacterIDToHit
void SpawnEncounter(struct MapInfo *pMapInfo, struct SpawnPointMM7 *spawn, int a3, int a4, int a5)
EGLSurface EGLint EGLint y
bool CheckActors_proximity()
static Vis * ResolveVis()
unsigned int uCurrentActionTime
static void AI_Pursue2(unsigned int uActorID, unsigned int a2, signed int uActionLength, struct AIDirection *pDir, int a5)
@ ACTOR_BUFF_MASS_DISTORTION
void SetRandomGoldIfTheresNoItem()
ABILITY_INDEX special_ability_use_check(int a2)
@ ACTOR_BUFF_SOMETHING_THAT_HALVES_AC
int IsActorAlive(unsigned int uType, unsigned int uParam, unsigned int uNumAlive)
static void Resurrect(unsigned int uActorID)
void area_of_effect__damage_evaluate()
static void GetDirectionInfo(unsigned int uObj1ID, unsigned int uObj2ID, struct AIDirection *pOut, int a4)
static void MakeActorAIList_ODM()
EGLSurface EGLNativeWindowType * window
static unsigned int SearchAliveActors(unsigned int *pTotalActors)
int16_t word_000084_range_attack
static void AddBloodsplatOnDamageOverlay(unsigned int uActorID, int a2, int a3)
static void _SelectTarget(unsigned int uActorID, int *a2, bool can_target_party)
static void Arena_summon_actor(int monster_id, int16_t x, int y, int z)
bool _4273BB_DoesHitOtherActor(Actor *defender, int a3, int a4)
int FindClosestActor(int a2, int a3, int a4)
static unsigned int SearchActorByMonsterID(unsigned int *pTotalActors, int uMonsterID)
static void AI_Pursue3(unsigned int uActorID, unsigned int a2, signed int uActionLength, struct AIDirection *a4)
static void ActorDamageFromMonster(int attacker_id, unsigned int actor_id, struct Vec3_int_ *pVelocity, int a4)
@ ACTOR_BUFF_HOUR_OF_POWER
struct Vec3_short_ vInitialPosition
bool sub_4070EF_prolly_detect_player(unsigned int uObjID, unsigned int uObj2ID)
static void AggroSurroundingPeasants(unsigned int uActorID, int a2)
static void Explode(unsigned int uActorID)
struct Vec3_short_ vGuardingPosition
std::array< Actor, 500 > pActors
static void AI_Flee(unsigned int uActorID, signed int edx0, int uActionLength, struct AIDirection *a4)
int _43B3E0_CalcDamage(signed int dmgSource)
static void AI_MissileAttack2(unsigned int uActorID, signed int sTargetPid, struct AIDirection *pDir)
signed int GetActorsRelation(Actor *a2)
static int MakeActorAIList_BLV()
bool ActorHasItem() const
void ItemDamageFromActor(unsigned int uObjID, unsigned int uActorID, struct Vec3_int_ *pVelocity)
static void GiveItem(signed int uActorID, unsigned int uItemID, unsigned int bGive)
static unsigned int SearchActorByID(unsigned int *pTotalActors, unsigned int a2)
uint16_t uCurrentActionLength
static unsigned short GetObjDescId(int spellId)
static void AI_Bored(unsigned int uActorID, unsigned int uObjID, struct AIDirection *a4)
void PrepareSprites(char load_sounds_if_bit1_set)
@ ACTOR_BUFF_PAIN_HAMMERHANDS
uint16_t uCurrentActionAnimation
void sub_448518_npc_set_item(int npc, unsigned int item, int a3)
static void DamageMonsterFromParty(int a1, unsigned int uActorID_Monster, struct Vec3_int_ *pVelocity)
struct MonsterInfo pMonsterInfo
int16_t word_000086_some_monster_id
static void AI_SpellAttack1(unsigned int uActorID, signed int sTargetPid, struct AIDirection *pDir)
static void DrawHealthBar(Actor *actor, GUIWindow *window)
bool _427102_IsOkToCastSpell(enum SPELL_TYPE spell)
static void InitializeActors()
struct ActorJob pScheduledJobs[8]
void SummonMinion(int summonerId)
struct SpellBuff pActorBuffs[22]