Elaztek Developer Hub
Blamite Game Engine - blam!  00406.12.10.23.1457.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 
26  BlamResult Execute(std::vector<std::string> arguments)
27  {
28  if (arguments.size() == 0)
29  {
30  return BlamResult::Error_Command_WrongArgumentCount;
31  }
32  else
33  {
34  std::string tag_path = arguments.at(0);
36 
37  if (tag)
38  {
39  bool can_drop = true;
40 
41  // todo: ensure tag can be dropped
42 
43  if (can_drop)
44  {
45  Blam::Logger::LogEventForce("placed '" + tag_path + "'");
46  }
47  else
48  {
50 
51  if (tag_class)
52  {
53  Blam::Logger::LogEventForce("don't know how to place tags of type '" + tag_class->class_name_long + "'", BlamLogLevel::Error);
54  }
55  else
56  {
57  Blam::Logger::LogEventForce("don't know how to place tags of type '" + tag->tag_class + "'", BlamLogLevel::Error);
58  Blam::Logger::LogEventForce("tried to lookup tag class with short name '" + tag->tag_class + "', but result was nullptr", BlamLogLevel::Error);
59  }
60  }
61  }
62  else
63  {
64  Blam::Logger::LogEventForce("couldn't load tag '" + tag_path + "' to place", WSV_ERROR);
65  Blam::Logger::LogEventForce("tag '" + tag_path + "' does not exist");
66  }
67 
68  return BlamResult::Success_OK;
69  }
70  }
71  };
72 }
BlamCommandType::Builtin
@ Builtin
A command that is hard-coded into the engine.
BlamConsoleCommand::description
std::string description
An optional description of the command. Shown when using the classify command.
Definition: console.h:34
logger.h
BlamConsoleCommand
Class used to represent a console command.
Definition: console.h:31
Blam::Content::Tags::GetTagClass
BLAM_EXT_API BlamTagClass * GetTagClass(std::string id)
Retrieves a tag class that matches the given string.
Definition: tagclass.cpp:65
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: tags.h:191
BlamConsoleCommand::name
std::string name
The name of the console command.
Definition: console.h:33
Blam::Resources::Console::DropCommand::Execute
BlamResult Execute(std::vector< std::string > arguments)
Called upon command execution.
Definition: drop.hpp:26
Blam::Content::Tags::GetTagData
BLAM BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: tags.cpp:80
BlamConsoleCommand::type
BlamCommandType type
The type of command this is. See #Blam::Resources::Console::BlamCommandType for more information.
Definition: console.h:38
Blam::Logger::LogEventForce
BLAM void LogEventForce(std::string message)
Forcibly logs a message to the log and/or console.
Definition: aliases.cpp:262
tagclass.h
tags.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:36
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:125
Blam::Resources::Console
Namespace for things relating to the debug console.
Definition: abort.hpp:5
BlamTagClass
Class representing a tag class.
Definition: tags.h:188
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:142