--- a/engine.c Wed Mar 09 19:48:20 2005 +0000
+++ b/engine.c Wed Mar 09 21:54:52 2005 +0000
@@ -275,13 +275,11 @@
_engine_custom_sprites[engine][cargo] = *group;
}
-typedef struct RealSpriteGroup *(*resolve_callback)(struct SpriteGroup *spritegroup,
- struct Vehicle *veh,
- void *callback); /* XXX data pointer used as function pointer */
+typedef struct RealSpriteGroup *(*resolve_callback)(
+ struct SpriteGroup *spritegroup, const Vehicle *veh, void *callback); /* XXX data pointer used as function pointer */
-static struct RealSpriteGroup *
-ResolveVehicleSpriteGroup(struct SpriteGroup *spritegroup, struct Vehicle *veh,
- resolve_callback callback)
+static struct RealSpriteGroup* ResolveVehicleSpriteGroup(
+ struct SpriteGroup *spritegroup, const Vehicle *veh, resolve_callback callback)
{
//debug("spgt %d", spritegroup->type);
switch (spritegroup->type) {
@@ -460,7 +458,7 @@
}
}
-static struct SpriteGroup *GetVehicleSpriteGroup(byte engine, Vehicle *v)
+static struct SpriteGroup *GetVehicleSpriteGroup(byte engine, const Vehicle *v)
{
struct SpriteGroup *group;
uint16 overriding_engine = -1;
@@ -483,7 +481,7 @@
return group;
}
-int GetCustomEngineSprite(byte engine, Vehicle *v, byte direction)
+int GetCustomEngineSprite(byte engine, const Vehicle *v, byte direction)
{
struct SpriteGroup *group;
struct RealSpriteGroup *rsg;
--- a/engine.h Wed Mar 09 19:48:20 2005 +0000
+++ b/engine.h Wed Mar 09 21:54:52 2005 +0000
@@ -99,7 +99,7 @@
void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains);
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group);
// loaded is in percents, overriding_engine 0xffff is none
-int GetCustomEngineSprite(byte engine, Vehicle *v, byte direction);
+int GetCustomEngineSprite(byte engine, const Vehicle *v, byte direction);
#define GetCustomVehicleSprite(v, direction) GetCustomEngineSprite(v->engine_type, v, direction)
#define GetCustomVehicleIcon(et, direction) GetCustomEngineSprite(et, NULL, direction)
--- a/train_cmd.c Wed Mar 09 19:48:20 2005 +0000
+++ b/train_cmd.c Wed Mar 09 21:54:52 2005 +0000
@@ -281,7 +281,7 @@
v->acceleration = clamp(power / weight * 4, 1, 255);
}
-int GetTrainImage(Vehicle *v, byte direction)
+int GetTrainImage(const Vehicle *v, byte direction)
{
int img = v->spritenum;
int base;
--- a/vehicle.c Wed Mar 09 19:48:20 2005 +0000
+++ b/vehicle.c Wed Mar 09 21:54:52 2005 +0000
@@ -365,29 +365,28 @@
return v;
}
-Vehicle *GetPrevVehicleInChain(Vehicle *v)
+Vehicle *GetPrevVehicleInChain(const Vehicle *v)
{
- Vehicle *org = v;
+ const Vehicle *org = v;
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_Train && org == v->next)
- return v;
+ return (Vehicle*)v;
}
return NULL;
}
-Vehicle *GetFirstVehicleInChain(Vehicle *v)
+Vehicle *GetFirstVehicleInChain(const Vehicle *v)
{
- Vehicle *u;
+ while (true) {
+ const Vehicle* u = v;
- while (true) {
- u = v;
v = GetPrevVehicleInChain(v);
/* If there is no such vehicle,
'v' == NULL and so 'u' is the first vehicle in chain */
if (v == NULL)
- return u;
+ return (Vehicle*)u;
}
}
--- a/vehicle.h Wed Mar 09 19:48:20 2005 +0000
+++ b/vehicle.h Wed Mar 09 21:54:52 2005 +0000
@@ -262,8 +262,8 @@
void VehiclePositionChanged(Vehicle *v);
void AfterLoadVehicles(void);
Vehicle *GetLastVehicleInChain(Vehicle *v);
-Vehicle *GetPrevVehicleInChain(Vehicle *v);
-Vehicle *GetFirstVehicleInChain(Vehicle *v);
+Vehicle *GetPrevVehicleInChain(const Vehicle *v);
+Vehicle *GetFirstVehicleInChain(const Vehicle *v);
int CountVehiclesInChain(Vehicle *v);
void DeleteVehicle(Vehicle *v);
void DeleteVehicleChain(Vehicle *v);
@@ -285,7 +285,7 @@
void AddRearEngineToMultiheadedTrain(Vehicle *v, Vehicle *u, bool building) ;
/* train_cmd.h */
-int GetTrainImage(Vehicle *v, byte direction);
+int GetTrainImage(const Vehicle *v, byte direction);
int GetAircraftImage(Vehicle *v, byte direction);
int GetRoadVehImage(Vehicle *v, byte direction);
int GetShipImage(Vehicle *v, byte direction);