Elaztek Developer Hub
Blamite Game Engine - blam!  00346.12.11.21.0529.blamite
The core library for the Blamite Game Engine.
drop.hpp
Go to the documentation of this file.
1 #include "../console.h"
2 
6 
8 {
15  {
16  public:
18  {
19  name = "drop";
20  description = "drops the named tag e.g. objects\vehicles\banshee\banshee.vehicle";
21  aliases = {"spawn", "summon", "create", "drop_safe"};
22 
24  }
25 
27  {
28 
29  }
30 
31  BlamCommandResult onCommand(std::vector<std::string> arguments)
32  {
33  if (arguments.size() == 0)
34  {
36  }
37  else
38  {
39  std::string tag_path = arguments.at(0);
41 
42  if (tag)
43  {
44  bool can_drop = true;
45 
46  // todo: ensure tag can be dropped
47 
48  if (can_drop)
49  {
50  Blam::Logger::LogEventForce("placed '" + tag_path + "'");
51  }
52  else
53  {
55 
56  if (tag_class)
57  {
58  Blam::Logger::LogEventForce("don't know how to place tags of type '" + tag_class->class_name_long + "'", BlamLogLevel::Error);
59  }
60  else
61  {
62  Blam::Logger::LogEventForce("don't know how to place tags of type '" + tag->tag_class + "'", BlamLogLevel::Error);
63  Blam::Logger::LogEventForce("tried to lookup tag class with short name '" + tag->tag_class + "', but result was nullptr", BlamLogLevel::Error);
64  }
65  }
66  }
67  else
68  {
69  Blam::Logger::LogEventForce("couldn't load tag '" + tag_path + "' to place", WSV_ERROR);
70  Blam::Logger::LogEventForce("tag '" + tag_path + "' does not exist");
71  }
72 
73  return CMD_OK;
74  }
75  }
76  };
77 }
CMD_ERR_WRONG_ARGS_COUNT
#define CMD_ERR_WRONG_ARGS_COUNT
Macro for Wrong Arg Count command status. See #Blam::Resources::Console::WrongArgumentCount for more ...
Definition: console.h:10
BlamConsoleCommand::description
std::string description
An optional description of the command. Shown when using the classify command.
Definition: console.h:57
logger.h
tags.h
BlamConsoleCommand
Class used to represent a console command.
Definition: console.h:54
Blam::Resources::Console::DropCommand::~DropCommand
~DropCommand()
Definition: drop.hpp:26
Blam::Content::Tags::GetTagClass
BLAM BlamTagClass * GetTagClass(std::string id)
Retrieves a tag class that matches the given string.
Definition: tagclass.cpp:56
Blam::Resources::Console::DropCommand::DropCommand
DropCommand()
Definition: drop.hpp:17
Blam::Resources::Console::DropCommand
Class for the drop command.
Definition: drop.hpp:14
BlamTagClass::class_name_long
std::string class_name_long
The longer class name. Typically shown alongside short name for user-friendliness.
Definition: tagclass.h:44
BlamConsoleCommand::name
std::string name
The name of the console command.
Definition: console.h:56
Blam::Content::Tags::GetTagData
BLAM BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: tags.cpp:79
BlamConsoleCommand::type
BlamCommandType type
The type of command this is. See #Blam::Resources::Console::BlamCommandType for more information.
Definition: console.h:61
BlamCommandType::Builtin
@ Builtin
A command that is hard-coded into the engine.
Blam::Resources::Console::DropCommand::onCommand
BlamCommandResult onCommand(std::vector< std::string > arguments)
Called upon command execution.
Definition: drop.hpp:31
CMD_OK
#define CMD_OK
Macro for OK command status. See #Blam::Resources::Console::Ok for more details.
Definition: console.h:8
Blam::Logger::LogEventForce
BLAM void LogEventForce(std::string message)
Forcibly logs a message to the log and/or console.
Definition: aliases.cpp:258
BlamCommandResult
BlamCommandResult
Indicates the return state of a console command.
Definition: console.h:22
tagclass.h
BlamConsoleCommand::aliases
std::vector< std::string > aliases
A list of aliases for the command. Executing any of these instead of the command name will behave the...
Definition: console.h:59
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:62
Blam::Resources::Console
Namespace for things relating to the debug console.
Definition: abort.hpp:5
BlamTagClass
Class representing a tag class.
Definition: tagclass.h:41
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:79