Removed most references to PSX, Saturn and E3 Demo.

This commit is contained in:
Steven Fuller 2008-05-04 13:51:57 -07:00 committed by Patryk Obara
parent 332acfbf8b
commit 361c131932
35 changed files with 47 additions and 1362 deletions

View file

@ -14,7 +14,7 @@ CXXFLAGS = $(CFLAGS)
LDLIBS = -m32 $(shell sdl-config --libs) $(shell openal-config --libs)
ROOT = main.c files.c winapi.c stubs.c version.c mathline.c opengl.c oglfunc.c openal.c cdplayer.c menus.c net.c frustum.c kshape.c map.c maths.c md5.c mem3dc.c mem3dcpp.cpp module.c morph.c object.c shpanim.c sphere.c tables.c vdb.c
AVP = ai_sight.c avpview.c bh_agun.c bh_ais.c bh_alien.c bh_binsw.c bh_cable.c bh_corpse.c bh_deathvol.c bh_debri.c bh_dummy.c bh_fan.c bh_far.c bh_fhug.c bh_gener.c bh_ldoor.c bh_lift.c bh_light.c bh_lnksw.c bh_ltfx.c bh_marin.c bh_mission.c bh_near.c bh_pargen.c bh_plachier.c bh_plift.c bh_pred.c bh_queen.c bh_rubberduck.c bh_selfdest.c bh_snds.c bh_spcl.c bh_swdor.c bh_track.c bh_types.c bh_videoscreen.c bh_waypt.c bh_weap.c bh_xeno.c bonusabilities.c cconvars.cpp cdtrackselection.cpp cheatmodes.c comp_map.c comp_shp.c consolelog.cpp davehook.cpp deaths.c decal.c detaillevels.c dynamics.c dynblock.c equipmnt.c equiputl.cpp extents.c game.c game_statistics.c gamecmds.cpp gamevars.cpp hmodel.c hud.c inventry.c language.c lighting.c load_shp.c los.c maps.c mempool.c messagehistory.c missions.cpp movement.c paintball.c particle.c pfarlocs.c pheromon.c player.c pmove.c psnd.c psndproj.c pvisible.c savegame.c scream.cpp secstats.c sfx.c stratdef.c targeting.c track.c triggers.c weapons.c
AVP = ai_sight.c avpview.c bh_agun.c bh_ais.c bh_alien.c bh_binsw.c bh_cable.c bh_corpse.c bh_deathvol.c bh_debri.c bh_dummy.c bh_fan.c bh_far.c bh_fhug.c bh_gener.c bh_ldoor.c bh_lift.c bh_light.c bh_lnksw.c bh_ltfx.c bh_marin.c bh_mission.c bh_near.c bh_pargen.c bh_plachier.c bh_plift.c bh_pred.c bh_queen.c bh_rubberduck.c bh_selfdest.c bh_snds.c bh_spcl.c bh_swdor.c bh_track.c bh_types.c bh_videoscreen.c bh_waypt.c bh_weap.c bh_xeno.c bonusabilities.c cconvars.cpp cdtrackselection.cpp cheatmodes.c comp_map.c comp_shp.c consolelog.cpp davehook.cpp deaths.c decal.c detaillevels.c dynamics.c dynblock.c equipmnt.c equiputl.cpp extents.c game.c game_statistics.c gamecmds.cpp gamevars.cpp hmodel.c hud.c inventry.c language.c lighting.c load_shp.c los.c mempool.c messagehistory.c missions.cpp movement.c paintball.c particle.c pfarlocs.c pheromon.c player.c pmove.c psnd.c psndproj.c pvisible.c savegame.c scream.cpp secstats.c sfx.c stratdef.c targeting.c track.c triggers.c weapons.c
SHAPES = cube.c
SUPPORT = consbind.cpp consbtch.cpp coordstr.cpp daemon.cpp indexfnt.cpp r2base.cpp r2pos666.cpp reflist.cpp refobj.cpp rentrntq.cpp scstring.cpp strtab.cpp strutil.c trig666.cpp wrapstr.cpp
AVPWIN95 = avpchunk.cpp cheat.c chtcodes.cpp d3d_hud.cpp ddplat.cpp endianio.c ffread.cpp ffstdio.cpp gammacontrol.cpp hierplace.cpp iofocus.cpp jsndsup.cpp kzsort.c langplat.c modcmds.cpp npcsetup.cpp objsetup.cpp pathchnk.cpp platsup.c pldghost.c pldnet.c progress_bar.cpp projload.cpp scrshot.cpp strachnk.cpp system.c usr_io.c vision.c

View file

@ -968,8 +968,7 @@ int NPCOrientateToVector(STRATEGYBLOCK *sbPtr, VECTORCH *zAxisVector,int turnspe
mat.mat33 = cos;
// NOTE : It seems like OrientMat is not being set per frame which
// leads to inaccuracy build-up from the matrix multiplies. When this
// is fixed, the following PSXAccurateMatrixMultiply can be removed
// leads to inaccuracy build-up from the matrix multiplies.
if (offset) {
VECTORCH new_offset,delta_offset;
@ -1000,11 +999,7 @@ int NPCOrientateToVector(STRATEGYBLOCK *sbPtr, VECTORCH *zAxisVector,int turnspe
}
#if PSX
PSXAccurateMatrixMultiply(&sbPtr->DynPtr->OrientMat,&mat,&sbPtr->DynPtr->OrientMat);
#else
MatrixMultiply(&sbPtr->DynPtr->OrientMat,&mat,&sbPtr->DynPtr->OrientMat);
#endif
MatrixToEuler(&sbPtr->DynPtr->OrientMat, &sbPtr->DynPtr->OrientEuler);
}
@ -1415,9 +1410,7 @@ void NPCGetMovementDirection(STRATEGYBLOCK *sbPtr, VECTORCH *velocityDirection,
(GMD_myPolyPoints[point1].vy == GMD_myPolyPoints[point2].vy) &&
(GMD_myPolyPoints[point1].vz == GMD_myPolyPoints[point2].vz))
{
#if (!Saturn)
LOCALASSERT(1==0);
#endif
myPolyEdgeMoveDistances[i] = 0;
}
}

View file

@ -180,11 +180,8 @@
#define WOUNDING_SPEED_EFFECTS 1
#define ALIEN_STARTING_HEALTH (30)
#if PSX||Saturn
#define NO_OF_FRAGMENTS_FROM_DEAD_ALIEN (5)
#else
#define NO_OF_FRAGMENTS_FROM_DEAD_ALIEN (10)
#endif
#define NO_OF_FRAGMENTS_FROM_DEAD_ALIEN (10)
/* random time between 1.5 and 2 seconds,in fixed point, with granularity 1/32th second */
#if ULTRAVIOLENCE
#define ALIEN_FAR_MOVE_TIME ((48+(FastRandom()&0xF))*(ONE_FIXED>>7))

View file

@ -192,9 +192,7 @@ void* BinarySwitchBehaveInit(void* bhdata, STRATEGYBLOCK* sbptr)
}
}
#if !Saturn
// GLOBALASSERT(bs_bhv->bs_dtype != binswitch_no_display);
#endif
// fill in the rest ourselves

View file

@ -1,3 +1,6 @@
#ifndef BH_DEBRI_H
#define BH_DEBRI_H
typedef struct OneShotAnimBehaviourType
{
int counter;
@ -37,12 +40,4 @@ extern void OneShotBehaveFun(STRATEGYBLOCK* sptr);
extern void OneShot_Anim_BehaveFun(STRATEGYBLOCK* sptr);
extern void MakeFragments (STRATEGYBLOCK *sbptr);
#define EXPLOSION_LIFETIME (ONE_FIXED/4)
#define EXPLOSION_ANIM_SPEED (ONE_FIXED*16)
#define EXPLOSION_LIGHTING_SCALE (ONE_FIXED*16/3)
#if PSX || Saturn
#define NO_OF_SPRITES_IN_BIG_EXPLOSION 5
#else
#define NO_OF_SPRITES_IN_BIG_EXPLOSION 10
#endif

View file

@ -191,7 +191,6 @@ void FarAlienBehaviour(STRATEGYBLOCK *sbPtr)
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR ALIEN MODULE CONTAINMENT FAILURE \n");
LOGDXFMT(("Alien containment failure: %s alien is in %s, position is %d,%d,%d:\nModule extents are: %d:%d, %d:%d, %d:%d",
@ -201,7 +200,6 @@ void FarAlienBehaviour(STRATEGYBLOCK *sbPtr)
thisModule->m_maxz,thisModule->m_minz));
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -922,7 +920,6 @@ void LocateFarNPCInAIModule(STRATEGYBLOCK *sbPtr, AIMODULE *targetModule)
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR ALIEN MODULE CONTAINMENT FAILURE \n");
LOGDXFMT(("Alien containment failure: alien is in %s, position is %d,%d,%d:\nModule extents are: %d:%d, %d:%d, %d:%d",
@ -931,7 +928,6 @@ void LocateFarNPCInAIModule(STRATEGYBLOCK *sbPtr, AIMODULE *targetModule)
thisModule->m_maxz,thisModule->m_minz));
LOCALASSERT(1==0);
#endif
}
}
#endif

View file

@ -45,15 +45,8 @@ extern AIMODULE *FarNPC_GetTargetAIModuleForMarineRespond(STRATEGYBLOCK *sbPtr);
extern void FarNpc_FlipAround(STRATEGYBLOCK *sbPtr);
/* this define to help stop aliens coagulating in the environment */
#if SupportWindows95
#define MAX_GENERATORNPCSPERMODULE 5
#define MAX_VISIBLEGENERATORNPCS 8 //12
#else
/* PSX & Saturn*/
#define MAX_GENERATORNPCSPERMODULE 5
#define MAX_VISIBLEGENERATORNPCS 6
#endif
#define MAX_GENERATORNPCSPERMODULE 5
#define MAX_VISIBLEGENERATORNPCS 8 //12
#ifdef __cplusplus

View file

@ -304,32 +304,15 @@ void LiftBehaveFun(STRATEGYBLOCK* sbptr)
{
// if there is a dest, set the lift to go
// close current stations
#if PC_E3DEMO
LIFT_STATION* dest_stn = lift_ctrl->lift_stations[lift_ctrl->dest_station];
#endif
lift_stn = lift_ctrl->lift_stations[lift_ctrl->curr_station];
#if PC_E3DEMO
if(dest_stn->env != AvP.CurrentEnv)
{
// turn off inter env lifts
NewOnScreenMessage(GetTextString(TEXTSTRING_DB_ACCESSDENIED));
RequestState(dest_stn->lift_floor_switch, 0, 0);
lift_ctrl->dest_station = -1;
dest_stn->called = 0;
}
else
#endif
{
lift_ctrl->prev_station = lift_ctrl->curr_station;
if(lift_stn->lift_door)
{
// no door - must be on another env
RequestState(lift_stn->lift_door, 0, 0);
}
lift_ctrl->state = I_ls_closing_door;
}
lift_ctrl->prev_station = lift_ctrl->curr_station;
if(lift_stn->lift_door)
{
// no door - must be on another env
RequestState(lift_stn->lift_door, 0, 0);
}
lift_ctrl->state = I_ls_closing_door;
}
break;

View file

@ -18,19 +18,6 @@
extern int NormalFrameTime;
#if PSX
void * LightFXBehaveInit (void * bhdata, STRATEGYBLOCK* sbptr)
{
}
void LightFXBehaveFun (STRATEGYBLOCK* sbptr)
{
}
#else
void * LightFXBehaveInit (void * bhdata, STRATEGYBLOCK* sbptr)
{
LIGHT_FX_BEHAV_BLOCK * lfxbb;
@ -641,4 +628,3 @@ void SaveStrategy_LightFx(STRATEGYBLOCK* sbPtr)
COPYELEMENT_SAVE(timer2)
COPYELEMENT_SAVE(time_to_next_flicker_state)
}
#endif

View file

@ -3219,10 +3219,8 @@ void WanderMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -3573,10 +3571,8 @@ void PathfinderMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -3897,10 +3893,8 @@ void GuardMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -4247,10 +4241,8 @@ void LocalGuardMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -4544,10 +4536,8 @@ void LoiterMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif
@ -13627,10 +13617,8 @@ void RunAroundOnFireMission_Control(STRATEGYBLOCK *sbPtr) {
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR MARINE MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif

View file

@ -246,10 +246,8 @@ void PAQBehaviour(STRATEGYBLOCK *sbPtr)
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("PAQ MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif

View file

@ -1350,10 +1350,8 @@ void PredatorBehaviour(STRATEGYBLOCK *sbPtr)
if(PointIsInModule(thisModule, &localCoords)==0)
{
#if (!PSX)
textprint("FAR PREDATOR MODULE CONTAINMENT FAILURE \n");
LOCALASSERT(1==0);
#endif
}
}
#endif

View file

@ -395,14 +395,9 @@ void XenoMorphRoomBehaviour (STRATEGYBLOCK * sbptr)
pis->items = ms->items;
pis->sh_textures = ms->sh_textures;
#if PSX
#else
pis->sh_instruction[4].sh_instr_data = ms->sh_instruction[4].sh_instr_data;
#endif
#if SupportWindows95
sbptr->SBdptr->ObTxAnimCtrlBlks = xmrd->tacb;
#endif
sbptr->SBdptr->ObShape = xmrd->ProbesInShape;
sbptr->SBdptr->ObShapeData = GetShapeData(xmrd->ProbesInShape);
@ -499,10 +494,8 @@ void XenoMorphRoomBehaviour (STRATEGYBLOCK * sbptr)
pis->items = xmrd->pis_items_str;
pis->sh_textures = xmrd->pis_sht_str;
#if PSX
#else
pis->sh_instruction[4].sh_instr_data = xmrd->pis_items_str;
#endif
xmrd->XMR_State = XMRS_Idle;
}
break;

View file

@ -61,13 +61,8 @@ typedef struct xeno_morph_room_data
int timer;
#if PSX
struct polyheader ** pis_items_str;
struct psx_texture ** pis_sht_str;
#else
int ** pis_items_str;
int ** pis_sht_str;
#endif
char doorID[SB_NAME_LENGTH];
STRATEGYBLOCK* DoorToRoom;

View file

@ -507,11 +507,8 @@ MODULEMAPBLOCK TempModuleMap = \
0, /* VDB Definition */
0, /* Interior Type */
#if Saturn
LightType_PerObject, /* MapLightType */
#else
LightType_PerVertex, /* MapLightType */
#endif
{0,0,0}, /* MapOrigin */
0, /* MapSimShapes */
0, /* MapViewType */

View file

@ -398,182 +398,3 @@ extern BOOL AreDamageProfilesEqual(DAMAGE_PROFILE* profile1,DAMAGE_PROFILE* prof
#endif
#endif
/*KJL*****************************************************************************************
* Roxby's old stuff follows. I'm keeping it here 'cos it's very useful as reference material *
*****************************************************************************************KJL*/
#if 0
/*
Hmmm. Weapons need to be treated differnetly to Other Objects
Such as AMMO and Tools. They have things like Info Screen data
(Text and schematics) range, damage, weight, incumberance, DM
status, Jam status, reliabilty, Vulnerablity.
This contains the data sturcture and the weapons information
for the marine weapons - It may be extended to cover all
the predator weapons as well
*/
/*
The player can carry up to 100 kg.. Strong huh.
encumberance - a measure of how `encumbering' the weapon may
actually be. It is an abstrcted measure of how much it slows
the player down - It shouldnt effect the players fatigue - and
how difficult it is to change to another weapon.
To use a weapon it the players total `USING' encumberance has to
less than 50 in a normal corridor and less the 30 in an airduct
*/
/* Ammo
Ammo - this is where the weight is....
All this rounding... lets play
with integers only
These are only the initial specs, I imagine dramatic alterations.
Partic if we want to swap to weights to use shifts rather than divs
10 mm culw rounds (Ceramic - Ultra Light Weight) 0.05 Kg each. (1.5 oz!!)
20 mm culw rounds (Ceramic - Ultra Light Weight) 0.08 Kg each. (1.5 oz!!)
standard grenades 0.2 Kg each .
Heavy grenades 0.4 Kg each.
shotgun rounds 0.1 each
0 standard grenade 1 Kg
1 99x10 mm magizines of culw rounds. 5 Kg
2 500x10 mm magazines of culw rounds. 25 Kg
3 5xstandard grenades 1 Kg
4 5 Heavy grenades HE 2 Kg
5 5 Heavy grenades Napalm 2 Kg
6 5 HEavy grenades Canister 2 Kg
7 5 Heavy Grenades Cluster 2 Kg
8 5 Heavy Grenades WP 2 Kg
9 20x shotgun rounds 2 Kg
10 20 litres of fuel 18 Kg
11 500x20 mm magizines of culw rounds 40 Kg
12 Sonic Gun Power Packs 5 Kg
*/
/*
Weapons Information
Weight Kilos
Incumberance - Abstract use difficulty.
*/
#define MAX_PLAYER_WEAPONS 10
#define MAX_AMMO_TYPES 20
typedef struct ammo_data{
unsigned char weight; /*in 10ths of KG*/
unsigned char num_magazines;
unsigned short magazine_size;
unsigned short spread_radius;
unsigned short damage;
unsigned char damage_flags;
unsigned char flight_flags;
} AMMO_DATA;
/*damage flags*/
#define DAMAGE_POINT 0x01 /*point pixel damage*/
#define DAMAGE_SPREAD 0x02 /*Equal damage along radius*/
#define DAMAGE_TAPER 0x04 /*Decreasing damge on radius*/
#define DAMAGE_EXPLOSIVE1 0x08 /*explodes*/
#define DAMAGE_EXPLOSIVE2 0x10 /*big explodes*/
#define DAMAGE_DELAY 0x20 /*limpet*/
#define DAMAGE_FLAME 0x40 /*sets things on fire*/
/*Flight Flags*/
#define FLIGHT_HAND_GRENADE 0x01
#define FLIGHT_BULLET 0x02
#define FLIGHT_GRENADE_LNCH 0x04
typedef struct weapon_ammo_attributes{
unsigned char ammotype;
unsigned char remaining_ammo;
unsigned char targeting_flags;
unsigned char rate_of_fire; /*frames Between rounds */
unsigned char magazine_reload_time; /*frames to reload magazine*/
unsigned short failure_risk; /*0 - 2**16*/
unsigned char failure_flags;
} WEAP_AMMO_ATTR;
/* WEapon data contains the data to maintain, draw weapons
generation of these objects comes via the entity*/
/*
*schematic --- for the data retrival
*hudata - for drawing the HUD graphic . Note that this is PLATFORM dependent
*descriptive text --- to print up in the data retrival
*/
typedef struct weapon_data{
char weapon_flags;
char name[8]; /* can be made into something else if ness*/
/* YES the address of the platform spec data
structure*/
void *schematic; /* these contain the file name before the */
HUDGRAPHIC *huddata; /* graphic is loaded into here -- LPDDS*/
char *descriptivetext;
unsigned char weight; /*in 10ths of KG*/
unsigned char encumbrance; /*time it takes to swap the
weapon in pixels per sec*/
WEAP_AMMO_ATTR primary;
WEAP_AMMO_ATTR secondary;
#if Saturn
char* WDroxptr;
#endif
} WEAPON_DATA;
/*weapon_flags */
/*targeting flags*/
#define TARGETING_MANUAL 0x01
#define TARGETING_XHAIR 0x02
#define TARGETING_SMART 0x04
#define TARGETING_XTOS 0x08 /*targeting depends on equip*/
#define TARGETING_FAF_TRACK 0x10 /*Fire and forget....!*/
#define TARGETING_THROWN 0x20
/* failure flags */
#endif

View file

@ -117,8 +117,7 @@ typedef enum environments
I_Mps4,
I_Surface,
I_Entrance,
#if PSX || Saturn
#else
I_Dml1, // 25- Vertigo.rif for Al
// #ifndef MPLAYER_DEMO
I_Dml2, // KJL 16:59:58 05/1/97 - fruitbat.rif for Al
@ -131,7 +130,7 @@ typedef enum environments
I_Dml9, // KJL 16:59:58 05/19/97 - mu.rif for Jake
I_Dml10, // KJL 16:59:58 05/19/97 - mu.rif for Jake
// #endif
#endif
I_Num_Environments // 34
}I_AVP_ENVIRONMENTS;
@ -249,39 +248,6 @@ extern int Destroy_CurrentEnvironment();
extern void LoadGameFromFile();
extern void SaveGameToFile();
extern void InitCharacter();
/*************************************************************/
/* KJL 15:42:46 10/02/96 - Okay, I don't use HUDGRAPHIC on the PC anymore and I suggest
you don't use it on your platform either 'cos it's a mess. (Sorry Roxby, no offense...) */
/************ HUD GRAPHIC STUFF *********************/
typedef struct
{
void* data; /* just about anything you feel like points to the file name*/
char* filename;
int xdest, ydest; /*screen x y*/
int width, height; /*depth and height of dest incase of shrink*/
RECT_AVP *srcRect;
int hg_flags;
}HUDGRAPHIC;
/* where to put the grahic*/
#define HGflag_NotInVRAM 0x0000001 /*saturn only*/
#define HGflag_LoadIntoVDP2 0x0000002 /*saturn only*/
#define HGflag_LoadIntoVDP1 0x0000004 /*saturn only*/
/* how to get the graphic */
#define HGflag_AlwaysLoadOffDisk 0x00000200 /*cd or HD*/
#define HGflag_LoadedIntoMemory 0x00000400 /*loaded into memory*/
/* source directory for the graphic */
#define HGflag_MenuDir 0x00010000
/********************************************************/
@ -304,9 +270,6 @@ extern int UsingDataBase;
#define NUM_CREDIT_SCREENS 2
extern HUDGRAPHIC Menu[];
extern HUDGRAPHIC CreditScreen[];
typedef enum
{
UNLIT,
@ -337,6 +300,3 @@ extern volatile char StillFading;
#define GAMEDEF_INCLUDED
#endif

View file

@ -153,7 +153,6 @@ static void DisplayMarinesAmmo(void);
static void DoMotionTracker(void);
static int DoMotionTrackerBlips(void);
//static void UpdateMarineStatusValues(void);
static void HandleMarineWeapon(void);
static void AimGunSight(int aimingSpeed, TEMPLATE_WEAPON_DATA *twPtr);
@ -359,7 +358,7 @@ void MaintainHUD(void)
HandleMarineWeapon();
if (CurrentVisionMode==VISION_MODE_NORMAL) DoMotionTracker();
// UpdateMarineStatusValues();
CheckWireFrameMode(0);
//flash health if invulnerable
if((playerStatusPtr->invulnerabilityTimer/12000 %2)==0)
@ -1039,135 +1038,7 @@ static void DisplayMarinesAmmo(void)
}
}
#if 0
static void UpdateMarineStatusValues(void)
{
PLAYER_WEAPON_DATA *weaponPtr;
/* access the extra data hanging off the strategy block */
PLAYER_STATUS *playerStatusPtr= (PLAYER_STATUS *) (Player->ObStrategyBlock->SBdataptr);
GLOBALASSERT(playerStatusPtr);
{
/* player's current weapon */
GLOBALASSERT(playerStatusPtr->SelectedWeaponSlot<MAX_NO_OF_WEAPON_SLOTS);
/* init a pointer to the weapon's data */
weaponPtr = &(playerStatusPtr->WeaponSlot[playerStatusPtr->SelectedWeaponSlot]);
}
{
int value=playerStatusPtr->Health>>16; /* stored in 16.16 so shift down */
ValueOfHUDDigit[MARINE_HUD_HEALTH_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_HEALTH_TENS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_HEALTH_HUNDREDS]=value%10;
}
{
#if PC_E3DEMO
int value=playerStatusPtr->Energy>>16; /* stored in 16.16 so shift down */
#else
extern int FrameRate;
int value=FrameRate;
#endif
ValueOfHUDDigit[MARINE_HUD_ENERGY_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_ENERGY_TENS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_ENERGY_HUNDREDS]=value%10;
}
{
int value=playerStatusPtr->Armour>>16; /* stored in 16.16 so shift down */
ValueOfHUDDigit[MARINE_HUD_ARMOUR_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_ARMOUR_TENS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_ARMOUR_HUNDREDS]=value%10;
}
{
int value=weaponPtr->PrimaryRoundsRemaining>>16;
/* ammo is in 16.16. we want the integer part, rounded up */
if ( (weaponPtr->PrimaryRoundsRemaining&0xffff) ) value+=1;
ValueOfHUDDigit[MARINE_HUD_PRIMARY_AMMO_ROUNDS_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_PRIMARY_AMMO_ROUNDS_TENS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_PRIMARY_AMMO_ROUNDS_HUNDREDS]=value%10;
}
{
int value=weaponPtr->PrimaryMagazinesRemaining;
ValueOfHUDDigit[MARINE_HUD_PRIMARY_AMMO_MAGAZINES_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_PRIMARY_AMMO_MAGAZINES_TENS]=value%10;
}
/* KJL 14:54:39 03/26/97 - secondary ammo */
if ( (weaponPtr->WeaponIDNumber == WEAPON_PULSERIFLE)
||(weaponPtr->WeaponIDNumber == WEAPON_MYSTERYGUN) )
{
int value=weaponPtr->SecondaryRoundsRemaining>>16;
/* ammo is in 16.16. we want the integer part, rounded up */
if ( (weaponPtr->SecondaryRoundsRemaining&0xffff) ) value+=1;
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_ROUNDS_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_ROUNDS_TENS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_ROUNDS_HUNDREDS]=value%10;
value=weaponPtr->SecondaryMagazinesRemaining;
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_MAGAZINES_UNITS]=value%10;
value/=10;
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_MAGAZINES_TENS]=value%10;
BLTMarineNumericsToHUD(MARINE_HUD_SECONDARY_AMMO_MAGAZINES_TENS);
}
else if (weaponPtr->WeaponIDNumber == WEAPON_GRENADELAUNCHER)
{
/* KJL 11:46:57 04/09/97 - use to display your ammo type */
int value;
switch(GrenadeLauncherData.SelectedAmmo)
{
case AMMO_GRENADE:
{
value=1;
break;
}
case AMMO_FLARE_GRENADE:
{
value=2;
break;
}
case AMMO_FRAGMENTATION_GRENADE:
{
value=3;
break;
}
case AMMO_PROXIMITY_GRENADE:
{
value=4;
break;
}
default:
{
LOCALASSERT(0);
break;
}
}
ValueOfHUDDigit[MARINE_HUD_SECONDARY_AMMO_ROUNDS_UNITS]=value;
BLTMarineNumericsToHUD(MARINE_HUD_SECONDARY_AMMO_ROUNDS_UNITS);
}
else
{
BLTMarineNumericsToHUD(MARINE_HUD_PRIMARY_AMMO_MAGAZINES_TENS);
}
}
#endif
static void HandleMarineWeapon(void)
{
PLAYER_WEAPON_DATA *weaponPtr;

View file

@ -164,8 +164,7 @@ extern void PlatformSpecificInitAlienHUD(void);
******************REH*/
extern void PlatformSpecificExitingHUD(void);
/*KJL******************************************************************************************
* This is for the PSX (& possibly Saturn). Use this to pass your list of graphics to be drawn *
* to your GPU. *
* Use this to pass your list of graphics to be drawn to your GPU. *
******************************************************************************************KJL*/
extern void PlatformSpecificEnteringHUD(void);

View file

@ -1,78 +0,0 @@
/*
this now contains only the map processing
functions for the PC and saturn - compiled in maos
have been moved to comp_map
*/
#include "3dc.h"
#include "module.h"
#include "inline.h"
#include "stratdef.h"
#include "gamedef.h"
#define UseLocalAssert Yes
#include "ourasert.h"
/************ GLOBALS **********/
DISPLAYBLOCK *Player;
/***************************************************************/
/* MAP TYPE PROCESSING FUNCTIONS*/
/**************************************************************/
/*
The functions require a pointer to a display block. It uses "ObType"
in the block to select the function.
*/
static void Process_Default_MapType(DISPLAYBLOCK *dblockptr);
static void Process_Player_MapType(DISPLAYBLOCK *dblockptr);
static void Process_PlayerShipCamera_MapType(DISPLAYBLOCK *dblockptr);
static void Process_Sprite_MapType(DISPLAYBLOCK *dblockptr);
static void Process_Term_MapType(DISPLAYBLOCK *dblockptr);
void (*MapTypeFunctions[])(DISPLAYBLOCK *dblockptr) =
{
Process_Default_MapType,
Process_Player_MapType,
Process_PlayerShipCamera_MapType, /* Player ship camera */
Process_Sprite_MapType,
Process_Term_MapType
};
static void Process_Default_MapType(DISPLAYBLOCK *dptr)
{
dptr->ObLightType = LightType_PerVertex;
dptr->ObFlags |= ObFlag_MultLSrc;
}
static void Process_Player_MapType(DISPLAYBLOCK *dptr)
{
Player = dptr;
}
static void Process_PlayerShipCamera_MapType(DISPLAYBLOCK *dptr)
{
}
static void Process_Sprite_MapType(DISPLAYBLOCK *dblockptr)
{
}
static void Process_Term_MapType(DISPLAYBLOCK *dptr)
{}

View file

@ -21,10 +21,6 @@
#define UseLocalAssert Yes
#include "ourasert.h"
#if PSX
#include "psx_cdf.h"
#endif
/* prototypes for this file */
//static void BuildFM_EntryPoints(MODULE *thisModule);
//static void BuildFM_ASingleEP(MODULE *thisModule, MODULE *targetModule);
@ -41,13 +37,8 @@ extern int ModuleArraySize;
/* prototypes for external functions */
int SetupPolygonAccessFromShapeIndex(int shapeIndex);
int SetupPointAccessFromShapeIndex(int shapeIndex);
#if PSX
SVECTOR* AccessNextPoint(void);
SVECTOR* AccessPointFromIndex(int index);
#else
VECTORCH* AccessNextPoint(void);
VECTORCH* AccessPointFromIndex(int index);
#endif
VECTORCH* AccessNextPoint(void);
VECTORCH* AccessPointFromIndex(int index);
int *GetPolygonVertexIndices(void);
/* globals for this file */
@ -166,12 +157,6 @@ void BuildFarModuleLocs(void)
LOCALASSERT(ThisModuleIndex >= 0);
LOCALASSERT(ThisModuleIndex < ModuleArraySize);
#if PSX
#ifndef CDEMUL
pollhost();
#endif
#endif
#if logFarLocData
fprintf(logfile, "********************************* \n");
fprintf(logfile, "Module Index: %d %s\n", ThisModuleIndex,thisModule->name);
@ -216,12 +201,6 @@ void BuildFarModuleLocs(void)
fprintf(logfile, "Module Z range: %d %d \n \n", thisModule->m_minz, thisModule->m_maxz);
#endif
#if PSX
#ifndef CDEMUL
pollhost();
#endif
#endif
/* check for entry points into this module if there aren't any,
don't bother with auxilary locations */
@ -1008,13 +987,8 @@ static int GetModulePointBox(MODULE *thisModule, EPBBEXTENTS *extents)
pointCounter = SetupPointAccessFromShapeIndex(thisModule->m_mapptr->MapShape);
while(pointCounter>0)
{
#if PSX
SVECTOR* thisPt = AccessNextPoint();
VECTORCH thisWorldPoint;
#else
VECTORCH* thisPt = AccessNextPoint();
VECTORCH thisWorldPoint;
#endif
VECTORCH* thisPt = AccessNextPoint();
VECTORCH thisWorldPoint;
thisWorldPoint.vx = thisPt->vx + thisModule->m_world.vx;
thisWorldPoint.vy = thisPt->vy + thisModule->m_world.vy;
@ -1279,10 +1253,6 @@ static void BuildFM_AuxilaryLocs(MODULE *thisModule)
the location iiiiis inside the shape): if there is no up &
down polygon, the location is invalidated, and an error code
returned (either no up poly, no down poly, no up-or-down poly)
NB PSX!!!: uses kevin's shape access functions in platsup.c
I have added a new short one for Win95 - PSX needs it's own
version.
----------------------------------------------------------------*/
static void GetFarLocHeight(FARVALIDATEDLOCATION *location, MODULE *thisModule)
{

View file

@ -475,14 +475,14 @@ void DoObjectVisibility(STRATEGYBLOCK *sbPtr)
}
case(I_BehaviourPlatform):
{
PLATFORMLIFT_BEHAVIOUR_BLOCK *platformliftdata = (PLATFORMLIFT_BEHAVIOUR_BLOCK *)sbPtr->SBdataptr;
//don't make platform lift far if it is currently moving
//(otherwise the lift won't be able to move)
if(platformliftdata->state!=PLBS_GoingUp &&
platformliftdata->state!=PLBS_GoingDown)
{
MakeObjectFar(sbPtr);
}
PLATFORMLIFT_BEHAVIOUR_BLOCK *platformliftdata = (PLATFORMLIFT_BEHAVIOUR_BLOCK *)sbPtr->SBdataptr;
//don't make platform lift far if it is currently moving
//(otherwise the lift won't be able to move)
if(platformliftdata->state!=PLBS_GoingUp &&
platformliftdata->state!=PLBS_GoingDown)
{
MakeObjectFar(sbPtr);
}
break;
}
case(I_BehaviourBinarySwitch):
@ -539,11 +539,7 @@ void DoObjectVisibility(STRATEGYBLOCK *sbPtr)
}
case(I_BehaviourNetGhost):
{
#if PSX
GLOBALASSERT(1==2);
#else
MakeGhostFar(sbPtr);
#endif
MakeGhostFar(sbPtr);
break;
}
case(I_BehaviourTrackObject):
@ -1092,8 +1088,7 @@ void InitInanimateObject(void* bhdata, STRATEGYBLOCK *sbPtr)
/* set the default inanimate object dynamics template: Inanimate for single player,
and Static for multiplayer
NB some objects are always static, and initialised using
the static dynamics template directly
NB2 PSX: all objects are static */
the static dynamics template directly */
#if SupportWindows95
// if(AvP.Network==I_No_Network) inanimateDynamicsInitialiser = DYNAMICS_TEMPLATE_INANIMATE;
// else inanimateDynamicsInitialiser = DYNAMICS_TEMPLATE_STATIC;

View file

@ -111,28 +111,8 @@ void OperateObjectInLineOfSight(void)
}
case I_BehaviourDatabase:
{
#if PC_E3DEMO||PSX_DEMO
/* KJL 10:56:39 05/28/97 - E3DEMO change */
/* KJL 10:55:44 05/28/97 - display 'Access Denied' message */
NewOnScreenMessage(GetTextString(TEXTSTRING_DB_ACCESSDENIED));
#else
AvP.GameMode = I_GM_Menus;
#if PSX
{
extern int Global_Database_Num;
Global_Database_Num=((DATABASE_BLOCK *)nearestObjectPtr->ObStrategyBlock->SBdataptr)->num;
}
#else
AvP.DatabaseAccessNum=((DATABASE_BLOCK *)nearestObjectPtr->ObStrategyBlock->SBdataptr)->num;
#endif
/* KJL 16:43:01 03/19/97 - CHANGE ME! Need to pass database number */
// RJHG - would be ((*DATABASEBLOCK)nearestObjectPtr->ObStrategyBlock->SBDataPtr)->num
// CDF - I think it would be ((DATABASE_BLOCK *)nearestObjectPtr->ObStrategyBlock->SBdataptr)->num
#endif
AvP.DatabaseAccessNum=((DATABASE_BLOCK *)nearestObjectPtr->ObStrategyBlock->SBdataptr)->num;
break;
}
default:

View file

@ -1131,83 +1131,6 @@ void RestoreAllDDGraphics(void)
}
void ReleaseHUDGraphic(HUDGRAPHIC* hgptr)
{
GLOBALASSERT(hgptr);
GLOBALASSERT(hgptr->data);
ReleaseDDSurface((void*)(*(int*)hgptr->data));
}
/*
Windows externs. See win_func
*/
void BLTGraphicToScreen(HUDGRAPHIC* hgptr)
{
/*
sets up the drawing of general hud graphics. Bltted
to full screen if there is no width and heiht information in
the DD HUDGRAPHIC
*/
RECT destRect;
GLOBALASSERT(hgptr != NULL);
GLOBALASSERT(1 > 0);
// HRESULT ddrval;
LPDIRECTDRAWSURFACE wdds = *((LPDIRECTDRAWSURFACE*)hgptr->data);
GLOBALASSERT(hgptr->srcRect->top < hgptr->srcRect->bottom);
GLOBALASSERT(hgptr->srcRect->left < hgptr->srcRect->right);
#if 0
textprint("%d TOP %d BOTTOM\n", hgptr->srcRect->top , hgptr->srcRect->bottom);
textprint("%d LEFT %d RIGHT\n", hgptr->srcRect->left , hgptr->srcRect->right);
textprint("/n%d TOP %d BOTTOM\n", screenRect.top , screenRect.bottom);
textprint("%d LEFT %d RIGHT\n", screenRect.left , screenRect.right);
WaitForReturn();
#endif
if((hgptr->width == 0) || (hgptr->height == 0))
{
// ddrval = lpDDSBack->Blt(NULL, wdds, hgptr->srcRect, DDBLT_WAIT, NULL);
fprintf(stderr, "BLTGraphicToScreen: w = %d, h = %d\n", hgptr->width, hgptr->height);
}
else
{
/* fill in the structure for the dest rect*/
destRect.top = hgptr->ydest;
destRect.bottom = hgptr->ydest + hgptr->height;
destRect.left = hgptr->xdest;
destRect.right = hgptr->xdest + hgptr->width;
/*
ddrval = lpDDSBack->Blt(&destRect, wdds, hgptr->srcRect, DDBLT_WAIT, NULL);
*/
fprintf(stderr, "BLTGraphicToScreen: w = %d, h = %d\n", hgptr->width, hgptr->height);
}
/*
if(ddrval != DD_OK)
{
ReleaseDirect3D();
exit(0x666009);
}
*/
}
/************************** FONTS *************************/
/**********************************************************/
/**********************************************************/

View file

@ -974,14 +974,6 @@ void KShapeItemsInstr(SHAPEINSTR *shapeinstrptr)
if(pheaderPtr->PolyItemType == I_3dTexturedPolygon)
pheaderPtr->PolyItemType = I_2dTexturedPolygon;
/* KJL 12:57:43 05/29/97 - E3DEMO hack to draw everything in 3d */
#if PC_E3DEMO
pheaderPtr->PolyFlags &= ~iflag_tx2dor3d;
if(pheaderPtr->PolyItemType == I_Gouraud2dTexturedPolygon)
pheaderPtr->PolyItemType = I_Gouraud3dTexturedPolygon;
#endif
if(ItemOCSBlock.ocs_clipstate == ocs_cs_totally_on)
{
CreateItemPtsArray[*shapeitemptr](shapeitemptr, &PointsArray[0]);

View file

@ -32,8 +32,6 @@ extern "C" {
#define SuppressWarnings Yes
#define SupportWindows95 Yes
#define Saturn No
#define PSX No
#define platform_pc Yes
#define InterfaceEngine No

View file

@ -12,10 +12,6 @@
#include <stddef.h>
/* defines */
#if Saturn
#define DBGMALLOC 1
#endif
#if SupportWindows95
#if 1
#define DBGMALLOC 0
@ -47,7 +43,7 @@ a separate copy of the string for each malloc - just store the
pointer.
So, on PC this reduces the data size for the malloc records from 1.04Mb to 320K ! */
#if SupportWindows95 || PSX
#if SupportWindows95
#define COPY_FILENAME 0 /* new behavior */
#else
#define COPY_FILENAME 1 /* previous behavior */

View file

@ -2311,212 +2311,8 @@ void UpdateParallelStrategy(void);
unsigned char* AllocateScreenBuffer(int sbuffersize);
#if 0
#if 0
void *AllocateMem(size_t __size);
void DeallocateMem(void *__ptr);
#endif
#if PSX
#ifdef DBGMALLOC
extern void *record_malloc(long size, char string[], unsigned long lineno);
extern void record_free(void *ptr,char string[], unsigned long lineno);
#define AllocateMem(x) record_malloc(x,__FILE__, __LINE__)
#define DeallocateMem(x) record_free(x,__FILE__, __LINE__)
#else
void *AllocateMem(size_t __size);
void DeallocateMem(void *__ptr);
#endif
#else
void *AllocateMem(size_t __size);
void DeallocateMem(void *__ptr);
#endif
#endif
void ScanDraw_Item_Polygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Polygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Polygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Polygon_VideoModeType_8T(int *itemptr);
#if (ZBufferTest || SupportZBuffering)
void ScanDraw_Item_Polygon_ZBuffer_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Polygon_ZBuffer_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Polygon_ZBuffer_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Polygon_ZBuffer_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_GouraudPolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_GouraudPolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_GouraudPolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_GouraudPolygon_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_GouraudPolygon_HPV_VideoModeType_15(int *itemptr);
void ScanDraw_Item_GouraudPolygon_HPV_VideoModeType_24(int *itemptr);
void ScanDraw_Item_GouraudPolygon_HPV_VideoModeType_8T(int *itemptr);
#if ZBufferTest
void ScanDraw_Item_GouraudPolygon_ZBuffer_VideoModeType_8(int *itemptr);
void ScanDraw_Item_GouraudPolygon_ZBuffer_VideoModeType_15(int *itemptr);
void ScanDraw_Item_GouraudPolygon_ZBuffer_VideoModeType_24(int *itemptr);
void ScanDraw_Item_GouraudPolygon_ZBuffer_VideoModeType_8T(int *itemptr);
#endif
#if SupportZBuffering
void ScanDraw_ZB_Item_GouraudPolygon_VideoModeType_8(int *itemptr);
void ScanDraw_ZB_Item_GouraudPolygon_VideoModeType_15(int *itemptr);
void ScanDraw_ZB_Item_GouraudPolygon_VideoModeType_24(int *itemptr);
void ScanDraw_ZB_Item_GouraudPolygon_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_2dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_2dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_2dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_2dTexturePolygon_VideoModeType_8T(int *itemptr);
#if SupportZBuffering
void ScanDraw_ZB_Item_2dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_ZB_Item_2dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_ZB_Item_2dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_ZB_Item_2dTexturePolygon_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_Gouraud2dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Gouraud2dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Gouraud2dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Gouraud2dTexturePolygon_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_ZB_Gouraud2dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_Gouraud2dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_Gouraud2dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_Gouraud2dTexturePolygon_VideoModeType_8T(int *itemptr);
#if support3dtextures
void ScanDraw_Item_3dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_VideoModeType_8T(int *itemptr);
#endif
#if SupportGouraud3dTextures
void ScanDraw_Item_Gouraud3dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_S_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_S_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_S_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Gouraud3dTexturePolygon_Linear_S_VideoModeType_8T(int *itemptr);
#if SupportZBuffering
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_S_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_S_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_S_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_Gouraud3dTexturePolygon_Linear_S_VideoModeType_8T(int *itemptr);
#endif /* SupportZBuffering */
#endif /* SupportGouraud3dTextures */
#if support3dtextures
#if SupportZBuffering
void ScanDraw_Item_ZB_3dTexturePolygon_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_3dTexturePolygon_QuadI_VideoModeType_8(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_QuadI_VideoModeType_15(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_QuadI_VideoModeType_24(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_QuadI_VideoModeType_8T(int *itemptr);
#if SupportZBuffering
void ScanDraw_ZB_Item_3dTexturePolygon_QuadI_VideoModeType_8(int *itemptr);
void ScanDraw_ZB_Item_3dTexturePolygon_QuadI_VideoModeType_15(int *itemptr);
void ScanDraw_ZB_Item_3dTexturePolygon_QuadI_VideoModeType_24(int *itemptr);
void ScanDraw_ZB_Item_3dTexturePolygon_QuadI_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_3dTexturePolygon_Linear_VideoModeType_8(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_VideoModeType_15(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_VideoModeType_24(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_VideoModeType_8T(int *itemptr);
#if SupportZBuffering
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_VideoModeType_8T(int *itemptr);
#endif
void ScanDraw_Item_3dTexturePolygon_Linear_S_VideoModeType_8(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_S_VideoModeType_15(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_S_VideoModeType_24(int *itemptr);
void ScanDraw_Item_3dTexturePolygon_Linear_S_VideoModeType_8T(int *itemptr);
#if SupportZBuffering
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_S_VideoModeType_8(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_S_VideoModeType_15(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_S_VideoModeType_24(int *itemptr);
void ScanDraw_Item_ZB_3dTexturePolygon_Linear_S_VideoModeType_8T(int *itemptr);
#endif
#endif /* support3dtextures */
void ScanDraw_Item_Polyline_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Polyline_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Polyline_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Polyline_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_FilledPolyline_VideoModeType_8(int *itemptr);
void ScanDraw_Item_FilledPolyline_VideoModeType_15(int *itemptr);
void ScanDraw_Item_FilledPolyline_VideoModeType_24(int *itemptr);
void ScanDraw_Item_FilledPolyline_VideoModeType_8T(int *itemptr);
void ScanDraw_Item_Wireframe_VideoModeType_8(int *itemptr);
void ScanDraw_Item_Wireframe_VideoModeType_15(int *itemptr);
void ScanDraw_Item_Wireframe_VideoModeType_24(int *itemptr);
void ScanDraw_Item_Wireframe_VideoModeType_8T(int *itemptr);
#if 0
void ScanDraw_Item_HUDPolyline_VideoModeType_8(int *itemptr);
void ScanDraw_Item_HUDPolyline_VideoModeType_15(int *itemptr);
void ScanDraw_Item_HUDPolyline_VideoModeType_24(int *itemptr);
void ScanDraw_Item_HUDPolyline_VideoModeType_8T(int *itemptr);
#endif
void SetPalette(unsigned char *palette);
void MakeTextureLightingTable6(void);
void MakeTextureLightingTable6G(void);
void MakeTextureLightingTable15(void);
void MakeTextureLightingTable24(void);
void MakeTextureLightingTable8T(void);
void CreatePaletteRemapTable(unsigned char *palette);
unsigned char GetRemappedPaletteColour(int r, int g, int b, int bitsize);
@ -2574,7 +2370,6 @@ TEXTURE* LoadBMP(char *fname, IMAGEHEADER *iheader);
TEXTURE* LoadPGM(char *fname, IMAGEHEADER *iheader);
int LoadPGMPalette(char *fname, unsigned char *palette);
int LoadPGMPaletteLightingTable(char *filename, unsigned char *palette);
void MakeTextureLightingTableRaw256(unsigned char *palette);
void Create_MIP_Map(IMAGEHEADER *iheader);
@ -2605,32 +2400,6 @@ typedef struct mousedata {
void ReadKeyboard(void);
#if 0
void ReadEmulatedSaturnControlPad(void);
unsigned int CheckPad(void);
void ExaminePad(void);
/*
Saturn Control Pad
See pad.h
Model S Pad, direct mode
*/
#define PAD_DOWN 0x0001
#define PAD_UP 0x0002
#define PAD_LEFT 0x0004
#define PAD_RIGHT 0x0008
#define PAD_BUTC 0x0010
#define PAD_BUTB 0x0020
#define PAD_BUTA 0x0040
#define PAD_START 0x0080
#define PAD_BUTZ 0x0100
#define PAD_BUTY 0x0200
#define PAD_BUTX 0x0400
#define PAD_MODE 0x0800
#define PAD_R 0x0800
#define PAD_L 0x1000
#endif
void WaitForReturn(void);
void CursorHome(void);

View file

@ -527,10 +527,6 @@ typedef struct merged_poly
#else
#if Saturn
#define iflag_sattexture 0x00000080 /* Outcode if outside frame buffer or behind z plane, else just draw */
#endif
#if platform_pc
#define iflag_zbuffer_w 0x00000080 /* Z-Buffer, Write-Only */
#endif
@ -578,11 +574,6 @@ typedef struct merged_poly
#define iflag_sortfarz 0x04000000 /* Use maxz for depth value */
#define iflag_bufferxy 0x08000000 /* Internal - Saturn Only
- for xy clamped item */
#define iflag_clampz 0x10000000 /* Internal - Saturn Only
- for z clamped item */
#define iflag_light_corona 0x20000000 /* For use by the placed light strategy */
@ -781,11 +772,7 @@ typedef struct texelgtx3d {
typedef unsigned char TEXTURE;
#if Saturn
#define ImageNameSize 16
#else
#define ImageNameSize 128+1
#endif
typedef struct imageheader {

View file

@ -139,8 +139,6 @@ void DrawWaterFallPoly(VECTORCH *v);
* they will end up in high memory on the Saturn. *
************************************************************************************KJL*/
VECTORCH Global_LightVector={1,};
/*
Global variables and arrays
*/
@ -160,10 +158,6 @@ VECTORCH MorphedPts[maxmorphPts];
#endif /* SupportMorphing */
#if Saturn
extern int PolygonSubdivideEntry(POLYHEADER* itemptr);
#endif
static COLOURINTENSITIES ColourIntensityArray[maxrotpts];

View file

@ -333,27 +333,8 @@ int MinInt(int *iarray, int iarraysize)
*/
void CreateEulerMatrix(e, m1)
EULER *e;
MATRIXCH *m1;
void CreateEulerMatrix(EULER *e, MATRIXCH *m1)
{
#if 0
SVECTOR eulers;
eulers.vx=(e->EulerX)&4095;
eulers.vy=(e->EulerY)&4095;
eulers.vz=(e->EulerZ)&4095;
RotMatrix(&eulers,(MATRIX *)scratchp);
psx2ch((MATRIX *)scratchp,m1);
#else
int t, sx, sy, sz, cx, cy, cz;
@ -428,9 +409,6 @@ void CreateEulerMatrix(e, m1)
/* m33 = cx*cy */
m1->mat33=MUL_FIXED(cx,cy);
#endif
}
@ -513,27 +491,9 @@ void CreateEulerVector(EULER *e, VECTORCH *v)
*/
void MatrixMultiply(m1, m2, m3)
struct matrixch *m1, *m2, *m3;
void MatrixMultiply(struct matrixch *m1, struct matrixch *m2, struct matrixch *m3)
{
#if 0
PushMatrix();
ch2psx(m1,(MATRIX *)scratchp);
ch2psx(m2,(MATRIX *)(scratchp+(sizeof(MATRIX))));
MulMatrix0((MATRIX *)scratchp,(MATRIX *)(scratchp+(sizeof(MATRIX))),(MATRIX *)(scratchp+((sizeof(MATRIX)<<1))));
psx2ch((MATRIX *)(scratchp+((sizeof(MATRIX)<<1))),m3);
PopMatrix();
#else
MATRIXCH TmpMat;
/* m11'' = c1.r1' */
@ -593,93 +553,16 @@ void MatrixMultiply(m1, m2, m3)
/* Finally, copy TmpMat to m3 */
CopyMatrix(&TmpMat, m3);
#endif
}
void PSXAccurateMatrixMultiply(m1, m2, m3)
struct matrixch *m1, *m2, *m3;
{
MATRIXCH TmpMat;
/* m11'' = c1.r1' */
TmpMat.mat11=MUL_FIXED(m1->mat11,m2->mat11);
TmpMat.mat11+=MUL_FIXED(m1->mat21,m2->mat12);
TmpMat.mat11+=MUL_FIXED(m1->mat31,m2->mat13);
/* m12'' = c2.r1' */
TmpMat.mat12=MUL_FIXED(m1->mat12,m2->mat11);
TmpMat.mat12+=MUL_FIXED(m1->mat22,m2->mat12);
TmpMat.mat12+=MUL_FIXED(m1->mat32,m2->mat13);
/* m13'' = c3.r1' */
TmpMat.mat13=MUL_FIXED(m1->mat13,m2->mat11);
TmpMat.mat13+=MUL_FIXED(m1->mat23,m2->mat12);
TmpMat.mat13+=MUL_FIXED(m1->mat33,m2->mat13);
/* m21'' = c1.r2' */
TmpMat.mat21=MUL_FIXED(m1->mat11,m2->mat21);
TmpMat.mat21+=MUL_FIXED(m1->mat21,m2->mat22);
TmpMat.mat21+=MUL_FIXED(m1->mat31,m2->mat23);
/* m22'' = c2.r2' */
TmpMat.mat22=MUL_FIXED(m1->mat12,m2->mat21);
TmpMat.mat22+=MUL_FIXED(m1->mat22,m2->mat22);
TmpMat.mat22+=MUL_FIXED(m1->mat32,m2->mat23);
/* m23'' = c3.r2' */
TmpMat.mat23=MUL_FIXED(m1->mat13,m2->mat21);
TmpMat.mat23+=MUL_FIXED(m1->mat23,m2->mat22);
TmpMat.mat23+=MUL_FIXED(m1->mat33,m2->mat23);
/* m31'' = c1.r3' */
TmpMat.mat31=MUL_FIXED(m1->mat11,m2->mat31);
TmpMat.mat31+=MUL_FIXED(m1->mat21,m2->mat32);
TmpMat.mat31+=MUL_FIXED(m1->mat31,m2->mat33);
/* m32'' = c2.r3' */
TmpMat.mat32=MUL_FIXED(m1->mat12,m2->mat31);
TmpMat.mat32+=MUL_FIXED(m1->mat22,m2->mat32);
TmpMat.mat32+=MUL_FIXED(m1->mat32,m2->mat33);
/* m33'' = c3.r3' */
TmpMat.mat33=MUL_FIXED(m1->mat13,m2->mat31);
TmpMat.mat33+=MUL_FIXED(m1->mat23,m2->mat32);
TmpMat.mat33+=MUL_FIXED(m1->mat33,m2->mat33);
/* Finally, copy TmpMat to m3 */
CopyMatrix(&TmpMat, m3);
}
/*
Transpose Matrix
*/
void TransposeMatrixCH(m1)
MATRIXCH *m1;
void TransposeMatrixCH(MATRIXCH *m1)
{
@ -892,11 +775,7 @@ void _RotateVector(VECTORCH *v, MATRIXCH* m)
*/
void _RotateAndCopyVector(v1, v2, m)
VECTORCH *v1;
VECTORCH *v2;
MATRIXCH *m;
void _RotateAndCopyVector(VECTORCH *v1, VECTORCH *v2, MATRIXCH *m)
{
@ -916,9 +795,6 @@ void _RotateAndCopyVector(v1, v2, m)
/*
Matrix to Euler Angles
@ -1240,12 +1116,6 @@ void MatrixToEuler(MATRIXCH *m, EULER *e)
}
#if 1
#define j_and_r_change_2 Yes
void MatrixToEuler2(MATRIXCH *m, EULER *e)
@ -1479,10 +1349,6 @@ void MatrixToEuler2(MATRIXCH *m, EULER *e)
#endif
/*
Normalise a Matrix
@ -1749,9 +1615,7 @@ int ArcSin(int s)
*/
int ArcTan(height_x, width_z)
int height_x,width_z;
int ArcTan(int height_x, int width_z)
{
@ -2854,4 +2718,3 @@ void QuatToMat(QUAT *q,MATRIXCH *m)
m->mat33=ONE_FIXED-q_2xx-q_2yy;
}

View file

@ -46,13 +46,9 @@
#include "ourasert.h"
#if PSX || Saturn
#define MAXMALLOCS 600
#else
#define MAXMALLOCS 2500000
/* assertion fires if max exceeded */
/* changed to 1000000 by DHM 7/4/98; was 70001 */
#endif
#define MAXMALLOCS 2500000
/* assertion fires if max exceeded */
/* changed to 1000000 by DHM 7/4/98; was 70001 */
#define MALLOC_FILL_VALUE 0x21
#define FREE_FILL_VALUE 0x89
@ -113,15 +109,7 @@ extern int textprint(const char* string, ...);
extern void ExitSystem(void);
extern void WaitForReturn(void);
/* textprint on psx impacts frame rate massively if not
used just for error messages, so it is often turned off.
Hence the use of textprint2 below */
#if PSX
#define textprint2 printf
#else
#define textprint2 textprint
#endif
/* function declarations */
#if COPY_FILENAME
@ -173,148 +161,6 @@ void record_free(void *ptr, char const * string, unsigned long lineno)
return;
}
#if PSX || Saturn
#if COPY_FILENAME
static int AdjustMallocRecord(unsigned long addr, long size, char string[], unsigned long lineno)
#else
static int AdjustMallocRecord(unsigned long addr, long size, char const * string, unsigned long lineno)
#endif
{
int i=0;
char *ptr = (char *)addr;
static int no_record_init = 1;
MALLOC_RECORD *recordPtr = MallocRecord;
if(no_record_init)
{
InitMallocRecords();
no_record_init = 0;
}
if(size==FREEING_MEMORY) /* must be freeing memory */
{
GLOBALASSERT(addr); /* ensure not null addr */
while(i<MAXMALLOCS)
{
if(recordPtr->addr==addr)
{
TotalMallocNum--;
size = recordPtr->size;
while (size--)
{
*ptr++ = FREE_FILL_VALUE;
}
#ifdef OVERRUN_SIZE
{
char const * overrun_ptr = overrun_code;
int ov_cnt = OVERRUN_SIZE(recordPtr->size);
do /* a memcmp - dunno if its supported on all platforms */
{
if (!*overrun_ptr) overrun_ptr = overrun_code; /* repeat */
if (*overrun_ptr++ != *ptr++)
{
textprint2("\nOut of Bounds!\n%lu bytes allocated to %p\nat %s, line %lu\n", recordPtr->size,(void *)recordPtr->addr,recordPtr->filename,recordPtr->linenum);
GLOBALASSERT(!"OUT OF BOUNDS detected in FREE");
}
}
while (--ov_cnt);
}
#endif
recordPtr->addr = 0;
TotalMemAllocated -= recordPtr->size;
recordPtr->size = 0;
#if COPY_FILENAME
recordPtr->filename[0] = 0;
#else
recordPtr->filename = "";
#endif
recordPtr->linenum = 0;
break; /* exit while loop */
}
i++;
recordPtr++;
}
if(i>=MAXMALLOCS)
{
textprint2("\n\n\n\nFree Error! %s, line %d\n", string, (int)lineno);
GLOBALASSERT(0);
return(0);
}
}
else /* must be mallocing memory */
{
TotalMallocNum++;
GLOBALASSERT(TotalMallocNum<MAXMALLOCS); /* just increase MAXMALLOCS define above if this fires */
// RWH chack to see that this address isn't already in use
i = 0;
recordPtr = MallocRecord;
while(i<MAXMALLOCS)
{
if(recordPtr->addr == addr)
{
GLOBALASSERT(0);
}
i++;
recordPtr++;
}
i = 0;
recordPtr = MallocRecord;
while(i<MAXMALLOCS)
{
if(recordPtr->addr==0)
{
recordPtr->addr = addr;
recordPtr->size = size;
TotalMemAllocated += size;
#if COPY_FILENAME
strcpy(recordPtr->filename, string);
#else
recordPtr->filename = string;
#endif
recordPtr->linenum = lineno;
while (size--)
{
*ptr++ = MALLOC_FILL_VALUE;
}
#ifdef OVERRUN_SIZE
{
char const * overrun_ptr = overrun_code;
int ov_cnt = OVERRUN_SIZE(recordPtr->size);
do /* a memcpy */
{
if (!*overrun_ptr) overrun_ptr = overrun_code; /* repeat */
*ptr++ = *overrun_ptr++;
}
while (--ov_cnt);
}
#endif
break; /* exit while loop */
}
i++;
recordPtr++;
}
GLOBALASSERT(i<MAXMALLOCS); /* This should never fire - oh well */
}
return(1);
}
#else
#if COPY_FILENAME
static int AdjustMallocRecord(unsigned long addr, long size, char string[], unsigned long lineno)
#else
@ -538,7 +384,7 @@ static int AdjustMallocRecord(unsigned long addr, long size, char const * string
return(1);
}
#endif
void DumpMallocInfo(int type)
{
int i;
@ -601,59 +447,6 @@ void DumpMallocInfo(int type)
}
#endif
#if PSX
long fd;
fd = PCopen(MALLOCDUMPFILE,1,0);
if(fd<0)
{
fd = PCcreat(MALLOCDUMPFILE,0);
PCclose(fd);
fd = PCopen(MALLOCDUMPFILE,1,0);
}
if(fd<0)
{
textprint2("\n\n\nfile open error %s", MALLOCDUMPFILE);
}
else
{
char stringbuf[200];
sprintf(stringbuf,"\n\n\n\nOUTSTANDING MEMORY ALLOCATIONS\n\n");
#if APPEND_TO_DUMPFILE
PClseek(fd,0,2);
#endif
PCwrite(fd,stringbuf,strlen(stringbuf));
for (i=0;i<MAXMALLOCS;i++ )
{
if(MallocRecord[i].addr!=0)
{
if (!(MallocRecord[i].linenum & CPPGLOBAL))
{
sprintf(stringbuf,"\nmalloc: %d bytes,line %d in %s",
(int)MallocRecord[i].size, (int)MallocRecord[i].linenum, MallocRecord[i].filename);
}
else
{
sprintf(stringbuf,"\nC++ global construct malloc: %d bytes,line %d in %s",
(int)MallocRecord[i].size, (int)(MallocRecord[i].linenum &~CPPGLOBAL), MallocRecord[i].filename);
}
PCwrite(fd,stringbuf,strlen(stringbuf));
}
}
sprintf(stringbuf,"\n\nTotalMemAllocated: %d\nTotalMallocNum: %d\n",
(int)TotalMemAllocated, (int)TotalMallocNum);
PCwrite(fd,stringbuf,strlen(stringbuf));
PCclose(fd);
}
#endif
}
}
@ -735,59 +528,6 @@ void DumpBoundsCheckInfo(int type)
}
#endif
#if PSX
long fd;
fd = PCopen(MALLOCDUMPFILE,1,0);
if(fd<0)
{
fd = PCcreat(MALLOCDUMPFILE,0);
PCclose(fd);
fd = PCopen(MALLOCDUMPFILE,1,0);
}
if(fd<0)
{
textprint2("\n\n\nfile open error %s", MALLOCDUMPFILE);
}
else
{
char stringbuf[200];
sprintf(stringbuf,"\n\n\n\nBOUNDS_CHECK_PROBLEMS\n\n");
#if APPEND_TO_DUMPFILE
PClseek(fd,0,2);
#endif
PCwrite(fd,stringbuf,strlen(stringbuf));
for (i=0;i<MAXMALLOCS;i++ )
{
if(MallocRecord[i].addr!=0)
{
MALLOC_RECORD *recordPtr = &MallocRecord[i];
unsigned char const * overrun_ptr = overrun_code;
unsigned char const * ptr = (unsigned char const *)recordPtr->addr + recordPtr->size;
int ov_cnt = OVERRUN_SIZE(recordPtr->size);
do /* a memcmp - dunno if its supported on all platforms */
{
if (!*overrun_ptr) overrun_ptr = overrun_code; /* repeat */
if (*overrun_ptr++ != *ptr++)
{
sprintf(stringbuf,"\nOut of Bounds!\n%lu bytes allocated to %p\nat %s, line %lu\n", recordPtr->size,(void *)recordPtr->addr,recordPtr->filename,recordPtr->linenum);
PCwrite(fd,stringbuf,strlen(stringbuf));
break;
}
}
while (--ov_cnt);
}
}
PCclose(fd);
}
#endif
}
#endif

View file

@ -239,7 +239,6 @@ private:
};
#define PSXLightMode 0
//details of how light data should be altered for different platforms.
//currently just playstation
class Light_Scale_Chunk : public Chunk

View file

@ -248,7 +248,6 @@ int SetupPolygonAccessFromShapeIndex(int shapeIndex)
/*--------------------Patrick 17/12/96----------------------------
I have added some more shape data access functions......
PSX versions are required.
----------------------------------------------------------------*/
static VECTORCH patPointData;
@ -353,7 +352,6 @@ int *GetPolygonVertexIndices(void)
/*--------------------Roxby 3/7/97----------------------------
I have added some more shape data access functions......
taken from PSX versions
----------------------------------------------------------------*/

View file

@ -16,8 +16,6 @@ extern "C" {
#endif
#define platform_pc Yes
#define Saturn No
/* Types */