Skip to content

Commit 9fa7de8

Browse files
chinodaquino
authored and
daquino
committed
Initial Import - Ready for DX9SDK (summer 2004), PSDK 2003 R2 and VS 2005 Express (SP1)
git-svn-id: svn://fly.thruhere.net/forsaken@1 1361c5d3-c82f-4d94-b015-8aedb5f389d9
0 parents  commit 9fa7de8

File tree

247 files changed

+233823
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

247 files changed

+233823
-0
lines changed

ProjectX/2dPolys.c

+3,307
Large diffs are not rendered by default.

ProjectX/2dTextures.c

+736
Large diffs are not rendered by default.

ProjectX/AI/AICrashAndBurn.c

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
/*
2+
* a i c r a s h a n d b u r n . c
3+
*
4+
* AIMODE_DEATH_CRASHANDBURN
5+
*
6+
* Copyright (c) 1997 Probe Entertainment Limited
7+
* All Rights Reserved
8+
*
9+
* $Revision: 11 $
10+
*
11+
* $Header: /PcProjectX/Ai/AICrashAndBurn.c 11 3/19/98 5:17p Phillipd $
12+
*
13+
* $Log: /PcProjectX/Ai/AICrashAndBurn.c $
14+
*
15+
* 11 3/19/98 5:17p Phillipd
16+
*
17+
* 10 3/05/98 9:29a Phillipd
18+
* added the OPT_ON stuff to all AI files....
19+
*
20+
* 9 21/02/98 14:29 Collinsd
21+
* Added dan's new enemy code and fixed flashing of team in capture the
22+
* flag.
23+
*
24+
* 8 11/26/97 10:44a Phillipd
25+
*
26+
* 7 11/25/97 4:13p Phillipd
27+
*
28+
* 6 11/25/97 3:13p Phillipd
29+
*
30+
* 5 11/25/97 2:37p Phillipd
31+
*
32+
* 4 11/22/97 1:23p Phillipd
33+
*
34+
* 3 11/21/97 10:56a Phillipd
35+
* Max Kills to end a level....
36+
*
37+
* 2 11/20/97 12:39p Phillipd
38+
*
39+
* 1 11/20/97 12:05p Phillipd
40+
*/
41+
#include <stdio.h>
42+
#include <math.h>
43+
#include <malloc.h>
44+
#include <dplay.h>
45+
#include "typedefs.h"
46+
#include "main.h"
47+
#include "new3d.h"
48+
#include "quat.h"
49+
#include "mload.h"
50+
#include "Node.h"
51+
#include "compobjects.h"
52+
#include "bgobjects.h"
53+
#include "Object.h"
54+
#include "mydplay.h"
55+
#include "ships.h"
56+
#include "text.h"
57+
#include "triggers.h"
58+
#include "sphere.h"
59+
#include "pickups.h"
60+
#include "enemies.h"
61+
#include "AI.h"
62+
#include "secondary.h"
63+
#include "primary.h"
64+
65+
#ifdef OPT_ON
66+
#pragma optimize( "gty", on )
67+
#endif
68+
69+
// Externals
70+
extern float framelag;
71+
extern AIMDATA AimData;
72+
extern VECTOR Forward;
73+
extern VECTOR SlideUp;
74+
extern PRIMARYWEAPONATTRIB PrimaryWeaponAttribs[];
75+
extern SECONDARYWEAPONATTRIB SecondaryWeaponAttribs[];
76+
extern MLOADHEADER Mloadheader;
77+
void CreateSpotFXBurning( VECTOR * Pos, VECTOR * Dir, uint16 Group );
78+
79+
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
80+
Procedure : AIR Crash and burn...
81+
Input : ENEMY * Enemy
82+
Output : Nothing
83+
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
84+
void AI_AIR_DEATH_CRASHANDBURN( register ENEMY * Enemy )
85+
{
86+
OBJECT * SObject;
87+
VECTOR NewDir = { 0.0F, 1.0F, 0.0F };
88+
VECTOR NewPos;
89+
90+
SObject = &Enemy->Object;
91+
Enemy->AIFlags |= AI_ANYPLAYERINRANGE;
92+
93+
Enemy->Timer -= framelag;
94+
if( (Enemy->Timer < 0.0F) || (Enemy->AIMoveFlags & AI_CONTROL_COLLISION) )
95+
{
96+
Enemy->Timer = 0.0F;
97+
// Time to Die properly
98+
CreateNewExplosion( &Enemy->Object.Pos, &NewDir, Enemy->Object.Group );
99+
KillUsedEnemy( Enemy );
100+
return;
101+
}
102+
Enemy->Object.ExternalForce.x -= Mloadheader.Group[ Enemy->Object.Group ].up.x * 0.55F * framelag;
103+
Enemy->Object.ExternalForce.y -= Mloadheader.Group[ Enemy->Object.Group ].up.y * 0.55F * framelag;
104+
Enemy->Object.ExternalForce.z -= Mloadheader.Group[ Enemy->Object.Group ].up.z * 0.55F * framelag;
105+
106+
NewPos = Enemy->Object.Pos;
107+
108+
NewPos.x -= Mloadheader.Group[ Enemy->Object.Group ].up.x * (EnemyTypes[Enemy->Type].Radius * 0.75F);
109+
NewPos.y -= Mloadheader.Group[ Enemy->Object.Group ].up.y * (EnemyTypes[Enemy->Type].Radius * 0.75F);
110+
NewPos.z -= Mloadheader.Group[ Enemy->Object.Group ].up.z * (EnemyTypes[Enemy->Type].Radius * 0.75F);
111+
112+
AI_AimAtTarget( &Enemy->Object.InvMat , &Enemy->Object.Pos, &NewPos );
113+
Enemy->AI_Angle = AimData.Angle;
114+
Enemy->AIMoveFlags |= AimData.Flags;
115+
116+
CreateSpotFXBurning( &NewPos, &Mloadheader.Group[ Enemy->Object.Group ].up, Enemy->Object.Group );
117+
118+
}
119+
#ifdef OPT_ON
120+
#pragma optimize( "", off )
121+
#endif
122+
123+
124+
125+
126+
127+

0 commit comments

Comments
 (0)