summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/newgrf.cpp46
-rw-r--r--src/newgrf_callbacks.h14
2 files changed, 38 insertions, 22 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 3cf4334ec..abbf325eb 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -497,6 +497,12 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
rvi->tractive_effort = grf_load_byte(&buf);
break;
+ case 0x20: // Air drag
+ /** @todo Air drag for trains. */
+ grf_load_byte(&buf);
+ ret = true;
+ break;
+
case 0x21: // Shorter vehicle
rvi->shorten_factor = grf_load_byte(&buf);
break;
@@ -545,12 +551,6 @@ static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
ei->base_intro = grf_load_dword(&buf);
break;
- case 0x20: // Air drag
- /** @todo Air drag for trains. */
- grf_load_byte(&buf);
- ret = true;
- break;
-
default:
ret = true;
break;
@@ -638,6 +638,13 @@ static bool RoadVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
ei->callbackmask = grf_load_byte(&buf);
break;
+ case 0x18: // Tractive effort
+ case 0x19: // Air drag
+ /** @todo Tractive effort and air drag for road vehicles. */
+ grf_load_byte(&buf);
+ ret = true;
+ break;
+
case 0x1A: // Refit cost
ei->refit_cost = grf_load_byte(&buf);
break;
@@ -663,13 +670,6 @@ static bool RoadVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
ei->base_intro = grf_load_dword(&buf);
break;
- case 0x18: // Tractive effort
- case 0x19: // Air drag
- /** @todo Tractive effort and air drag for road vehicles. */
- grf_load_byte(&buf);
- ret = true;
- break;
-
default:
ret = true;
break;
@@ -748,6 +748,13 @@ static bool ShipVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
ei->refit_cost = grf_load_byte(&buf);
break;
+ case 0x14: // Ocean speed fraction
+ case 0x15: // Canal speed fraction
+ /** @todo Speed fractions for ships on oceans and canals */
+ grf_load_byte(&buf);
+ ret = true;
+ break;
+
case 0x16: // Retire vehicle early
ei->retire_early = grf_load_byte(&buf);
break;
@@ -769,13 +776,6 @@ static bool ShipVehicleChangeInfo(uint engine, int numinfo, int prop, byte **buf
ei->base_intro = grf_load_dword(&buf);
break;
- case 0x14: // Ocean speed fraction
- case 0x15: // Canal speed fraction
- /** @todo Speed fractions for ships on oceans and canals */
- grf_load_byte(&buf);
- ret = true;
- break;
-
default:
ret = true;
break;
@@ -1394,6 +1394,12 @@ static bool TownHouseChangeInfo(uint hid, int numinfo, int prop, byte **bufp, in
housespec->minimum_life = grf_load_byte(&buf);
break;
+ case 0x20: { // @todo Cargo acceptance watch list
+ byte count = grf_load_byte(&buf);
+ for (byte j = 0; j < count; j++) grf_load_byte(&buf);
+ ret = true;
+ } break;
+
default:
ret = true;
break;
diff --git a/src/newgrf_callbacks.h b/src/newgrf_callbacks.h
index 0d5de6feb..417cfb02e 100644
--- a/src/newgrf_callbacks.h
+++ b/src/newgrf_callbacks.h
@@ -170,7 +170,16 @@ enum CallbackID {
/** Called to determine if the industry can still accept or refuse more cargo arrival */
CBID_INDUSTRY_REFUSE_CARGO = 0x3D,
- /* There are no callbacks 0x3E - 0x142. */
+ /* There are no callbacks 0x3E - 0x13F */
+
+ /** Called for periodically starting or stopping the animation. */
+ CBID_STATION_ANIM_START_STOP = 0x140, // not implemented
+
+ /** Called to determine station tile next animation frame. */
+ CBID_STATION_ANIM_NEXT_FRAME = 0x141, // not implemented
+
+ /** Called to indicate how long the current animation frame should last. */
+ CBID_STATION_ANIMATION_SPEED = 0x142, // not implemented
/** Called to determine whether a town building can be destroyed. */
CBID_HOUSE_DENY_DESTRUCTION = 0x143,
@@ -187,7 +196,8 @@ enum CallbackID {
/** Add an offset to the default sprite numbers to show another sprite. */
CBID_CANALS_SPRITE_OFFSET = 0x147, // not implemented
- /* There is no callback 0x148.*/
+ /** Called when a cargo type specified in property 20 is accepted. */
+ CBID_HOUSE_WATCHED_CARGO_ACCEPTED = 0x148, // not implemented
/** Callback done for each tile of a station to check the slope. */
CBID_STATION_LAND_SLOPE_CHECK = 0x149, // not implemented