aboutsummaryrefslogtreecommitdiff
path: root/engines/sword2/console.h
blob: 09e456564d0bfa9ce8eaa760001f70b33d44e03b (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
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * Additional copyright for this file:
 * Copyright (C) 1994-1998 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

#ifndef	SWORD2_CONSOLE_H
#define	SWORD2_CONSOLE_H

#include "gui/debugger.h"
#include "sword2/debug.h"

namespace Sword2 {

class Debugger : public GUI::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];

	byte _debugTextBlocks[MAX_DEBUG_TEXTS];

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

	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 _speechScriptWaiting;

	int32 _textNumber;

	int32 _graphType;
	int32 _graphAnimRes;
	int32 _graphAnimPc;
	uint32 _graphNoFrames;

	void buildDebugText();
	void drawDebugGraphics();

private:
	virtual void preEnter();
	virtual void postEnter();

private:
	Sword2Engine *_vm;

	// Commands
	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_ResList(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_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_AnimTest(int argc, const char **argv);
	bool Cmd_TextTest(int argc, const char **argv);
	bool Cmd_LineTest(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);
	bool Cmd_FxQueue(int argc, const char **argv);
};

} // End of namespace Sword2

#endif