aboutsummaryrefslogtreecommitdiff
path: root/sword2/console.h
blob: b7189fb327f20f821f077db315da1cf1a1686223 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* Copyright (C) 1994-2003 Revolution Software Ltd
 *
 * 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.
 *
 * $Header$
 */

#ifndef	C_ONSOLE_H
#define	C_ONSOLE_H

#include "common/debugger.h"
#include "sword2/debug.h"
#include "sword2/object.h"

#define Debug_Printf g_sword2->_debugger->DebugPrintf

namespace Sword2 {

class Sword2Engine;

class Debugger : public Common::Debugger<Debugger> {
private:
	void varGet(int var);
	void varSet(int var, int val);

	bool _displayDebugText;
	bool _displayWalkGrid;
	bool _displayMouseMarker;
	bool _displayTime;
	bool _displayPlayerMarker;
	bool _displayTextNumbers;

	bool _rectFlicker;

	int32 _startTime;

	int32 _showVar[MAX_SHOWVARS];

	uint8 _debugTextBlocks[MAX_DEBUG_TEXT_BLOCKS];

	void clearDebugTextBlocks(void);
	void makeDebugTextBlock(char *text, int16 x, int16 y);

	void printCurrentInfo(void);

	void plotCrossHair(int16 x, int16 y, uint8 pen);
	void drawRect(int16 x, int16 y, int16 x2, int16 y2, uint8 pen);

public:
	Debugger(Sword2Engine *vm);

	int16 _rectX1, _rectY1;
	int16 _rectX2, _rectY2;

	uint8 _draggingRectangle;
	bool _definingRectangles;

	bool _testingSnR;

	int32 _textNumber;

	Object_graphic _playerGraphic;
	uint32 _playerGraphicNoFrames;

	void buildDebugText(void);
	void drawDebugGraphics(void);

protected:
	Sword2Engine *_vm;

	virtual void preEnter();
	virtual void postEnter();

	// Commands
	bool Cmd_Exit(int argc, const char **argv);
	bool Cmd_Help(int argc, const char **argv);
	bool Cmd_Mem(int argc, const char **argv);
	bool Cmd_Tony(int argc, const char **argv);
	bool Cmd_Res(int argc, const char **argv);
	bool Cmd_Starts(int argc, const char **argv);
	bool Cmd_Start(int argc, const char **argv);
	bool Cmd_Info(int argc, const char **argv);
	bool Cmd_WalkGrid(int argc, const char **argv);
	bool Cmd_Mouse(int argc, const char **argv);
	bool Cmd_Player(int argc, const char **argv);
	bool Cmd_ResLook(int argc, const char **argv);
	bool Cmd_CurrentInfo(int argc, const char **argv);
	bool Cmd_RunList(int argc, const char **argv);
	bool Cmd_Kill(int argc, const char **argv);
	bool Cmd_Nuke(int argc, const char **argv);
	bool Cmd_Var(int argc, const char **argv);
	bool Cmd_Rect(int argc, const char **argv);
	bool Cmd_Clear(int argc, const char **argv);
	bool Cmd_DebugOn(int argc, const char **argv);
	bool Cmd_DebugOff(int argc, const char **argv);
	bool Cmd_SaveRest(int argc, const char **argv);
	bool Cmd_ListSaveGames(int argc, const char **argv);
	bool Cmd_SaveGame(int argc, const char **argv);
	bool Cmd_RestoreGame(int argc, const char **argv);
	bool Cmd_BltFxOn(int argc, const char **argv);
	bool Cmd_BltFxOff(int argc, const char **argv);
	bool Cmd_TimeOn(int argc, const char **argv);
	bool Cmd_TimeOff(int argc, const char **argv);
	bool Cmd_Text(int argc, const char **argv);
	bool Cmd_ShowVar(int argc, const char **argv);
	bool Cmd_HideVar(int argc, const char **argv);
	bool Cmd_Version(int argc, const char **argv);
	bool Cmd_SoftHard(int argc, const char **argv);
	bool Cmd_AnimTest(int argc, const char **argv);
	bool Cmd_TextTest(int argc, const char **argv);
	bool Cmd_LineTest(int argc, const char **argv);
	bool Cmd_Grab(int argc, const char **argv);
	bool Cmd_Events(int argc, const char **argv);
	bool Cmd_Sfx(int argc, const char **argv);
	bool Cmd_English(int argc, const char **argv);
	bool Cmd_Finnish(int argc, const char **argv);
	bool Cmd_Polish(int argc, const char **argv);
};

} // End of namespace Sword2

#endif