diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3cf4334ec5..abbf325ebb 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 0d5de6feb6..417cfb02ec 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