summaryrefslogtreecommitdiff
path: root/src/newgrf_spritegroup.cpp
AgeCommit message (Collapse)Author
2021-01-08Codechange: Remove min/max functions in favour of STL variants (#8502)Charles Pigott
2020-01-26Feature: NewGRF callback profiling (#7868)Niels Martin Hansen
Adds a console command newgrf_profile to collect some profiling data about NewGRF action 2 callbacks and produce a CSV file.
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2018-10-31Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating ↵frosch
by 0 bits.
2018-10-31Fix: Protect against a few out of bounds or uninitialised usage errorsCharles Pigott
2018-10-31Doc: Lots and lots of doxymentation fixesCharles Pigott
2018-03-11(svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:frosch
- nvar=0 is meant to return the calculated result. - Missing references resolve to NULL and got identified with the default result. - Missing 'break' broke overlapping cases. - Splitting into non-overlapping cases could result in more than 256 cases.
2018-03-11(svn r27985) -Codechange: Convert VA2 switches into ones with ↵frosch
non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent.
2018-03-11(svn r27984) -Codechange: Make ScopeResolver constructors/destructors ↵frosch
inlineable. Speedup sprite resolving by about 8 percent.
2018-03-11(svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustmentsfrosch
2018-03-11(svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup ↵frosch
sprite resolving by about 3 percent.
2017-10-25(svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should ↵frosch
include the new triggers. -Fix: [NewGRF] Reset used random triggers only after all A123 chains have been resolved, so that all RA2 in all chains can test the shard triggers. This also includes multiple RA2 in the same A123 chain. -Fix: [NewGRF] Industry random triggers are stored per tile, even when randomising the shared random bits of the parent industry.
2016-06-13(svn r27600) -Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use ↵frosch
signed division/modulo.
2014-04-23(svn r26482) -Codechange: add an include that allows us to undefine/redefine ↵rubidium
"unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2014-04-20(svn r26475) -Fix: potentially undefined shifts in NewGRF coderubidium
2014-03-03(svn r26388) -Codechange: Move resolving of Action 3 into ResolverObject ↵frosch
constructor.
2013-12-23(svn r26173) -Change: [NewGRF] Reset the temporary storage registers for ↵frosch
every sprite resolving.
2013-12-23(svn r26172) -Codechange: Make SpriteGroup::Resolve aware of nested calls.frosch
2013-11-24(svn r26085) -Codechange: Pass ResolverObjects as reference instead of ↵frosch
pointer since they are never NULL.
2013-01-08(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by ↵planetmaker
Eagle_rainbow)
2012-11-11(svn r24695) -Fix/Cleanup: Remove remaining (incorrect) usages of ↵frosch
ResolverObject::scope and count.
2012-11-10(svn r24693) -Doc: Add some doxymentation into the newgrf code.alberth
2012-11-10(svn r24692) -Cleanup: Cleanup final parts of the old resolver code.alberth
2012-11-10(svn r24679) -Codechange: Add resolver classes for towns.alberth
2012-11-10(svn r24678) -Codechange: Introduce scope resolver base class and prepare ↵alberth
for adding derived classes.
2012-01-03(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp filesrubidium
2011-11-12(svn r23198) -Codechange: introduce a free that takes const pointers so we ↵rubidium
don't need to cast to void/non-const before being able to free
2011-11-08(svn r23153) -Change: [NewGRF v8] Use heightlevel units in variable 20/A0.frosch
2011-11-08(svn r23138) -Feature: [NewGRF] Allow passing 32bit parameters to 60+x ↵frosch
variables (using var 7B). Currently most useful for vehicle var 60.
2011-11-08(svn r23136) -Change: [NewGRF v8] Deprecate old-style callback results 0xFF??.frosch
2011-09-11(svn r22924) -Codechange: Enhance NewGRFSpriteLayout for drawing ↵frosch
construction stages in spritelayouts with inconsistent number of sprites per spriteset.
2011-09-11(svn r22923) -Codechange: Move application of the construction stage into ↵frosch
TileLayoutSpriteGroup::ProcessRegisters().
2011-07-04(svn r22635) -Fix: Correctly reseed random bits of industries and industry ↵frosch
tiles.
2011-06-12(svn r22564) -Codechange: Rename Get and Store persistent storage functions ↵terkhen
to GetValue and StoreValue.
2011-06-12(svn r22563) -Codechange: Use a function for storing values inside the ↵terkhen
persistent storage.
2011-05-29(svn r22518) -Feature: [NewGRF] Advanced sprite layouts with register modifiers.frosch
2011-05-14(svn r22457) -Codechange: Make the NewGRFSpriteLayout a direct member of ↵frosch
TileLayoutSpriteGroup instead of allocating it separately.
2011-05-14(svn r22456) -Codechange: Derive NewGRFSpriteLayout from DrawTileSprites for ↵frosch
spritelayouts allocated on the heap, and make use of constructors and destructors.
2010-12-22(svn r21604) -Add: Variable 7B for accessing 60+x variables while taking the ↵frosch
parameter from the accumulator.
2010-11-15(svn r21198) -Fix: don't call variables properties in debug messagesrubidium
2010-08-26(svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to ↵rubidium
some headers
2010-08-02(svn r20333) -Fix (r20332): Mask second operand to 5 bits to avoid ↵frosch
differences between platforms.
2010-08-02(svn r20332) -Add: [NewGRF] AdvVarAct2 operators for SHL, SHR and SAR.frosch
2010-03-21(svn r19497) -Fix: [NewGRF] Bytes and words get sign-extended for ↵frosch
temporary/persistent storage. (Spotted by yexo)
2010-01-15(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, ↵rubidium
if a header require a header make it include that header
2010-01-03(svn r18699) -Fix [FS#PlanetAndy]: GRF parameters were not properly ↵frosch
initialised to zero, and not always checked for valid range.
2009-09-30(svn r17672) -Revert (r8081): 'last_value' and 'reseed' are shared between ↵frosch
procedure and main chain. -Fix (r8075): 'scope' and 'count' are not.
2009-09-30(svn r17670) -Cleanup (r12819): ResolverObject::procedure_call is not used ↵frosch
anymore.
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium