diff options
Diffstat (limited to 'src/newgrf_engine.cpp')
-rw-r--r-- | src/newgrf_engine.cpp | 98 |
1 files changed, 49 insertions, 49 deletions
diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index a9929540a..d6f4b0997 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -65,7 +65,7 @@ const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, Eng if (wo->train_id[j] == overriding_engine) return wo->group; } } - return NULL; + return nullptr; } /** @@ -79,7 +79,7 @@ void UnloadWagonOverrides(Engine *e) } free(e->overrides); e->overrides_count = 0; - e->overrides = NULL; + e->overrides = nullptr; } @@ -88,7 +88,7 @@ void SetCustomEngineSprites(EngineID engine, byte cargo, const SpriteGroup *grou Engine *e = Engine::Get(engine); assert(cargo < lengthof(e->grf_prop.spritegroup)); - if (e->grf_prop.spritegroup[cargo] != NULL) { + if (e->grf_prop.spritegroup[cargo] != nullptr) { grfmsg(6, "SetCustomEngineSprites: engine %d cargo %d already has group -- replacing", engine, cargo); } e->grf_prop.spritegroup[cargo] = group; @@ -166,7 +166,7 @@ enum TTDPAircraftMovementStates { static byte MapAircraftMovementState(const Aircraft *v) { const Station *st = GetTargetAirportIfValid(v); - if (st == NULL) return AMS_TTDP_FLIGHT_TO_TOWER; + if (st == nullptr) return AMS_TTDP_FLIGHT_TO_TOWER; const AirportFTAClass *afc = st->airport.GetFTA(); uint16 amdflag = afc->MovingData(v->pos)->flag; @@ -339,12 +339,12 @@ static byte MapAircraftMovementAction(const Aircraft *v) /* virtual */ uint32 VehicleScopeResolver::GetRandomBits() const { - return this->v == NULL ? 0 : this->v->random_bits; + return this->v == nullptr ? 0 : this->v->random_bits; } /* virtual */ uint32 VehicleScopeResolver::GetTriggers() const { - return this->v == NULL ? 0 : this->v->waiting_triggers; + return this->v == nullptr ? 0 : this->v->waiting_triggers; } @@ -355,12 +355,12 @@ static byte MapAircraftMovementAction(const Aircraft *v) case VSG_SCOPE_PARENT: return &this->parent_scope; case VSG_SCOPE_RELATIVE: { int32 count = GB(relative, 0, 4); - if (this->self_scope.v != NULL && (relative != this->cached_relative_count || count == 0)) { + if (this->self_scope.v != nullptr && (relative != this->cached_relative_count || count == 0)) { /* Note: This caching only works as long as the VSG_SCOPE_RELATIVE cannot be used in * VarAct2 with procedure calls. */ if (count == 0) count = GetRegister(0x100); - const Vehicle *v = NULL; + const Vehicle *v = nullptr; switch (GB(relative, 6, 2)) { default: NOT_REACHED(); case 0x00: // count back (away from the engine), starting at this vehicle @@ -377,12 +377,12 @@ static byte MapAircraftMovementAction(const Aircraft *v) const Vehicle *self = this->self_scope.v; for (const Vehicle *u = self->First(); u != self; u = u->Next()) { if (u->engine_type != self->engine_type) { - v = NULL; + v = nullptr; } else { - if (v == NULL) v = u; + if (v == nullptr) v = u; } } - if (v == NULL) v = self; + if (v == nullptr) v = self; break; } } @@ -400,16 +400,16 @@ static byte MapAircraftMovementAction(const Aircraft *v) * This always uses dual company colours independent of GUI settings. So it is desync-safe. * * @param engine Engine type - * @param v Vehicle, NULL in purchase list. + * @param v Vehicle, nullptr in purchase list. * @return Livery to use */ static const Livery *LiveryHelper(EngineID engine, const Vehicle *v) { const Livery *l; - if (v == NULL) { - if (!Company::IsValidID(_current_company)) return NULL; - l = GetEngineLivery(engine, _current_company, INVALID_ENGINE, NULL, LIT_ALL); + if (v == nullptr) { + if (!Company::IsValidID(_current_company)) return nullptr; + l = GetEngineLivery(engine, _current_company, INVALID_ENGINE, nullptr, LIT_ALL); } else if (v->IsGroundVehicle()) { l = GetEngineLivery(v->engine_type, v->owner, v->GetGroundVehicleCache()->first_engine, v, LIT_ALL); } else { @@ -437,7 +437,7 @@ static uint32 PositionHelper(const Vehicle *v, bool consecutive) if (consecutive && u->engine_type != v->engine_type) chain_before = 0; } - while (u->Next() != NULL && (!consecutive || u->Next()->engine_type == v->engine_type)) { + while (u->Next() != nullptr && (!consecutive || u->Next()->engine_type == v->engine_type)) { chain_after++; u = u->Next(); } @@ -480,7 +480,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, memset(common_cargoes, 0, sizeof(common_cargoes)); memset(common_subtypes, 0, sizeof(common_subtypes)); - for (u = v; u != NULL; u = u->Next()) { + for (u = v; u != nullptr; u = u->Next()) { if (v->type == VEH_TRAIN) user_def_data |= Train::From(u)->tcache.user_def_data; /* Skip empty engines */ @@ -500,7 +500,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, } /* Count subcargo types of common_cargo_type */ - for (u = v; u != NULL; u = u->Next()) { + for (u = v; u != nullptr; u = u->Next()) { /* Skip empty engines and engines not carrying common_cargo_type */ if (u->cargo_type != common_cargo_type || !u->GetEngine()->CanCarryCargo()) continue; @@ -530,12 +530,12 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, * - For translating the cargo type we need to use the GRF which is resolving the variable, which * is object->ro.grffile. * In case of CBID_TRAIN_ALLOW_WAGON_ATTACH this is not the same as v->GetGRF(). - * - The grffile == NULL case only happens if this function is called for default vehicles. + * - The grffile == nullptr case only happens if this function is called for default vehicles. * And this is only done by CheckCaches(). */ const GRFFile *grffile = object->ro.grffile; uint8 common_bitnum = (common_cargo_type == CT_INVALID) ? 0xFF : - (grffile == NULL || grffile->grf_version < 8) ? CargoSpec::Get(common_cargo_type)->bitnum : grffile->cargo_map[common_cargo_type]; + (grffile == nullptr || grffile->grf_version < 8) ? CargoSpec::Get(common_cargo_type)->bitnum : grffile->cargo_map[common_cargo_type]; return (v->grf_cache.consist_cargo_information & 0xFFFF00FF) | common_bitnum << 8; } @@ -557,7 +557,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, const Station *st = GetTargetAirportIfValid(Aircraft::From(v)); - if (st != NULL && st->airport.tile != INVALID_TILE) { + if (st != nullptr && st->airport.tile != INVALID_TILE) { airporttype = st->airport.GetSpec()->ttd_airport_type; } @@ -574,8 +574,8 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, const Vehicle *u_p = v->Previous(); const Vehicle *u_n = v->Next(); - DirDiff f = (u_p == NULL) ? DIRDIFF_SAME : DirDifference(u_p->direction, v->direction); - DirDiff b = (u_n == NULL) ? DIRDIFF_SAME : DirDifference(v->direction, u_n->direction); + DirDiff f = (u_p == nullptr) ? DIRDIFF_SAME : DirDifference(u_p->direction, v->direction); + DirDiff b = (u_n == nullptr) ? DIRDIFF_SAME : DirDifference(v->direction, u_n->direction); DirDiff t = ChangeDirDiff(f, b); return ((t > DIRDIFF_REVERSE ? t | 8 : t) << 16) | @@ -636,7 +636,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, { uint count = 0; - for (; v != NULL; v = v->Next()) { + for (; v != nullptr; v = v->Next()) { if (v->GetEngine()->grf_prop.local_id == parameter) count++; } return count; @@ -653,7 +653,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, object->ro.callback == CBID_VEHICLE_START_STOP_CHECK || object->ro.callback == CBID_VEHICLE_32DAY_CALLBACK || object->ro.callback == CBID_VEHICLE_COLOUR_MAPPING || object->ro.callback == CBID_VEHICLE_SPAWN_VISUAL_EFFECT) { Vehicle *u = v->Move((int32)GetRegister(0x10F)); - if (u == NULL) return 0; // available, but zero + if (u == nullptr) return 0; // available, but zero if (parameter == 0x5F) { /* This seems to be the only variable that makes sense to access via var 61, but is not handled by VehicleGetVariable */ @@ -676,7 +676,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, if (!v->IsGroundVehicle()) return 0; const Vehicle *u = v->Move((int8)parameter); - if (u == NULL) return 0; + if (u == nullptr) return 0; /* Get direction difference. */ bool prev = (int8)parameter < 0; @@ -810,7 +810,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, case 0x57: return GB(ClampToI32(v->GetDisplayProfitLastYear()), 8, 24); case 0x58: return GB(ClampToI32(v->GetDisplayProfitLastYear()), 16, 16); case 0x59: return GB(ClampToI32(v->GetDisplayProfitLastYear()), 24, 8); - case 0x5A: return v->Next() == NULL ? INVALID_VEHICLE : v->Next()->index; + case 0x5A: return v->Next() == nullptr ? INVALID_VEHICLE : v->Next()->index; case 0x5C: return ClampToI32(v->value); case 0x5D: return GB(ClampToI32(v->value), 8, 24); case 0x5E: return GB(ClampToI32(v->value), 16, 16); @@ -882,10 +882,10 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, /* virtual */ uint32 VehicleScopeResolver::GetVariable(byte variable, uint32 parameter, bool *available) const { - if (this->v == NULL) { + if (this->v == nullptr) { /* Vehicle does not exist, so we're in a purchase list */ switch (variable) { - case 0x43: return GetCompanyInfo(_current_company, LiveryHelper(this->self_type, NULL)); // Owner information + case 0x43: return GetCompanyInfo(_current_company, LiveryHelper(this->self_type, nullptr)); // Owner information case 0x46: return 0; // Motion counter case 0x47: { // Vehicle cargo info const Engine *e = Engine::Get(this->self_type); @@ -919,17 +919,17 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, { const Vehicle *v = this->self_scope.v; - if (v == NULL) { + if (v == nullptr) { if (group->num_loading > 0) return group->loading[0]; if (group->num_loaded > 0) return group->loaded[0]; - return NULL; + return nullptr; } bool in_motion = !v->First()->current_order.IsType(OT_LOADING); uint totalsets = in_motion ? group->num_loaded : group->num_loading; - if (totalsets == 0) return NULL; + if (totalsets == 0) return nullptr; uint set = (v->cargo.StoredCount() * totalsets) / max((uint16)1, v->cargo_cap); set = min(set, totalsets - 1); @@ -945,7 +945,7 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, static const GRFFile *GetEngineGrfFile(EngineID engine_type) { const Engine *e = Engine::Get(engine_type); - return (e != NULL) ? e->GetGRF() : NULL; + return (e != nullptr) ? e->GetGRF() : nullptr; } /** @@ -962,14 +962,14 @@ VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle CallbackID callback, uint32 callback_param1, uint32 callback_param2) : ResolverObject(GetEngineGrfFile(engine_type), callback, callback_param1, callback_param2), self_scope(*this, engine_type, v, info_view), - parent_scope(*this, engine_type, ((v != NULL) ? v->First() : v), info_view), + parent_scope(*this, engine_type, ((v != nullptr) ? v->First() : v), info_view), relative_scope(*this, engine_type, v, info_view), cached_relative_count(0) { if (wagon_override == WO_SELF) { this->root_spritegroup = GetWagonOverrideSpriteSet(engine_type, CT_DEFAULT, engine_type); } else { - if (wagon_override != WO_NONE && v != NULL && v->IsGroundVehicle()) { + if (wagon_override != WO_NONE && v != nullptr && v->IsGroundVehicle()) { assert(v->engine_type == engine_type); // overrides make little sense with fake scopes /* For trains we always use cached value, except for callbacks because the override spriteset @@ -982,11 +982,11 @@ VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle } } - if (this->root_spritegroup == NULL) { + if (this->root_spritegroup == nullptr) { const Engine *e = Engine::Get(engine_type); - CargoID cargo = v != NULL ? v->cargo_type : CT_PURCHASE; + CargoID cargo = v != nullptr ? v->cargo_type : CT_PURCHASE; assert(cargo < lengthof(e->grf_prop.spritegroup)); - this->root_spritegroup = e->grf_prop.spritegroup[cargo] != NULL ? e->grf_prop.spritegroup[cargo] : e->grf_prop.spritegroup[CT_DEFAULT]; + this->root_spritegroup = e->grf_prop.spritegroup[cargo] != nullptr ? e->grf_prop.spritegroup[cargo] : e->grf_prop.spritegroup[CT_DEFAULT]; } } } @@ -1005,7 +1005,7 @@ void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction directio object.callback_param1 = image_type | (stack << 8); const SpriteGroup *group = object.Resolve(); uint32 reg100 = sprite_stack ? GetRegister(0x100) : 0; - if (group != NULL && group->GetNumResults() != 0) { + if (group != nullptr && group->GetNumResults() != 0) { result->seq[result->count].sprite = group->GetResult() + (direction % group->GetNumResults()); result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring result->count++; @@ -1025,7 +1025,7 @@ void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info VehicleResolverObject object(engine, v, VehicleResolverObject::WO_SELF, info_view, CBID_NO_CALLBACK); result->Clear(); - uint rotor_pos = v == NULL || info_view ? 0 : v->Next()->Next()->state; + uint rotor_pos = v == nullptr || info_view ? 0 : v->Next()->Next()->state; bool sprite_stack = HasBit(e->info.misc_flags, EF_SPRITE_STACK); uint max_stack = sprite_stack ? lengthof(result->seq) : 1; @@ -1034,7 +1034,7 @@ void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info object.callback_param1 = image_type | (stack << 8); const SpriteGroup *group = object.Resolve(); uint32 reg100 = sprite_stack ? GetRegister(0x100) : 0; - if (group != NULL && group->GetNumResults() != 0) { + if (group != nullptr && group->GetNumResults() != 0) { result->seq[result->count].sprite = group->GetResult() + (rotor_pos % group->GetNumResults()); result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring result->count++; @@ -1052,7 +1052,7 @@ void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, bool info bool UsesWagonOverride(const Vehicle *v) { assert(v->type == VEH_TRAIN); - return Train::From(v)->tcache.cached_override != NULL; + return Train::From(v)->tcache.cached_override != nullptr; } /** @@ -1061,7 +1061,7 @@ bool UsesWagonOverride(const Vehicle *v) * @param param1 First parameter of the callback * @param param2 Second parameter of the callback * @param engine Engine type of the vehicle to evaluate the callback for - * @param v The vehicle to evaluate the callback for, or NULL if it doesnt exist yet + * @param v The vehicle to evaluate the callback for, or nullptr if it doesnt exist yet * @return The value the callback returned, or CALLBACK_FAILED if it failed */ uint16 GetVehicleCallback(CallbackID callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v) @@ -1076,7 +1076,7 @@ uint16 GetVehicleCallback(CallbackID callback, uint32 param1, uint32 param2, Eng * @param param1 First parameter of the callback * @param param2 Second parameter of the callback * @param engine Engine type of the vehicle to evaluate the callback for - * @param v The vehicle to evaluate the callback for, or NULL if it doesn't exist yet + * @param v The vehicle to evaluate the callback for, or nullptr if it doesn't exist yet * @param parent The vehicle to use for parent scope * @return The value the callback returned, or CALLBACK_FAILED if it failed */ @@ -1107,14 +1107,14 @@ uint GetEngineProperty(EngineID engine, PropertyID property, uint orig_value, co static void DoTriggerVehicle(Vehicle *v, VehicleTrigger trigger, byte base_random_bits, bool first) { /* We can't trigger a non-existent vehicle... */ - assert(v != NULL); + assert(v != nullptr); VehicleResolverObject object(v->engine_type, v, VehicleResolverObject::WO_CACHED, false, CBID_RANDOM_TRIGGER); object.waiting_triggers = v->waiting_triggers | trigger; v->waiting_triggers = object.waiting_triggers; // store now for var 5F const SpriteGroup *group = object.Resolve(); - if (group == NULL) return; + if (group == nullptr) return; /* Store remaining triggers. */ v->waiting_triggers = object.GetRemainingTriggers(); @@ -1142,7 +1142,7 @@ static void DoTriggerVehicle(Vehicle *v, VehicleTrigger trigger, byte base_rando /* We now trigger the next vehicle in chain recursively. * The random bits portions may be different for each * vehicle in chain. */ - if (v->Next() != NULL) DoTriggerVehicle(v->Next(), trigger, 0, true); + if (v->Next() != nullptr) DoTriggerVehicle(v->Next(), trigger, 0, true); break; case VEHICLE_TRIGGER_EMPTY: @@ -1150,14 +1150,14 @@ static void DoTriggerVehicle(Vehicle *v, VehicleTrigger trigger, byte base_rando * recursively. The random bits portions must be same * for each vehicle in chain, so we give them all * first chained vehicle's portion of random bits. */ - if (v->Next() != NULL) DoTriggerVehicle(v->Next(), trigger, first ? new_random_bits : base_random_bits, false); + if (v->Next() != nullptr) DoTriggerVehicle(v->Next(), trigger, first ? new_random_bits : base_random_bits, false); break; case VEHICLE_TRIGGER_ANY_NEW_CARGO: /* Now pass the trigger recursively to the next vehicle * in chain. */ assert(!first); - if (v->Next() != NULL) DoTriggerVehicle(v->Next(), VEHICLE_TRIGGER_ANY_NEW_CARGO, base_random_bits, false); + if (v->Next() != nullptr) DoTriggerVehicle(v->Next(), VEHICLE_TRIGGER_ANY_NEW_CARGO, base_random_bits, false); break; case VEHICLE_TRIGGER_CALLBACK_32: |