Commit Graph

52 Commits

Author SHA1 Message Date
Peter Nelson 774f811217
Codechange: Use std::optional for town parent scope resolver. (#12530)
When resolving NewGRF, the parent town_scope is lazily initialised as it does not always need to be used.

Replace the manually managed pointer with std::optional to simplify. Using std::optional avoids extra memory allocation.
2024-04-18 22:14:16 +01:00
Peter Nelson 1773c5b810
Change: Increase object/station/roadstop class limit. (#12094)
The class limit is arbitrary and not stored in game state.

This change prevents all entities in classes after the 255th class from being dumped into the first class.
2024-04-09 23:16:20 +01:00
Peter Nelson 668186ca5b
Codechange: Remove macros involved with NewGRFClass. (#12363)
Use direct class instantiation instead.
2024-03-23 21:55:50 +00:00
Patric Stout a3cfd23cf9
Codechange: rename byte to uint8_t (#12308) 2024-03-16 23:59:32 +01:00
frosch b1718478c8 Codechange: Replace old non-standard attributes with C++17/20 standard attributes. 2024-02-02 22:29:28 +01:00
Peter Nelson 102fc6a9d1
Cleanup: iif should be iff (if-and-only-if) (#11570) 2023-12-10 12:05:28 +00:00
frosch b6c8f301be Codechange: Silence warnings about intentionally unused parameters. 2023-09-19 22:49:59 +02:00
Rubidium eaae0bb5e7 Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
PeterN 0b663f709d
Codechange: Sprite mapping for objects doesn't involve cargo types. (#10905)
Objects have a default sprite group and an optional purchase list sprite
group. There is no need to pretend that these are cargo IDs.
2023-06-02 08:25:13 +00:00
Tyler Trahan 930f0a16d8 Codechange: Define Date/Year/Month/Day within TimerGameCalendar class 2023-04-26 07:14:03 -04:00
Peter Nelson 82c70ed3b8 Change: Expose ObjectSpec vector to simplify iteration. 2023-04-02 22:42:38 +01:00
Peter Nelson 1f46f080f0 Codechange: Store objectspecs in std::vector instead of flat array. 2023-04-02 22:42:38 +01:00
Peter Nelson 93197f58b7 Codechange: Bind objectspecs to classes once all finalised. 2023-04-02 22:42:38 +01:00
PeterN 2355882ec1
Codechange: Remove object `enabled` flag and shuffle members. (#10358)
`enabled` flag is replaced with IsEnabled() which checks if views is
non-zero.

ObjectSpec is shuffled to reduce its memory footprint.
2023-01-15 10:58:03 +00:00
Michael Lutz bd357656ba Codechange: [NewGRF] Replace magic number for default object size by a constant. 2022-10-16 18:28:08 +02:00
Niels Martin Hansen c8779fb311
Feature: NewGRF callback profiling (#7868)
Adds a console command newgrf_profile to collect some profiling data about NewGRF action 2 callbacks and produce a CSV file.
2020-01-26 13:45:51 +01:00
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00
Henry Wilson af7d9020a1 Codechange: Use override specifer for overriding member declarations
This is a C++11 feature that allows the compiler to check that a virtual
member declaration overrides a base-class member with the same signature.

Also src/blitter/32bpp_anim_sse4.hpp +38 is no longer erroneously marked
as virtual despite being a template.
2019-03-24 16:10:04 +01:00
J0an Josep cfb8092397 Fix b4b98e5165: Use FALLTHROUGH attribute with correct indentation. 2018-04-30 21:52:40 +02:00
frosch d9d669dcf8 (svn r27984) -Codechange: Make ScopeResolver constructors/destructors inlineable. Speedup sprite resolving by about 8 percent. 2018-03-11 13:19:41 +00:00
frosch b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 2017-08-13 18:38:42 +00:00
frosch db894b0b3f (svn r26085) -Codechange: Pass ResolverObjects as reference instead of pointer since they are never NULL. 2013-11-24 14:41:19 +00:00
planetmaker c29ec8edee (svn r25877) -Doc: A bit too much c&p in comment 2013-10-17 21:41:59 +00:00
planetmaker 2ee9a2b5e7 (svn r25875) -Change: In scenario editor allow to build all objects which were available at any point in the past to support building scenarios with historic items 2013-10-17 21:37:25 +00:00
planetmaker 547b1fba45 (svn r25874) -Add: [NewGRF] NewObject property 0x10, bit 13 indicating that object amount scales with water content of map border (e.g. used for lighthouses) 2013-10-17 21:31:53 +00:00
planetmaker 88286d33ab (svn r25873) -Codechange: Add property for the amount of generated objects upon map creation to default objects 2013-10-17 21:27:08 +00:00
planetmaker f5e408fa1c (svn r25868) -Fix (r25650): Initialization of default objects swapped costs and dates 2013-10-16 19:11:34 +00:00
frosch b1131671d4 (svn r25831) -Change: Increase the object class limit from 32 to 255. (sbr) 2013-10-12 16:30:05 +00:00
alberth 33ff55a8f1 (svn r24693) -Doc: Add some doxymentation into the newgrf code. 2012-11-10 20:46:39 +00:00
alberth 4c9bea2a71 (svn r24692) -Cleanup: Cleanup final parts of the old resolver code. 2012-11-10 20:45:59 +00:00
alberth a9b8b22daf (svn r24683) -Codechange: Add resolver classes for objects. 2012-11-10 20:40:46 +00:00
frosch 27ffb03383 (svn r24160) -Codechange: Split parts of ObjectSpec::IsAvailable() into ObjectSpec::IsEverAvailable(). 2012-04-22 16:27:45 +00:00
rubidium e40eb8177a (svn r23735) -Codechange: remove ~50 includes from headers that weren't needed 2012-01-03 20:26:05 +00:00
terkhen f1cde00372 (svn r22561) -Codechange: Remove constness from Object in ResolverObject. 2011-06-12 20:36:33 +00:00
terkhen e127fca384 (svn r22557) -Codechange: Remove constness from AnimationBase callbacks. 2011-06-12 20:32:52 +00:00
planetmaker 2aa14cc54b (svn r22204) -Change: Make the base costs for building and demolishing NewObjects also local to the individual NewGRFs 2011-03-05 18:28:10 +00:00
rubidium 7eba2bf4d3 (svn r21890) -Cleanup: remove some unneeded includes 2011-01-22 14:52:20 +00:00
rubidium eb299736c1 (svn r21886) -Codechange: move documentation towards the code to make it more likely to be updated [n]. 2011-01-22 09:53:15 +00:00
rubidium 5d0da9492e (svn r21454) -Codechange: add support for object variable 48 2010-12-10 21:32:52 +00:00
rubidium fdeab92dc7 (svn r21452) -Codechange: read object property 17 (number of views) 2010-12-10 21:30:26 +00:00
rubidium 60fe27db50 (svn r20662) -Codechange: implement object animation 2010-08-28 18:51:47 +00:00
rubidium 852bde0bad (svn r20660) -Codechange: implement (most) of action2 support for objects 2010-08-28 18:49:39 +00:00
rubidium c481e3b110 (svn r20655) -Codechange: implement reading the action3 of objects 2010-08-28 18:22:24 +00:00
rubidium 164a923c69 (svn r20652) -Codechange: implement a function to get the index of a spec. 2010-08-28 17:38:07 +00:00
rubidium 0a86eac2f1 (svn r20651) -Codechange: add a function to determine whether an object is available and use it 2010-08-28 17:36:28 +00:00
rubidium 6348aa7964 (svn r20650) -Codechange: add some variables to the object's spec 2010-08-28 17:35:00 +00:00
rubidium f9a9b0ed4a (svn r20649) -Codechange: implement classes for objects 2010-08-28 17:32:30 +00:00
rubidium 1ec1f1ef37 (svn r20648) -Codechange: implement the NewGRF override manager for objects 2010-08-28 17:30:55 +00:00
rubidium 34da98f2b1 (svn r20647) -Codechange: update some of the object spec information 2010-08-28 17:29:12 +00:00