Amulets & Armor  v1.02
Open Source Game
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Macros | Functions | Variables
3D_COLLI.C File Reference
#include "3D_COLLI.H"
#include "3D_IO.H"
#include "3D_TRIG.H"
#include "3D_VIEW.H"
#include "GENERAL.H"
#include "MAP.H"
#include "OBJECT.H"
#include "OBJMOVE.H"
#include "SYNCMEM.H"
#include "VIEW.H"

Macros

#define COLLIDE_3D_MAX_LINES_FOR_SECTORS   100
 
#define easyabs(x)   (((x)>=0)?(x):-(x))
 
#define HIT_TYPE_LINE   0
 
#define HIT_TYPE_OBJECT   1
 
#define MAX_LINE_HITS   20
 

Functions

E_Boolean CheckLineCanStepThrough (T_word16 i, T_3dObject *p_obj)
 
E_Boolean Collide3dCheckLineOfSight (T_sword16 sightStartX, T_sword16 sightStartY, T_sword16 sightEndX, T_sword16 sightEndY)
 
E_Boolean Collide3dCheckLineOfSightWithZ (T_sword16 sightStartX, T_sword16 sightStartY, T_sword16 sightEndX, T_sword16 sightEndY, T_sword16 sightZ)
 
T_sword16 Collide3dCheckSegmentHitBox (T_word16 lineNum, T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2)
 
T_sword16 Collide3dCheckSegmentHitsSegment (T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_word16 lineNum)
 
T_word16 Collide3dFindWallList (T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_sword16 z, T_word16 maxWalls, T_wallListItem *p_list, T_byte8 wallTypes)
 
E_Boolean Collide3dGetSectorsInBox (T_sword32 x, T_sword32 y, T_word16 radius, T_word16 maxSectors, T_word16 *p_sectors, T_word16 *p_numSectors)
 
T_word16 Collide3dGetWallsInBox (T_sword32 x, T_sword32 y, T_word16 radius, T_word16 maxWalls, T_word16 *p_walls)
 
E_Boolean Collide3dMoveToXYZ (T_3dObject *p_obj, T_sword32 newX, T_sword32 newY, T_sword32 newZ)
 
E_Boolean Collide3dObjectToObjectCheckLineOfSight (T_3dObject *p_from, T_3dObject *p_to)
 
E_Boolean Collide3dObjectToXYCheckLineOfSight (T_3dObject *p_from, T_lineOfSightLast *p_lastSight, T_sword16 x, T_sword16 y)
 
E_Boolean Collide3dObjectToXYCheckLineOfSightWithZ (T_3dObject *p_from, T_sword16 x, T_sword16 y, T_sword16 z)
 
T_byte8 Collide3dPointOnRight (T_sword32 lineX1, T_sword32 lineY1, T_sword32 lineX2, T_sword32 lineY2, T_sword32 pointX, T_sword32 pointY)
 
T_void Collide3dSetWallDefinition (T_word16 lineFlags)
 
T_void Collide3dUpdateLineOfSightLast (T_lineOfSightLast *p_lastSight, T_3dObject *p_target)
 
T_void IAddSurroundingSector (T_word16 sector)
 
T_sword16 ICheckLineHitsLine (T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_word16 lineNum)
 
E_Boolean IIsFloorAndCeilingOk (T_word16 lineNum, E_Boolean f_add, T_3dObject *p_obj)
 
T_void ILineHitInBlock (T_sword16 lastX, T_sword16 lastY, T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_sword32 index, T_sword16 radius, T_3dObject *p_obj)
 
T_sword16 IMoveToXYWithStep (T_sword32 *oldX, T_sword32 *oldY, T_sword32 newx, T_sword32 newy, T_sword32 radius, T_sword32 step, T_sword32 foot, T_sword32 head, T_sword16 height, T_3dObject *p_obj)
 
T_byte8 IOnRightOfLine (T_sword16 x, T_sword16 y, T_word16 line)
 
T_void IUpdateSectorHeights (T_word16 sector)
 
E_Boolean LineHit (T_sword16 lastX, T_sword16 lastY, T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_sword16 radius, T_3dObject *p_obj)
 
E_Boolean MoveTo (T_sword32 oldX, T_sword32 oldY, T_sword32 newX, T_sword32 newY, T_sword32 distance, T_3dObject *p_obj)
 
E_Boolean MoveToFast (T_sword32 *oldX, T_sword32 *oldY, T_sword32 newX, T_sword32 newY, T_sword32 distance, T_sword32 radius, T_sword32 foot, T_sword32 head, T_sword16 height, T_3dObject *p_obj)
 
T_sword32 Mult32By32AndDiv32 (T_sword32 a, T_sword32 b, T_sword32 c)
 
T_sword32 Mult32x32AndCompare (T_sword32 a, T_sword32 b, T_sword32 c, T_sword32 d)
 
T_void ProjectXYOntoLine (T_sword32 *pointX, T_sword32 *pointY, T_sword32 slopeX, T_sword32 slopeY)
 
T_void View3dAllowDip (T_void)
 
T_void View3dDisallowDip (T_void)
 
T_word16 View3dFindLineHits (T_sword16 x1, T_sword16 y1, T_sword16 x2, T_sword16 y2, T_word16 maxHits, T_sword16 *lines)
 
T_void View3dGetCeilingBelow (T_word16 *below)
 
T_void View3dGetFloorAbove (T_word16 *above)
 
T_void View3dGetFloorAndCeilingHeight (T_sword16 *floor, T_sword16 *ceiling)
 
T_word16View3dGetSurroundingSectors (T_word16 *numSectors)
 
E_Boolean View3dIsAllowDip (T_void)
 
T_sword16 View3dMoveTo (T_sword32 *oldX, T_sword32 *oldY, T_word16 angle, T_sword32 step, T_sword32 radius, T_sword32 foot, T_sword32 head, T_sword16 height, T_3dObject *p_obj)
 
T_sword16 View3dMoveToFast (T_sword32 *oldX, T_sword32 *oldY, T_word16 angle, T_sword32 step, T_sword32 radius, T_sword32 foot, T_sword32 head, T_sword32 height, T_3dObject *p_obj)
 
T_sword16 View3dMoveToXY (T_sword32 *oldX, T_sword32 *oldY, T_sword32 newx, T_sword32 newy, T_sword32 radius, T_sword32 foot, T_sword32 head, T_sword16 height, T_3dObject *p_obj)
 
T_sword16 View3dMoveToXYFast (T_sword32 *oldX, T_sword32 *oldY, T_sword32 newx, T_sword32 newy, T_sword32 radius, T_sword32 foot, T_sword32 head, T_sword16 height, T_3dObject *p_obj)
 
E_Boolean View3dObjectHitFast (T_sword16 x, T_sword16 y, T_word16 radius, T_sword16 lastX, T_sword16 lastY, T_sword16 zBottom, T_sword16 zTop, T_sword16 height, T_3dObject *p_movingObject)
 
T_void View3dSetExceptObject (T_word16 exceptId)
 
T_void View3dSetExceptObjectByPtr (T_objMoveStruct *p_objMove)
 

Variables

T_word16 G_numHits = 0