1 // Emacs style mode select	 -*- C++ -*-
2 //-----------------------------------------------------------------------------
3 //
4 // $Id:$
5 //
6 // Copyright (C) 1993-1996 by id Software, Inc.
7 //
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
11 //
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
15 // for more details.
16 //
17 // DESCRIPTION:
18 //	 Duh.
19 //
20 //-----------------------------------------------------------------------------
21 
22 
23 #ifndef __G_GAME__
24 #define __G_GAME__
25 
26 struct event_t;
27 struct PNGHandle;
28 
29 
30 //
31 // GAME
32 //
33 void G_DeathMatchSpawnPlayer (int playernum);
34 
35 struct FPlayerStart *G_PickPlayerStart (int playernum, int flags = 0);
36 enum
37 {
38 	PPS_FORCERANDOM			= 1,
39 	PPS_NOBLOCKINGCHECK		= 2,
40 };
41 
42 void G_DeferedPlayDemo (const char* demo);
43 
44 // Can be called by the startup code or M_Responder,
45 // calls P_SetupLevel or W_EnterWorld.
46 void G_LoadGame (const char* name, bool hidecon=false);
47 
48 void G_DoLoadGame (void);
49 
50 // Called by M_Responder.
51 void G_SaveGame (const char *filename, const char *description);
52 
53 // Only called by startup code.
54 void G_RecordDemo (const char* name);
55 
56 void G_BeginRecording (const char *startmap);
57 
58 void G_PlayDemo (char* name);
59 void G_TimeDemo (const char* name);
60 bool G_CheckDemoStatus (void);
61 
62 void G_WorldDone (void);
63 
64 void G_Ticker (void);
65 bool G_Responder (event_t*	ev);
66 
67 void G_ScreenShot (char *filename);
68 
69 FString G_BuildSaveName (const char *prefix, int slot);
70 
71 struct PNGHandle;
72 bool G_CheckSaveGameWads (PNGHandle *png, bool printwarn);
73 
74 enum EFinishLevelType
75 {
76 	FINISH_SameHub,
77 	FINISH_NextHub,
78 	FINISH_NoHub
79 };
80 
81 void G_PlayerFinishLevel (int player, EFinishLevelType mode, int flags);
82 
83 void G_DoReborn (int playernum, bool freshbot);
84 void G_DoPlayerPop(int playernum);
85 
86 // Adds pitch to consoleplayer's viewpitch and clamps it
87 void G_AddViewPitch (int look);
88 
89 // Adds to consoleplayer's viewangle if allowed
90 void G_AddViewAngle (int yaw);
91 
92 #define BODYQUESIZE 	32
93 class AActor;
94 extern AActor *bodyque[BODYQUESIZE];
95 extern int bodyqueslot;
96 class AInventory;
97 extern const AInventory *SendItemUse, *SendItemDrop;
98 
99 
100 #endif
101