Amulets & Armor
v1.02
Open Source Game
|
Creature Logic and AI. More...
Data Structures | |
struct | T_creatureLogic |
struct | T_creaturesStruct |
struct | T_creatureState |
Typedefs | |
typedef E_Boolean(* | T_creatureDeathRoutine )(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
typedef T_void(* | T_creatureNavigateRoutine )(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
typedef E_Boolean(* | T_creatureTargetRoutine )(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
typedef T_void(* | T_monsterUpdateCallback )(T_void *p_data) |
Functions | |
T_void | CreatureAttachToObject (T_3dObject *p_obj) |
T_void | CreatureDetachFromObject (T_3dObject *p_obj) |
T_void | CreatureGoSplat (T_3dObject *p_obj, T_word16 amount, T_word16 damageType) |
E_Boolean | CreatureIsMissile (T_3dObject *p_obj) |
T_word16 | CreatureLookForPlayer (T_3dObject *p_obj) |
T_void | CreaturePlayerGone (T_player player) |
T_void | CreaturesAllOnOneTarget (T_word16 targetId) |
T_void | CreaturesCheck (T_void) |
T_void | CreatureSetTarget (T_3dObject *p_obj, T_word16 targetID) |
T_void | CreaturesFinish (T_void) |
T_void | CreaturesHearSoundOfPlayer (T_3dObject *p_player, T_word16 distance) |
T_void | CreaturesInitialize (T_void) |
T_word32 | CreaturesKillAll (T_void) |
T_word16 | CreatureStolenFrom (T_3dObject *p_obj) |
T_void | CreaturesUpdate (T_void) |
T_void | CreatureTakeDamage (T_3dObject *p_obj, T_word32 damage, T_word16 type, T_word16 ownerID) |
T_void | OutputPlayerJunk (T_void) |
Creature Logic and AI.
All Creature AI goes here. I would love to turn these into scripts.
#define CREATURE_DIP_AMOUNT_ABOVE_FLOOR 34 |
#define CRELOGIC_DFT_ARMOR_TYPE 0 |
#define CRELOGIC_DFT_ATTACK2_SOUND 5014 |
#define CRELOGIC_DFT_ATTACK_SOUND 5014 |
#define CRELOGIC_DFT_CAN_HURT_SELF FALSE |
#define CRELOGIC_DFT_DAMAGE_RESIST 0 |
#define CRELOGIC_DFT_DAMAGE_TYPE EFFECT_DAMAGE_NORMAL |
#define CRELOGIC_DFT_DEATH_LOGIC 0 |
#define CRELOGIC_DFT_DECAY_OBJECT 0 |
#define CRELOGIC_DFT_DIE_SOUND 5015 |
#define CRELOGIC_DFT_EFX_AT_DEATH 0 |
#define CRELOGIC_DFT_EXPLODE_ON_COLILDE FALSE |
#define CRELOGIC_DFT_FACE_DELAY 6 |
#define CRELOGIC_DFT_FLY_ACCELERATION 7 /* Usually same as UPDATE_TIME */ |
#define CRELOGIC_DFT_FLY_MAX_VELOCITY 20 |
#define CRELOGIC_DFT_HIT_POINTS 2000 |
#define CRELOGIC_DFT_HURT2_SOUND 5013 |
#define CRELOGIC_DFT_HURT_HEALTH 500 |
#define CRELOGIC_DFT_HURT_SOUND 5013 |
#define CRELOGIC_DFT_MAX_MELEE_RANGE 60 |
#define CRELOGIC_DFT_MAX_MISSILE_RANGE 1000 |
#define CRELOGIC_DFT_MELEE_DAMAGE 200 |
#define CRELOGIC_DFT_MELEE_DELAY 10 |
#define CRELOGIC_DFT_MIN_MISSILE_RANGE 250 |
#define CRELOGIC_DFT_MISSILE_DELAY 50 |
#define CRELOGIC_DFT_MISSILE_TYPE 4011 |
#define CRELOGIC_DFT_REGEN_RATE 0 |
#define CRELOGIC_DFT_STAY_ON_SECTOR |
#define CRELOGIC_DFT_STEP_SIZE 15 |
#define CRELOGIC_DFT_TARGET_SOUND 4001 |
#define CRELOGIC_DFT_TREASURE TREASURE_TYPE_NONE |
#define CRELOGIC_DFT_UPDATE_TIME 7 |
#define CRELOGIC_DFT_VISION_FIELD INT_ANGLE_90 |
#define CRELOGIC_DFT_WANDER_SOUND 4005 |
#define CRELOGIC_TIME_BETWEEN_SECTOR_DAMAGE 35 |
#define DEATH_LOGIC_TIME_TO_DECAY (60*70) /* One minute to decay */ |
#define MAX_CREATURE_MOVES_PER_UPDATE 3 |
#define MAX_CREATURES_FOR_SUMMON 50 |
#define MAX_TELEPORTER_POSITIONS 20 |
#define NUM_CREATURE_LOGICS (sizeof(G_creatureLogics) / sizeof(T_creatureLogic)) |
#define NUM_UPDATES_DO_BLOCK_MOVEMENT 5 |
#define SCANB_TURN_RATE 10 |
#define SUMMON_CREATURE_TYPE 1025 |
#define SUMMON_DISTANCE 75 |
#define TIME_BETWEEN_SUMMONS 350 |
#define TIME_BETWEEN_TELEPORTS 700 |
typedef E_Boolean(* T_creatureDeathRoutine)(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
typedef T_void(* T_creatureNavigateRoutine)(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
typedef E_Boolean(* T_creatureTargetRoutine)(T_creatureState *p_creature, T_creatureLogic *p_logic, T_3dObject *p_obj) |
enum E_blockTurnDir |
enum E_deathLogic |
enum E_scanBDir |
enum E_scanBFacing |
enum E_targetLogicPackage |
enum E_targetLogicState |
enum E_treasureType |
T_void CreatureAttachToObject | ( | T_3dObject * | p_obj) |
This routine is called to try to make a creature out of an object if the object type is that of a creature. If not, nothing happens.
T_void CreatureDetachFromObject | ( | T_3dObject * | p_obj) |
This routine is called to destroy creature data on an object. (making the object no longer a creature but an object).
T_void CreatureGoSplat | ( | T_3dObject * | p_obj, |
T_word16 | amount, | ||
T_word16 | damageType | ||
) |
E_Boolean CreatureIsMissile | ( | T_3dObject * | p_obj) |
T_word16 CreatureLookForPlayer | ( | T_3dObject * | p_obj) |
T_void CreatureSetTarget | ( | T_3dObject * | p_obj, |
T_word16 | targetID | ||
) |
CreaturesFinish unloads all creature based data. All objects in the world should already be destroyed.
T_void CreaturesHearSoundOfPlayer | ( | T_3dObject * | p_player, |
T_word16 | distance | ||
) |
T_word16 CreatureStolenFrom | ( | T_3dObject * | p_obj) |
T_void CreatureTakeDamage | ( | T_3dObject * | p_obj, |
T_word32 | damage, | ||
T_word16 | type, | ||
T_word16 | ownerID | ||
) |