Commit Graph

244 Commits

Author SHA1 Message Date
frosch
55a503e6f2 (svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:
- 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 15:08:51 +00:00
frosch
a537fd5d0e (svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:
- 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 15:08:51 +00:00
frosch
07d841d0ef (svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent. 2018-03-11 13:21:27 +00:00
frosch
30f73d907a (svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent. 2018-03-11 13:21:27 +00: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
29dca1be3b (svn r27984) -Codechange: Make ScopeResolver constructors/destructors inlineable. Speedup sprite resolving by about 8 percent. 2018-03-11 13:19:41 +00:00
frosch
7c406f0d9d (svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustments 2018-03-11 13:18:13 +00:00
frosch
2a3d0cea50 (svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustments 2018-03-11 13:18:13 +00:00
frosch
4fc178aebd (svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent. 2018-03-11 13:17:44 +00:00
frosch
aee8ffc73b (svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent. 2018-03-11 13:17:44 +00:00
Jonathan G Rennison
740e4543c3 Merge branch 'master' into jgrpp
# Conflicts:
#	src/industry_cmd.cpp
2017-12-10 12:41:58 +00:00
frosch
82ae414e8d (svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should 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.
2017-10-25 15:38:14 +00:00
frosch
ffdcbb8f21 (svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should 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.
2017-10-25 15:38:14 +00:00
Jonathan G Rennison
d733955d33 Add road vehicle state to UpdateViewport()->GetImage() var whitelist.
Minor refactoring of var check.
2016-09-10 01:03:48 +01:00
Jonathan G Rennison
7b56097f50 Merge branch 'master' into jgrpp
# Conflicts:
#	config.lib
#	src/linkgraph/demands.cpp
#	src/linkgraph/mcf.cpp
#	src/linkgraph/refresh.cpp
#	src/linkgraph/refresh.h
#	src/smallmap_gui.cpp
2016-07-24 10:16:55 +01:00
Jonathan G Rennison
3ac94e97c8 Cache the result of GetImage() in Vehicle::UpdateViewport() where possible.
Sprite number is not cached if callback is made, or a variable access
outside a whitelist occurs.
Invalidate cached sprite number when direction or cargo changes,
or vehicle is marked dirty.
2016-07-08 19:07:25 +01:00
frosch
2782993dd7 (svn r27600) -Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo. 2016-06-13 17:34:18 +00:00
frosch
a073b276ba (svn r27600) -Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo. 2016-06-13 17:34:18 +00:00
rubidium
2be4215f43 (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
rubidium
0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
rubidium
101b982263 (svn r26475) -Fix: potentially undefined shifts in NewGRF code 2014-04-20 15:47:50 +00:00
rubidium
bbed2ff956 (svn r26475) -Fix: potentially undefined shifts in NewGRF code 2014-04-20 15:47:50 +00:00
frosch
ce92faf682 (svn r26388) -Codechange: Move resolving of Action 3 into ResolverObject constructor. 2014-03-03 20:02:31 +00:00
frosch
6b61c4608f (svn r26388) -Codechange: Move resolving of Action 3 into ResolverObject constructor. 2014-03-03 20:02:31 +00:00
frosch
cefdd69748 (svn r26173) -Change: [NewGRF] Reset the temporary storage registers for every sprite resolving. 2013-12-23 18:08:36 +00:00
frosch
a9e8d7a361 (svn r26173) -Change: [NewGRF] Reset the temporary storage registers for every sprite resolving. 2013-12-23 18:08:36 +00:00
frosch
badbd2f894 (svn r26172) -Codechange: Make SpriteGroup::Resolve aware of nested calls. 2013-12-23 18:08:16 +00:00
frosch
3eea1befa7 (svn r26172) -Codechange: Make SpriteGroup::Resolve aware of nested calls. 2013-12-23 18:08:16 +00:00
frosch
6c63c98d7f (svn r26085) -Codechange: Pass ResolverObjects as reference instead of pointer since they are never NULL. 2013-11-24 14:41:19 +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
f00d9976f9 (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 2013-01-08 22:46:42 +00:00
planetmaker
c24374f99c (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 2013-01-08 22:46:42 +00:00
frosch
f5131bd588 (svn r24695) -Fix/Cleanup: Remove remaining (incorrect) usages of ResolverObject::scope and count. 2012-11-11 12:57:27 +00:00
frosch
b65ece1ea9 (svn r24695) -Fix/Cleanup: Remove remaining (incorrect) usages of ResolverObject::scope and count. 2012-11-11 12:57:27 +00:00
alberth
6c1ff5f772 (svn r24693) -Doc: Add some doxymentation into the newgrf code. 2012-11-10 20:46:39 +00:00
alberth
33ff55a8f1 (svn r24693) -Doc: Add some doxymentation into the newgrf code. 2012-11-10 20:46:39 +00:00
alberth
8a297ca5f1 (svn r24692) -Cleanup: Cleanup final parts of the old resolver code. 2012-11-10 20:45:59 +00:00
alberth
4c9bea2a71 (svn r24692) -Cleanup: Cleanup final parts of the old resolver code. 2012-11-10 20:45:59 +00:00
alberth
818332f3e8 (svn r24679) -Codechange: Add resolver classes for towns. 2012-11-10 20:38:46 +00:00
alberth
b985c4c0f8 (svn r24679) -Codechange: Add resolver classes for towns. 2012-11-10 20:38:46 +00:00
alberth
6a619b40d5 (svn r24678) -Codechange: Introduce scope resolver base class and prepare for adding derived classes. 2012-11-10 20:37:31 +00:00
alberth
438495b433 (svn r24678) -Codechange: Introduce scope resolver base class and prepare for adding derived classes. 2012-11-10 20:37:31 +00:00
rubidium
d5eeab43b7 (svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp files 2012-01-03 21:32:51 +00:00
rubidium
6d6be50ae0 (svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp files 2012-01-03 21:32:51 +00:00
rubidium
33d71b45fe (svn r23198) -Codechange: introduce a free that takes const pointers so we don't need to cast to void/non-const before being able to free 2011-11-12 13:00:29 +00:00
rubidium
7fd1e1df81 (svn r23198) -Codechange: introduce a free that takes const pointers so we don't need to cast to void/non-const before being able to free 2011-11-12 13:00:29 +00:00
frosch
8bfc1ebf9f (svn r23153) -Change: [NewGRF v8] Use heightlevel units in variable 20/A0. 2011-11-08 17:28:52 +00:00
frosch
5aaecae6e2 (svn r23153) -Change: [NewGRF v8] Use heightlevel units in variable 20/A0. 2011-11-08 17:28:52 +00:00
frosch
46e77ee24f (svn r23138) -Feature: [NewGRF] Allow passing 32bit parameters to 60+x variables (using var 7B). Currently most useful for vehicle var 60. 2011-11-08 17:23:30 +00:00
frosch
1ad7239247 (svn r23138) -Feature: [NewGRF] Allow passing 32bit parameters to 60+x variables (using var 7B). Currently most useful for vehicle var 60. 2011-11-08 17:23:30 +00:00
frosch
6eb0ebf7df (svn r23136) -Change: [NewGRF v8] Deprecate old-style callback results 0xFF??. 2011-11-08 17:22:19 +00:00
frosch
e08a227b53 (svn r23136) -Change: [NewGRF v8] Deprecate old-style callback results 0xFF??. 2011-11-08 17:22:19 +00:00
frosch
bf664cd68d (svn r22924) -Codechange: Enhance NewGRFSpriteLayout for drawing construction stages in spritelayouts with inconsistent number of sprites per spriteset. 2011-09-11 15:10:09 +00:00
frosch
7f228d6909 (svn r22924) -Codechange: Enhance NewGRFSpriteLayout for drawing construction stages in spritelayouts with inconsistent number of sprites per spriteset. 2011-09-11 15:10:09 +00:00
frosch
bd696a6288 (svn r22923) -Codechange: Move application of the construction stage into TileLayoutSpriteGroup::ProcessRegisters(). 2011-09-11 15:09:13 +00:00
frosch
de27360549 (svn r22923) -Codechange: Move application of the construction stage into TileLayoutSpriteGroup::ProcessRegisters(). 2011-09-11 15:09:13 +00:00
frosch
0f8065fef4 (svn r22635) -Fix: Correctly reseed random bits of industries and industry tiles. 2011-07-04 20:37:20 +00:00
frosch
8930337aae (svn r22635) -Fix: Correctly reseed random bits of industries and industry tiles. 2011-07-04 20:37:20 +00:00
terkhen
3d96adb03f (svn r22564) -Codechange: Rename Get and Store persistent storage functions to GetValue and StoreValue. 2011-06-12 20:40:21 +00:00
terkhen
0749c65d74 (svn r22564) -Codechange: Rename Get and Store persistent storage functions to GetValue and StoreValue. 2011-06-12 20:40:21 +00:00
terkhen
ac4f4447e0 (svn r22563) -Codechange: Use a function for storing values inside the persistent storage. 2011-06-12 20:38:46 +00:00
terkhen
dc6218aa49 (svn r22563) -Codechange: Use a function for storing values inside the persistent storage. 2011-06-12 20:38:46 +00:00
frosch
becf6c823f (svn r22518) -Feature: [NewGRF] Advanced sprite layouts with register modifiers. 2011-05-29 16:56:22 +00:00
frosch
a241a4ce97 (svn r22518) -Feature: [NewGRF] Advanced sprite layouts with register modifiers. 2011-05-29 16:56:22 +00:00
frosch
5ca3ac41f0 (svn r22457) -Codechange: Make the NewGRFSpriteLayout a direct member of TileLayoutSpriteGroup instead of allocating it separately. 2011-05-14 17:33:26 +00:00
frosch
e55f849a29 (svn r22457) -Codechange: Make the NewGRFSpriteLayout a direct member of TileLayoutSpriteGroup instead of allocating it separately. 2011-05-14 17:33:26 +00:00
frosch
90337d88dd (svn r22456) -Codechange: Derive NewGRFSpriteLayout from DrawTileSprites for spritelayouts allocated on the heap, and make use of constructors and destructors. 2011-05-14 17:25:45 +00:00
frosch
7415b9cca2 (svn r22456) -Codechange: Derive NewGRFSpriteLayout from DrawTileSprites for spritelayouts allocated on the heap, and make use of constructors and destructors. 2011-05-14 17:25:45 +00:00
frosch
3de71010d6 (svn r21604) -Add: Variable 7B for accessing 60+x variables while taking the parameter from the accumulator. 2010-12-22 22:03:57 +00:00
frosch
256fe89b38 (svn r21604) -Add: Variable 7B for accessing 60+x variables while taking the parameter from the accumulator. 2010-12-22 22:03:57 +00:00
rubidium
878a06dd9a (svn r21198) -Fix: don't call variables properties in debug messages 2010-11-15 16:43:46 +00:00
rubidium
a6a2fbd937 (svn r21198) -Fix: don't call variables properties in debug messages 2010-11-15 16:43:46 +00:00
rubidium
360d6daf34 (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 2010-08-26 22:01:16 +00:00
rubidium
30f2afac9b (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 2010-08-26 22:01:16 +00:00
frosch
f273f2a656 (svn r20333) -Fix (r20332): Mask second operand to 5 bits to avoid differences between platforms. 2010-08-02 23:35:47 +00:00
frosch
1a9d5ae076 (svn r20333) -Fix (r20332): Mask second operand to 5 bits to avoid differences between platforms. 2010-08-02 23:35:47 +00:00
frosch
253fd969fd (svn r20332) -Add: [NewGRF] AdvVarAct2 operators for SHL, SHR and SAR. 2010-08-02 23:12:43 +00:00
frosch
0e5c562da4 (svn r20332) -Add: [NewGRF] AdvVarAct2 operators for SHL, SHR and SAR. 2010-08-02 23:12:43 +00:00
frosch
d006eff7a9 (svn r19497) -Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage. (Spotted by yexo) 2010-03-21 11:05:39 +00:00
frosch
c049bf3f38 (svn r19497) -Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage. (Spotted by yexo) 2010-03-21 11:05:39 +00:00
rubidium
9467b7c6d6 (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
rubidium
82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
frosch
0e39e68794 (svn r18699) -Fix [FS#PlanetAndy]: GRF parameters were not properly initialised to zero, and not always checked for valid range. 2010-01-03 19:29:56 +00:00
frosch
666c856457 (svn r18699) -Fix [FS#PlanetAndy]: GRF parameters were not properly initialised to zero, and not always checked for valid range. 2010-01-03 19:29:56 +00:00
frosch
01737c0a52 (svn r17672) -Revert (r8081): 'last_value' and 'reseed' are shared between procedure and main chain.
-Fix (r8075): 'scope' and 'count' are not.
2009-09-30 20:25:59 +00:00
frosch
2fa312aab9 (svn r17672) -Revert (r8081): 'last_value' and 'reseed' are shared between procedure and main chain.
-Fix (r8075): 'scope' and 'count' are not.
2009-09-30 20:25:59 +00:00
frosch
7903e2be91 (svn r17670) -Cleanup (r12819): ResolverObject::procedure_call is not used anymore. 2009-09-30 18:36:18 +00:00
frosch
d8eec0ebf0 (svn r17670) -Cleanup (r12819): ResolverObject::procedure_call is not used anymore. 2009-09-30 18:36:18 +00:00
rubidium
99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
rubidium
7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
rubidium
d39f442bd0 (svn r16434) -Cleanup: remove some dead code; primarily stuff that can't be reached like break after returns or break after functions that never return (i.e. NOT_REACHED) 2009-05-26 15:46:24 +00:00
rubidium
e3c5bc8d2e (svn r16434) -Cleanup: remove some dead code; primarily stuff that can't be reached like break after returns or break after functions that never return (i.e. NOT_REACHED) 2009-05-26 15:46:24 +00:00
rubidium
c496a3e014 (svn r16421) -Codechange: do not unnecessarily remove constness or unnecessarily add it. 2009-05-24 20:29:04 +00:00
rubidium
0d99b6c71c (svn r16421) -Codechange: do not unnecessarily remove constness or unnecessarily add it. 2009-05-24 20:29:04 +00:00
rubidium
846382a0f3 (svn r16402) -Codechange: make Resolve a function of SpriteGroup 2009-05-23 15:25:52 +00:00
rubidium
f2317d0d9d (svn r16402) -Codechange: make Resolve a function of SpriteGroup 2009-05-23 15:25:52 +00:00
rubidium
730b411878 (svn r16396) -Codechange: split NewGRF spritegroup into multiple subclasses instead of using a big union 2009-05-23 12:13:42 +00:00
rubidium
f490394aa8 (svn r16396) -Codechange: split NewGRF spritegroup into multiple subclasses instead of using a big union 2009-05-23 12:13:42 +00:00
smatz
50624d5c0f (svn r16378) -Codechange: replace OldPool with simpler Pool. Compilation time, binary size and run time (with asserts disabled) should be improved 2009-05-22 15:13:50 +00:00
smatz
62a7948af0 (svn r16378) -Codechange: replace OldPool with simpler Pool. Compilation time, binary size and run time (with asserts disabled) should be improved 2009-05-22 15:13:50 +00:00