mirror of
https://github.com/id-Software/Wolf3D-iOS.git
synced 2026-03-20 08:59:51 +01:00
Source release of Wolfenstein 3D Classic Platinum for iOS, 1.0
This commit is contained in:
180
wolf3d/newCode/wolf/wolf_player.h
Normal file
180
wolf3d/newCode/wolf/wolf_player.h
Normal file
@@ -0,0 +1,180 @@
|
||||
/*
|
||||
|
||||
Copyright (C) 2004 Michael Liebscher
|
||||
Copyright (C) 2000-2002 by DarkOne the Hacker
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
* wolf_player.h: Wolfenstein3-D player management.
|
||||
*
|
||||
* Author: Michael Liebscher <johnnycanuck@users.sourceforge.net>
|
||||
* Date: 2004
|
||||
*
|
||||
* Acknowledgement:
|
||||
* Portion of this code was derived from NewWolf, and was originally
|
||||
* written by DarkOne the Hacker.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
Notes:
|
||||
This module is implemented by wolf_player.c
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __WOLF_PLAYER_H__
|
||||
#define __WOLF_PLAYER_H__
|
||||
|
||||
#define ITEM_KEY_1 1
|
||||
#define ITEM_KEY_2 2
|
||||
#define ITEM_KEY_3 4
|
||||
#define ITEM_KEY_4 8
|
||||
#define ITEM_WEAPON_1 16
|
||||
#define ITEM_WEAPON_2 32
|
||||
#define ITEM_WEAPON_3 64
|
||||
#define ITEM_WEAPON_4 128
|
||||
#define ITEM_WEAPON_5 256
|
||||
#define ITEM_WEAPON_6 512
|
||||
#define ITEM_WEAPON_7 1024
|
||||
#define ITEM_WEAPON_8 2048
|
||||
#define ITEM_BACKPACK (1<<12) // doubles carrying capacity
|
||||
#define ITEM_AUGMENT (1<<13) // adds 50 to maximum health
|
||||
#define ITEM_UNIFORM (1<<14) // allows you to pass guards
|
||||
#define ITEM_AUTOMAP (1<<15) // shows unknown map ares in other color (as in DooM)
|
||||
#define ITEM_FREE (1<<16) // - unused -
|
||||
|
||||
|
||||
enum weapon_e
|
||||
{
|
||||
WEAPON_KNIFE,
|
||||
WEAPON_PISTOL,
|
||||
WEAPON_AUTO,
|
||||
WEAPON_CHAIN,
|
||||
|
||||
WEAPON_TYPES
|
||||
};
|
||||
|
||||
enum key_e
|
||||
{
|
||||
KEY_GOLD,
|
||||
KEY_SILVER,
|
||||
KEY_FREE1,
|
||||
KEY_FREE2,
|
||||
|
||||
KEY_TYPES
|
||||
};
|
||||
|
||||
enum ammo_e
|
||||
{
|
||||
AMMO_BULLETS,
|
||||
|
||||
AMMO_TYPES
|
||||
};
|
||||
|
||||
|
||||
|
||||
// flags
|
||||
#define PL_FLAG_REUSE 1 // use button pressed
|
||||
#define PL_FLAG_ATTCK 2 // attacking
|
||||
// debug (cheat codes) flags
|
||||
#define FL_GODMODE (1<<4)
|
||||
#define FL_NOTARGET (1<<6)
|
||||
|
||||
|
||||
typedef enum state_e
|
||||
{
|
||||
ex_notingame,
|
||||
ex_playing,
|
||||
ex_dead,
|
||||
ex_secretlevel,
|
||||
ex_victory,
|
||||
ex_complete
|
||||
/*
|
||||
ex_stillplaying,
|
||||
ex_completed,
|
||||
ex_died,
|
||||
ex_warped,
|
||||
ex_resetgame,
|
||||
ex_loadedgame,
|
||||
ex_victorious,
|
||||
ex_abort,
|
||||
ex_demodone,
|
||||
ex_secretlevel
|
||||
*/
|
||||
} state_t;
|
||||
|
||||
// ------------------------- * types * -------------------------
|
||||
// Player structure: Holds all info about player
|
||||
typedef struct player_s
|
||||
{
|
||||
usercmd_t cmd; // movement / action command
|
||||
|
||||
placeonplane_t position; // player position
|
||||
int movx, movy, speed;
|
||||
int tilex, tiley;
|
||||
|
||||
// stats
|
||||
int health, lives, frags;
|
||||
int armor; // there are 2 types. The better one is indicated by high bit set
|
||||
int ammo[AMMO_TYPES];
|
||||
int old_score, score, next_extra;
|
||||
unsigned items; // (keys, weapon)
|
||||
int weapon, pendingweapon;
|
||||
// additional info
|
||||
int attackframe, attackcount, weaponframe; // attack info
|
||||
unsigned flags;
|
||||
int areanumber;
|
||||
|
||||
_boolean madenoise; // FIXME: move to flags?
|
||||
entity_t *LastAttacker;
|
||||
int faceframe, facecount; // bj's face in the HUD // FIXME decide something!
|
||||
_boolean face_gotgun, face_ouch;
|
||||
state_t playstate; // fixme: move to gamestate
|
||||
|
||||
} player_t;
|
||||
|
||||
extern player_t Player;
|
||||
|
||||
|
||||
|
||||
|
||||
extern void PL_Spawn( placeonplane_t location, LevelData_t *lvl );
|
||||
|
||||
extern void PL_Process( player_t *self, LevelData_t *lvl );
|
||||
|
||||
extern void PL_Damage( player_t *self, entity_t *attacker, int points );
|
||||
extern _boolean PL_GiveHealth( player_t *self, int points, int max );
|
||||
extern _boolean PL_GiveAmmo( player_t *self, int type, int ammo );
|
||||
extern void PL_GiveWeapon( player_t *self, int weapon );
|
||||
extern void PL_GiveLife( player_t *self );
|
||||
extern void PL_GivePoints( player_t *self, W32 points );
|
||||
extern void PL_GiveKey( player_t *self, int key );
|
||||
|
||||
extern void PL_NewGame( player_t *self );
|
||||
extern void PL_NextLevel( player_t *self );
|
||||
extern _boolean PL_Reborn( player_t *self );
|
||||
|
||||
extern void PL_Init( void );
|
||||
extern void PL_Reset( void );
|
||||
|
||||
|
||||
extern void fire_hit( player_t *self );
|
||||
extern void fire_lead( player_t *self );
|
||||
|
||||
|
||||
#endif /* __WOLF_PLAYER_H__ */
|
||||
Reference in New Issue
Block a user