📄 doomdef.h
字号:
// Emacs style mode select -*- C++ -*- //-----------------------------------------------------------------------------//// $Id: doomdef.h,v 1.2 2003/09/08 22:34:27 jasonk Exp $//// Copyright (C) 1993-1996 by id Software, Inc.//// This source is available for distribution and/or modification// only under the terms of the DOOM Source Code License as// published by id Software. All rights reserved.//// The source is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License// for more details.//// DESCRIPTION:// Internally used data structures for virtually everything,// key definitions, lots of other stuff.////-----------------------------------------------------------------------------#ifndef __DOOMDEF__#define __DOOMDEF__#include <stdio.h>#include <string.h>//// Global parameters/defines.//// DOOM versionenum { VERSION_NUM = 110 };// Game mode handling - identify IWAD version// to handle IWAD dependend animations etc.typedef enum{ shareware, // DOOM 1 shareware, E1, M9 registered, // DOOM 1 registered, E3, M27 commercial, // DOOM 2 retail, E1 M34 // DOOM 2 german edition not handled retail, // DOOM 1 retail, E4, M36 indetermined // Well, no IWAD found. } GameMode_t;// Mission packs - might be useful for TC stuff?typedef enum{ doom, // DOOM 1 doom2, // DOOM 2 pack_tnt, // TNT mission pack pack_plut, // Plutonia pack none} GameMission_t;// Identify language to use, software localization.typedef enum{ english, french, german, unknown} Language_t;// If rangecheck is undefined,// most parameter validation debugging code will not be compiled#define RANGECHECK// Do or do not use external soundserver.// The sndserver binary to be run separately// has been introduced by Dave Taylor.// The integrated sound support is experimental,// and unfinished. Default is synchronous.// Experimental asynchronous timer based is// handled by SNDINTR. #define SNDSERV 1//#define SNDINTR 1// This one switches between MIT SHM (no proper mouse)// and XFree86 DGA (mickey sampling). The original// linuxdoom used SHM, which is default.//#define X11_DGA 1//// For resize of screen, at start of game.// It will not work dynamically, see visplanes.//#define BASE_WIDTH 320// It is educational but futile to change this// scaling e.g. to 2. Drawing of status bar,// menues etc. is tied to the scale implied// by the graphics.#define SCREEN_MUL 1#define INV_ASPECT_RATIO 0.625 // 0.75, ideally// Defines suck. C sucks.// C++ might sucks for OOP, but it sure is a better C.// So there.#define SCREENWIDTH 320//SCREEN_MUL*BASE_WIDTH //320#define SCREENHEIGHT 200//(int)(SCREEN_MUL*BASE_WIDTH*INV_ASPECT_RATIO) //200// The maximum number of players, multiplayer/networking.#define MAXPLAYERS 4// State updates, number of tics / second.#define TICRATE 35// The current state of the game: whether we are// playing, gazing at the intermission screen,// the game final animation, or a demo. typedef enum{ GS_LEVEL, GS_INTERMISSION, GS_FINALE, GS_DEMOSCREEN} gamestate_t;//// Difficulty/skill settings/filters.//// Skill flags.#define MTF_EASY 1#define MTF_NORMAL 2#define MTF_HARD 4// Deaf monsters/do not react to sound.#define MTF_AMBUSH 8typedef enum{ sk_baby, sk_easy, sk_medium, sk_hard, sk_nightmare} skill_t;//// Key cards.//typedef enum{ it_bluecard, it_yellowcard, it_redcard, it_blueskull, it_yellowskull, it_redskull, NUMCARDS } card_t;// The defined weapons,// including a marker indicating// user has not changed weapon.typedef enum{ wp_fist, wp_pistol, wp_shotgun, wp_chaingun, wp_missile, wp_plasma, wp_bfg, wp_chainsaw, wp_supershotgun, NUMWEAPONS, // No pending weapon change. wp_nochange} weapontype_t;// Ammunition types defined.typedef enum{ am_clip, // Pistol / chaingun ammo. am_shell, // Shotgun / double barreled shotgun. am_cell, // Plasma rifle, BFG. am_misl, // Missile launcher. NUMAMMO, am_noammo // Unlimited for chainsaw / fist. } ammotype_t;// Power up artifacts.typedef enum{ pw_invulnerability, pw_strength, pw_invisibility, pw_ironfeet, pw_allmap, pw_infrared, NUMPOWERS } powertype_t;//// Power up durations,// how many seconds till expiration,// assuming TICRATE is 35 ticks/second.//typedef enum{ INVULNTICS = (30*TICRATE), INVISTICS = (60*TICRATE), INFRATICS = (120*TICRATE), IRONTICS = (60*TICRATE) } powerduration_t;//// DOOM keyboard definition.// This is the stuff configured by Setup.Exe.// Most key data are simple ascii (uppercased).//#define KEY_RIGHTARROW 0xae#define KEY_LEFTARROW 0xac#define KEY_UPARROW 0xad#define KEY_DOWNARROW 0xaf#define KEY_ESCAPE 27#define KEY_ENTER 13#define KEY_TAB 9#define KEY_F1 (0x80+0x3b)#define KEY_F2 (0x80+0x3c)#define KEY_F3 (0x80+0x3d)#define KEY_F4 (0x80+0x3e)#define KEY_F5 (0x80+0x3f)#define KEY_F6 (0x80+0x40)#define KEY_F7 (0x80+0x41)#define KEY_F8 (0x80+0x42)#define KEY_F9 (0x80+0x43)#define KEY_F10 (0x80+0x44)#define KEY_F11 (0x80+0x57)#define KEY_F12 (0x80+0x58)#define KEY_BACKSPACE 127#define KEY_PAUSE 0xff#define KEY_EQUALS 0x3d#define KEY_MINUS 0x2d#define KEY_RSHIFT (0x80+0x36)#define KEY_RCTRL (0x80+0x1d)#define KEY_RALT (0x80+0x38)#define KEY_LALT KEY_RALT// DOOM basic types (boolean),// and max/min values.//#include "doomtype.h"// Fixed point.//#include "m_fixed.h"// Endianess handling.//#include "m_swap.h"// Binary Angles, sine/cosine/atan lookups.//#include "tables.h"// Event type.//#include "d_event.h"// Game function, skills.//#include "g_game.h"// All external data is defined here.//#include "doomdata.h"// All important printed strings.// Language selection (message strings).//#include "dstrings.h"// Player is a special actor.//struct player_s;//#include "d_items.h"//#include "d_player.h"//#include "p_mobj.h"//#include "d_net.h"// PLAY//#include "p_tick.h"// Header, generated by sound utility.// The utility was written by Dave Taylor.//#include "sounds.h"#endif // __DOOMDEF__//-----------------------------------------------------------------------------//// $Log: doomdef.h,v $// Revision 1.2 2003/09/08 22:34:27 jasonk// Updated files because this fucker won't build for no fucking good reason.//// Revision 1.1.1.1 2003/09/04 21:08:12 jasonk// Initial import//// Revision 1.1 2000/12/08 21:07:53 jeffw// nxdoom initial entry -- No nxdoom/Makefile so it won't build automatically//////-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -