summaryrefslogtreecommitdiff
path: root/src/newgrf_spritegroup.h
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2013-11-24 14:41:19 +0000
committerfrosch <frosch@openttd.org>2013-11-24 14:41:19 +0000
commitdb894b0b3fa13413cdb76989cfcd2bb789243b77 (patch)
treefd61e4df264893e0c41b0d989f3294c3b4909b63 /src/newgrf_spritegroup.h
parent45a5aba8d55c68f54885c1de27684e8544e111d9 (diff)
downloadopenttd-db894b0b3fa13413cdb76989cfcd2bb789243b77.tar.xz
(svn r26085) -Codechange: Pass ResolverObjects as reference instead of pointer since they are never NULL.
Diffstat (limited to 'src/newgrf_spritegroup.h')
-rw-r--r--src/newgrf_spritegroup.h17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h
index dc05fe4f1..da26c1a0e 100644
--- a/src/newgrf_spritegroup.h
+++ b/src/newgrf_spritegroup.h
@@ -57,6 +57,7 @@ enum SpriteGroupType {
struct SpriteGroup;
typedef uint32 SpriteGroupID;
+struct ResolverObject;
/* SPRITE_WIDTH is 24. ECS has roughly 30 sprite groups per real sprite.
* Adding an 'extra' margin would be assuming 64 sprite groups per real
@@ -69,7 +70,7 @@ struct SpriteGroup : SpriteGroupPool::PoolItem<&_spritegroup_pool> {
protected:
SpriteGroup(SpriteGroupType type) : type(type) {}
/** Base sprite group resolver */
- virtual const SpriteGroup *Resolve(struct ResolverObject *object) const { return this; };
+ virtual const SpriteGroup *Resolve(ResolverObject &object) const { return this; };
public:
virtual ~SpriteGroup() {}
@@ -89,7 +90,7 @@ public:
* @param object information needed to resolve the group
* @return the resolved group
*/
- static const SpriteGroup *Resolve(const SpriteGroup *group, ResolverObject *object)
+ static const SpriteGroup *Resolve(const SpriteGroup *group, ResolverObject &object)
{
return group == NULL ? NULL : group->Resolve(object);
}
@@ -115,7 +116,7 @@ struct RealSpriteGroup : SpriteGroup {
const SpriteGroup **loading; ///< List of loading groups (can be SpriteIDs or Callback results)
protected:
- const SpriteGroup *Resolve(ResolverObject *object) const;
+ const SpriteGroup *Resolve(ResolverObject &object) const;
};
/* Shared by deterministic and random groups. */
@@ -204,7 +205,7 @@ struct DeterministicSpriteGroup : SpriteGroup {
const SpriteGroup *default_group;
protected:
- const SpriteGroup *Resolve(ResolverObject *object) const;
+ const SpriteGroup *Resolve(ResolverObject &object) const;
};
enum RandomizedSpriteGroupCompareMode {
@@ -228,7 +229,7 @@ struct RandomizedSpriteGroup : SpriteGroup {
const SpriteGroup **groups; ///< Take the group with appropriate index:
protected:
- const SpriteGroup *Resolve(ResolverObject *object) const;
+ const SpriteGroup *Resolve(ResolverObject &object) const;
};
@@ -301,8 +302,6 @@ struct IndustryProductionSpriteGroup : SpriteGroup {
uint8 again;
};
-struct ResolverObject;
-
/**
* Interface to query and set values specific to a single #VarSpriteGroupScope (action 2 scope).
*
@@ -310,9 +309,9 @@ struct ResolverObject;
* to different game entities from a #SpriteGroup-chain (action 1-2-3 chain).
*/
struct ScopeResolver {
- ResolverObject *ro; ///< Surrounding resolver object.
+ ResolverObject &ro; ///< Surrounding resolver object.
- ScopeResolver(ResolverObject *ro);
+ ScopeResolver(ResolverObject &ro);
virtual ~ScopeResolver();
virtual uint32 GetRandomBits() const;