Initial commit
This commit is contained in:
433
engines/ultima/ultima4/core/debugger.h
Normal file
433
engines/ultima/ultima4/core/debugger.h
Normal file
@@ -0,0 +1,433 @@
|
||||
/* 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.
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef ULTIMA4_CORE_DEBUGGER_H
|
||||
#define ULTIMA4_CORE_DEBUGGER_H
|
||||
|
||||
#include "ultima/ultima4/core/coords.h"
|
||||
#include "ultima/ultima4/core/types.h"
|
||||
#include "ultima/ultima4/core/debugger_actions.h"
|
||||
#include "gui/debugger.h"
|
||||
|
||||
namespace Ultima {
|
||||
namespace Ultima4 {
|
||||
|
||||
/**
|
||||
* Debugger base class
|
||||
*/
|
||||
class Debugger : public GUI::Debugger, public DebuggerActions {
|
||||
private:
|
||||
MapTile _horse, _ship, _balloon;
|
||||
bool _dontEndTurn;
|
||||
protected:
|
||||
/**
|
||||
* Returns true if the debugger is active
|
||||
*/
|
||||
bool isDebuggerActive() const override {
|
||||
return isActive();
|
||||
}
|
||||
|
||||
/**
|
||||
* Process the given command line.
|
||||
* Returns true if and only if argv[0] is a known command and was
|
||||
* handled, false otherwise.
|
||||
*/
|
||||
bool handleCommand(int argc, const char **argv, bool &keepRunning) override;
|
||||
|
||||
/**
|
||||
* Prints a message to the console if it's active, or to the
|
||||
* game screen if not
|
||||
*/
|
||||
void print(const char *fmt, ...) override;
|
||||
|
||||
/**
|
||||
* Prints a message to the console if it's active, or to the
|
||||
* game screen if not, with no newline
|
||||
*/
|
||||
void printN(const char *fmt, ...) override;
|
||||
|
||||
/**
|
||||
* Prompts for input, but only if debugger isn't running
|
||||
*/
|
||||
void prompt() override;
|
||||
|
||||
/**
|
||||
* Gets the direction for an action
|
||||
*/
|
||||
Direction getDirection(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Used by methods so that when they're triggered by a keybinding
|
||||
* action, stops the turn from being finished when they're done
|
||||
*/
|
||||
void dontEndTurn() {
|
||||
_dontEndTurn = true;
|
||||
}
|
||||
private:
|
||||
/**
|
||||
* Move the avatar in a given direction
|
||||
*/
|
||||
bool cmdMove(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Attack
|
||||
*/
|
||||
bool cmdAttack(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Board transport
|
||||
*/
|
||||
bool cmdBoard(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Cast spell
|
||||
*/
|
||||
bool cmdCastSpell(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Climb
|
||||
*/
|
||||
bool cmdClimb(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Descend
|
||||
*/
|
||||
bool cmdDescend(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Enter location
|
||||
*/
|
||||
bool cmdEnter(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Exit
|
||||
*/
|
||||
bool cmdExit(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Fire
|
||||
*/
|
||||
bool cmdFire(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Get chest
|
||||
*/
|
||||
bool cmdGetChest(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Hole Up & Camp
|
||||
*/
|
||||
bool cmdCamp(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Ignite Torch
|
||||
*/
|
||||
bool cmdIgnite(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Generic interaction
|
||||
*/
|
||||
bool cmdInteract(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Jimmy lock
|
||||
*/
|
||||
bool cmdJimmy(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Locate position
|
||||
*/
|
||||
bool cmdLocate(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Mix reagents
|
||||
*/
|
||||
bool cmdMixReagents(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Exchanges the position of two players in the party. Prompts the
|
||||
* user for the player numbers.
|
||||
*/
|
||||
bool cmdNewOrder(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Open door
|
||||
*/
|
||||
bool cmdOpenDoor(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Specifies a particular party number
|
||||
*/
|
||||
bool cmdParty(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Pass turn
|
||||
*/
|
||||
bool cmdPass(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Peer
|
||||
*/
|
||||
bool cmdPeer(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Save and quit
|
||||
*/
|
||||
bool cmdQuitAndSave(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Readies a weapon for a player. Prompts for the player and/or the
|
||||
* weapon if not provided.
|
||||
*/
|
||||
bool cmdReadyWeapon(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Search
|
||||
*/
|
||||
bool cmdSearch(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Speed up, down, or normal
|
||||
*/
|
||||
bool cmdSpeed(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Combat speed up, down, or normal
|
||||
*/
|
||||
bool cmdCombatSpeed(int argc, const char **argv);
|
||||
|
||||
|
||||
/**
|
||||
* Show character stats
|
||||
*/
|
||||
bool cmdStats(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Talk
|
||||
*/
|
||||
bool cmdTalk(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Use
|
||||
*/
|
||||
bool cmdUse(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Changes a player's armor
|
||||
*/
|
||||
bool cmdWearArmor(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Yell
|
||||
*/
|
||||
bool cmdYell(int argc, const char **argv);
|
||||
private:
|
||||
/**
|
||||
* Collision detection on/off
|
||||
*/
|
||||
bool cmd3d(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Teleports to the Abyss final altar
|
||||
*/
|
||||
bool cmdAbyss(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Collision detection on/off
|
||||
*/
|
||||
bool cmdCollisions(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Have all the companions join the party
|
||||
*/
|
||||
bool cmdCompanions(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Toggle whether combat occurs
|
||||
*/
|
||||
bool cmdCombat(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Destroy an object
|
||||
*/
|
||||
bool cmdDestroy(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Destroy all creatures
|
||||
*/
|
||||
bool cmdDestroyCreatures(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Jumps to a given dungeon
|
||||
*/
|
||||
bool cmdDungeon(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Flee from combat
|
||||
*/
|
||||
bool cmdFlee(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* All equipement
|
||||
*/
|
||||
bool cmdEquipment(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Full stats
|
||||
*/
|
||||
bool cmdFullStats(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Toggle hunger on or off
|
||||
*/
|
||||
bool cmdHunger(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Moongate teleportation
|
||||
*/
|
||||
bool cmdGate(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Go to any specified location by name
|
||||
*/
|
||||
bool cmdGoto(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Help.. sends the party to Lord British
|
||||
*/
|
||||
bool cmdLorddBritish(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Grant karma
|
||||
*/
|
||||
bool cmdKarma(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Give all the items
|
||||
*/
|
||||
bool cmdItems(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Leave the current location
|
||||
*/
|
||||
bool cmdLeave(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Displays the current location
|
||||
*/
|
||||
bool cmdLocation(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Give all the mixtures
|
||||
*/
|
||||
bool cmdMixtures(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Moon phase
|
||||
*/
|
||||
bool cmdMoon(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Toggle opacity
|
||||
*/
|
||||
bool cmdOpacity(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Toggle overhead view
|
||||
*/
|
||||
bool cmdOverhead(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Give all the reagents
|
||||
*/
|
||||
bool cmdReagents(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Summons a creature to fight
|
||||
*/
|
||||
bool cmdSummon(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Returns the torch duration
|
||||
*/
|
||||
bool cmdTorch(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Creates a given transport
|
||||
*/
|
||||
bool cmdTransport(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Move up a floor
|
||||
*/
|
||||
bool cmdUp(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Move down a floor
|
||||
*/
|
||||
bool cmdDown(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Gives full virtue, or increments a specific virtue
|
||||
*/
|
||||
bool cmdVirtue(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Set wind direction or locks the direction
|
||||
*/
|
||||
bool cmdWind(int argc, const char **argv);
|
||||
|
||||
/**
|
||||
* Lists the triggers in a dungeon room
|
||||
*/
|
||||
bool cmdListTriggers(int argc, const char **argv);
|
||||
public:
|
||||
bool _collisionOverride;
|
||||
bool _disableHunger;
|
||||
bool _disableCombat;
|
||||
public:
|
||||
Debugger();
|
||||
~Debugger() override;
|
||||
|
||||
/**
|
||||
* Gets a chest.
|
||||
* If the default -2 is used, it bypasses prompting for a
|
||||
* user. Otherwise, a non-negative player number is expected
|
||||
*/
|
||||
void getChest(int player = -2);
|
||||
|
||||
/**
|
||||
* Executes the given command
|
||||
*/
|
||||
void executeCommand(const Common::String &cmd);
|
||||
|
||||
/**
|
||||
* Executes the given command
|
||||
*/
|
||||
void executeCommand(int argc, const char **argv);
|
||||
};
|
||||
|
||||
extern Debugger *g_debugger;
|
||||
|
||||
} // End of namespace Ultima4
|
||||
} // End of namespace Ultima
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user