summaryrefslogtreecommitdiff
path: root/src/newgrf_cargo.cpp
diff options
context:
space:
mode:
authorNiels Martin Hansen <nielsm@indvikleren.dk>2020-01-26 13:45:51 +0100
committerGitHub <noreply@github.com>2020-01-26 13:45:51 +0100
commitc8779fb311c2665d3fc45c18b2f3460cd998d179 (patch)
tree15321da1e265a40fce50700182b218a87494d24a /src/newgrf_cargo.cpp
parentf88ac83408bff58022699b4d9488818d509ef974 (diff)
downloadopenttd-c8779fb311c2665d3fc45c18b2f3460cd998d179.tar.xz
Feature: NewGRF callback profiling (#7868)
Adds a console command newgrf_profile to collect some profiling data about NewGRF action 2 callbacks and produce a CSV file.
Diffstat (limited to 'src/newgrf_cargo.cpp')
-rw-r--r--src/newgrf_cargo.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp
index b0fd632b5..22c7120d8 100644
--- a/src/newgrf_cargo.cpp
+++ b/src/newgrf_cargo.cpp
@@ -15,9 +15,14 @@
/** Resolver of cargo. */
struct CargoResolverObject : public ResolverObject {
+ const CargoSpec *cargospec;
+
CargoResolverObject(const CargoSpec *cs, CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0);
const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const override;
+
+ GrfSpecFeature GetFeature() const override;
+ uint32 GetDebugID() const override;
};
/* virtual */ const SpriteGroup *CargoResolverObject::ResolveReal(const RealSpriteGroup *group) const
@@ -30,6 +35,16 @@ struct CargoResolverObject : public ResolverObject {
return nullptr;
}
+GrfSpecFeature CargoResolverObject::GetFeature() const
+{
+ return GSF_CARGOES;
+}
+
+uint32 CargoResolverObject::GetDebugID() const
+{
+ return this->cargospec->label;
+}
+
/**
* Constructor of the cargo resolver.
* @param cs Cargo being resolved.
@@ -38,7 +53,7 @@ struct CargoResolverObject : public ResolverObject {
* @param callback_param2 Second parameter (var 18) of the callback.
*/
CargoResolverObject::CargoResolverObject(const CargoSpec *cs, CallbackID callback, uint32 callback_param1, uint32 callback_param2)
- : ResolverObject(cs->grffile, callback, callback_param1, callback_param2)
+ : ResolverObject(cs->grffile, callback, callback_param1, callback_param2), cargospec(cs)
{
this->root_spritegroup = cs->group;
}