1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-27 08:29:11 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
rubidium
41e8be2835 (svn r21873) -Release: 1.1.0-beta4 2011-01-20 22:15:19 +00:00
394 changed files with 6222 additions and 7675 deletions

View File

@@ -319,5 +319,3 @@ AIIndustry.IsCargoAccepted <- function(industry_id, cargo_id)
AIAbstractList <- AIList; AIAbstractList <- AIList;
AIList.ChangeItem <- AIList.SetValue; AIList.ChangeItem <- AIList.SetValue;
AIRail.ERR_NONUNIFORM_STATIONS_DISABLED <- 0xFFFF;

View File

@@ -70,5 +70,3 @@ AIIndustry.IsCargoAccepted <- function(industry_id, cargo_id)
AIAbstractList <- AIList; AIAbstractList <- AIList;
AIList.ChangeItem <- AIList.SetValue; AIList.ChangeItem <- AIList.SetValue;
AIRail.ERR_NONUNIFORM_STATIONS_DISABLED <- 0xFFFF;

View File

@@ -15,6 +15,3 @@ regression =
[vehicle] [vehicle]
road_side = right road_side = right
plane_speed = 2 plane_speed = 2
[construction]
max_bridge_length = 100

View File

@@ -7108,7 +7108,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): true IsBuoyTile(): true
IsLockTile(): true IsLockTile(): true
IsCanalTile(): true IsCanalTile(): true
GetBankBalance(): 465257 GetBankBalance(): 461507
--AIWaypointList(BUOY)-- --AIWaypointList(BUOY)--
Count(): 1 Count(): 1
@@ -7127,7 +7127,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): false IsBuoyTile(): false
IsLockTile(): false IsLockTile(): false
IsCanalTile(): false IsCanalTile(): false
GetBankBalance(): 459862 GetBankBalance(): 456112
BuildWaterDepot(): true BuildWaterDepot(): true
BuildDock(): true BuildDock(): true

Binary file not shown.

View File

@@ -1,131 +1,3 @@
1.1.0-RC3 (2011-03-18)
------------------------------------------------------------------------
- Fix: New game settings were applied to early when starting a game via a heightmap. [FS#4557] (r22259)
- Fix: Do not resort town, industry and signs list directly in OnInvalidateData(). There might be a scheduled rebuild which needs execution first. So, only set a trigger for resorting [FS#4546] (r22249, r22248, r22247, r22246, r22245, r22244, r22243, r22242, r22241, r22236, r22228, r22227, r22226)
- Fix: [NewGRF] Object variable 0x48 was not available in callback 0x15C (r22231)
- Fix: Compilation when compiling with --disable-ai (r22222)
- Fix: When downloading a file via HTTP failed mid-way and OpenTTD fell back to the old system the partial downloaded amount would be counted twice [FS#4543] (r22208)
- Fix: The 'center' (for movement) of vehicles is (currently still) always at 4/8th original vehicle length from the front, so trains should stop at the same location regardless of the length of the front engine [FS#4545] (r22206)
- Fix: Make the base costs for building and demolishing NewObjects also local to the individual NewGRFs (r22204)
- Fix: Removing a station order could stop when removing first automatic order (r22200)
- Fix: Invalidate the object build window when using the date cheat (r22193)
1.1.0-RC2 (2011-03-04)
------------------------------------------------------------------------
- Fix: Following a vehicle with a very high VehicleID was impossible (r22181)
- Fix: [NewGRF] Memory leak if an industry NewGRF had more than one prop A or 15, or a station NewGRF had more than one prop 09 (r22175, r22165)
- Fix: [NewGRF] Disable a station NewGRF when it contains an unterminated spritelayout in action0 prop 08 instead of crashing (r22164)
- Fix: Building a station part adjacent to both an existing station and a rail waypoint failed [FS#4541] (r22163)
- Fix: No update of NewGRF window when unknown GRF name becomes available [FS#4533] (r22162)
- Fix: [NewGRF] Industry prop 0x11 is 4-bytes long, not 3 bytes (r22157)
- Fix: Stations/infrastructure were not properly sold on some clients during bankruptcy [FS#4529] (r22154)
- Fix: The Greek translation did not work as it breached the 200.000 bytes 'limit' for loading language files [FS#4536] (r22153)
- Fix: Windows video driver crashed when it could not go to full screen at the resolution of the configuration file when starting OpenTTD [FS#4521] (r22149)
- Fix: Do not run savegame conversion during SlNullPointers; the pointer might not be converted or be NULL at that point (r22146)
- Fix: Some valid keycodes were ignored along with the invalid ones (r22142)
- Fix: When commands need to invalidate windows, process these events asynchronously before the next redraw. Calling window code directly from command scope uses wrong _current_company and might issue nested DoCommands() which interfer with the running command [FS#4523] (r22141, r22140, r22135, r22134)
- Fix: [NewGRF] Skipping only the invalid part of an action14 failed, the rest of the action was skipped instead (r22138)
- Fix: Spectators had crashes when closing buoy windows (r22131)
- Fix: Build-station-window showed wrong selection when reopening [FS#4530] (r22128)
- Fix: Canals would get drawn as land in the smallmap when using the owner window (r22127)
- Fix: The animation-ness of two goldmine tiles were swapped, causing the wheeltower to not work properly, and the bottom corner to show the wrong sprite [FS#4528] (r22125)
- Fix: CommandQueue::Pop() did not update 'last'; popping the last item caused the queue to disconnect unless there was only one item [FS#4522] (r22123)
- Fix: When a NOT_REACHED in saveload can be reached due to an invalid savegame, use SlErrorCorrupt instead. In other words, do not crash but show an error message (r22122)
- Fix: In case of high frame_freq one could get commands executed after a new network game was started (r22121)
- Fix: [NoAI] Prevent AIs from getting consistently over their allowed amount of operations by subtracting the amount they went over 'budget' from the budget for the next 'tick' (r22120)
- Fix: The refit window was not correctly updated after selecting with Ctrl+Click [FS#4525] (r22118)
- Fix: CanRemoveRoadWithStop() failed for _current_company = OWNER_TOWN, and for OWNER_NONE-owned road (r22117)
1.1.0-RC1 (2011-02-18)
------------------------------------------------------------------------
- Feature: [NewGRF] Test all possible industry layouts during construction and prospecting [FS#4131] (r22012, r22010)
- Feature: Wheel scrolling in the console (r21982)
- Feature: Console command to reset the engine pool. It removes the traces of engines which are no longer associated to a NewGRF, and can be used to e.g. 'fix' scenarios which were screwed up by the author. You can only use it when there are no vehicles in the game though (r21975)
- Feature: Add a setting to enable/disable funding local road reconstruction (r21974)
- Feature: Introduce 'minimal' number of industries as a replacment for the old 'none' setting in the new game window (r21969)
- Change: When loading old savegames with long trains set the maximum train length to the length of the longest train (r22061)
- Change: Always report mammoth trains are disabled to NewGRFs, and allow the maximum train length to be modified in multiplayer as well [FS#4471] (r22004)
- Fix: Remove invalid keycodes when reading hotkeys.cfg [FS#4510] (r22094)
- Fix: The server list did not get sorted with one item in it, so the 'position in the list' variable was never updated causing problems when using the keyboard shortcuts for scrolling [FS#4514] (r22093)
- Fix: When deleting towns, only relocate objects during DC_EXEC (r22087)
- Fix: [Windows] If fullscreen fails with current resolution, use desktop resolution [FS#4489] (r22081)
- Fix: The owner view of the smallmap was not updated after a company colour change (r22079)
- Fix: Maximum train length interfered with wagon replacement when wagon removal was turned on [FS#4499] (r22078)
- Fix: NewGRFs with invalid multi-tile houses could cause a valid 1x1 house following it to be seen as multi-tile, causing crashes [FS#4501] (r22075)
- Fix: Immediately update the train weight when you change the multiplier for train cargo weight (r22073)
- Fix: Some hotkey names in hotkey.cfg for the scenario editor toolbar were completely bogus (r22071)
- Fix: Crashes when disconnecting after requesting the map [FS#4503] (r22070)
- Fix: Delete all savegame packets, not just the first one (r22069)
- Fix: Return 'connection lost' instead of 'okay' when SendPackets closed the connection, so we do not try to do anything else with the closed socket (r22068)
- Fix: Do not hold a mutex when sending packets and thus possibly closing the connection as that wants to acquire the mutex again (r22067)
- Fix: Verify we can allocate an Order, OrderList, CargoPacket, CargoPayment, and others before we actually try to do so (all corner cases) [FS#4468] (r22066, r22057, r22047, r22042, r22040, r22033, r22031, r22026, r22025, r22024, r22023, r22022)
- Fix: Crash when disconnecting and reconnecting while the server is still saving the savegame [FS#4497] (r22064)
- Fix: Memory leak when saving with LZMA or zlib fails mid-way (r22062)
- Fix: Make the send chat message window follow the position of the status bar (r22059)
- Fix: Metric and imperial HP are not the same. As imperial HP are used internally, set a conversion rate for metric HP [FS#4408] (r22056)
- Fix: [Squirrel] Some invalid squirrel code caused the squirrel compiler to crash [FS#4490] (r22055)
- Fix: The land area information window was not updated after a language change (r22053)
- Fix: Roads under road stops would get a wrong owner after overbuilding (r22051)
- Fix: In ancient savegames, e.g. TTO savegames, non primary vehicles (wagons and such) could have unitnumbers or even orders. However, these orders would not be updated when a station is removed. As such some savegames have wagons with current orders to invalid stations which triggers trouble in the load conversion. So, trash any orders/unitnumbers a non-primary vehicle has [FS#4496] (r22050)
- Fix: [NewGRF] Company 0 does not always exist, so put temporary vehicles in a valid company (r22048)
- Fix: Make sure order indices stay in range when copying, sharing, unsharing or deleting all orders [FS#4487] (r22046)
- Fix: Update the consist cache when a part of a train is flipped in the depot [FS#4493] (r22044)
- Fix: Invalidate the right windows when a part of a train is flipped in the depot (r22043)
- Fix: Tab completion in chat did not cycle through all possible options (r22038)
- Fix: Crash when watching the vehicle view of a vehicle that has multiple sequential nearest depot orders (or consists of a single nearest depot order) when there is no depot with index 0 [FS#4488] (r22034)
- Fix: The server list got not resorted/redrawn after NewGRFs were downloaded [FS#4482] (r22029)
- Fix: When paused and having the allowed actions while paused setting on 'no actions' cheating money would fail [FS#4479] (r22016)
- Fix: Only show one AI per unique ID instead of all versions in the output of 'openttd -h' (r22007)
- Fix: Smoke/sparks of trains would be shown under bridges, or rather through bridges [FS#4480] (r22006)
- Fix: When the difference between force and resistance is smaller than the mass(*4) there would be no acceleration anymore, even when at higher (or lower) speed the force and resistance balance out better [FS#4473] (r21997)
- Fix: [YAPF] Under some circumstances vehicles could be lost [FS#4472] (r21996)
- Fix: [NewGRF] Make computations of closest-land/water-distances handle waterish tiles more correctly (r21994)
- Fix: When building a lock on dry land costs for clearing water were deducted rather than for building canals (r21993)
- Fix: AIs trying to change the AIOF_GOTO_NEAREST_DEPOT flag for existing orders triggered an assert. Explicitly forbid this as precondition for SetOrderFlags [FS#4467] (r21992)
- Fix: The share/copy-orders-cursor was not updated to refer to the new vehicle when it got autoreplaced/-renewed [FS#4466] (r21991)
- Fix: Vehicle status bar glitches on speed changes (r21989)
- Fix: Scrolling of the console in pages used wrong line height and scrolled too much (r21979)
- Fix: Redraw the town authority window after modifying town authority settings (r21973)
- Fix: Crash when a multiplayer company goes bankrupt with 'you' in it [FS#4464] (r21970)
1.1.0-beta5 (2011-02-04)
------------------------------------------------------------------------
- Feature: GUI setting to disable reversing at signals (r21962)
- Feature: Not loading and not unloading is now possible (r21961)
- Change: [NewGRF] Disable the flipping of train engines/wagons in the depot by default for NewGRFs [FS#4462] (r21966)
- Change: Show the length of vehicles in tiles, instead of half tiles in the depot (r21960)
- Change: Replace longbridges settings with custom maximum bridge and tunnel length setting (r21959)
- Change: Randomize the vehicle a small UFO targets, do not use the one with lowest index (r21949)
- Fix: Do not count the number of vehicles but the length of vehicles to (configurably) limit train length [FS#4461] (r21960)
- Fix: [NewGRF] Reset the carry flag every 4 bytes in Action 6 when adding more than one variable (r21951)
- Fix: Road vehicle was moved under the bridge when it was destroyed by an UFO while on a bridge (r21948)
- Fix: Crash when converting a savegame with vehicles crashed in a tunnel entry, or with vehicles reversing there (r21947)
- Fix: Funny behaviour when a road vehicle reverses while overtaking, so abort the overtake attempt when reversing the road vehicle [FS#4447] (r21946)
- Fix: Not all vehicles should be tested to be inside a tunnel upon savegame load [FS#4460] (r21940)
- Fix: Do not remove existing road/tram bits when overbuilding stops of the opposite road type [FS#4457] (r21936)
- Fix: Allow to overbuild road stops which are built over trams (r21935)
- Fix: Automatic orders behave now stable wrt. service orders and are not added or removed depending on the need of servicing [FS#4440] (r21933)
- Fix: The town window would not be invalidated in the scenario editor if the ground changed and thus the required cargos for town growth [FS#4554] (r21929)
- Fix: Converting an expensive rail type to a cheap one could give more money than removing and rebuilding cost (r21919)
- Fix: Languages improperly sorted in the 'start server' window [FS#4443] (r21918)
- Fix: The minimum speed needed for (realistic) acceleration to work properly can sometimes be more than the (temporary) maximum speed causing Clamp to 'fail'. Make sure that the minimum speed always overrules the maximum speed [FS#4442] (r21916)
- Fix: Include the capacity of non-refittable vehicles in the refitted-capacity, if their cargo matches (r21904)
- Fix: Do not count articulated parts when passing the number of vehicles to refit to the command. That may exceed 8 bits (r21902)
- Fix: [NoAI] Hide automatic orders from AIs as they have no way of dealing with them (r21900)
- Fix: Do not show a vehicle selection in the RefitWindow for refit orders. You cannot select anything anyway (r21899)
- Fix: Using a pointer-iterator and adding things (thus reallocating) to the iterated array caused OpenTTD to crash on invalid pointers [FS#4438] (r21898)
- Fix: Only some scenarios from the main scenario folder and no heightmaps could be started in the 'start server' window [FS#4421] (r21892)
- Fix: Crash when scrolling outside of the main window (with some video backends) [FS#4434] (r21889)
- Fix: [NewGRF] String codes 0x80 and 0x81 were broken since the typechecking of string parameters [FS#4422] (r21885)
- Fix: When a train after reversing ended at the last bit of a bridge ramp and directed outside the bridge, it could still have track set to TRACK_BIT_WORMHOLE (r21880)
- Fix: When a single-vehicle train was reversed while on a slope, its GOINGUP/DOWN were not swapped (r21874)
- Remove: Settings for vehicle speed in the vehicle view, long date in status bar, drawing of bridge pillars, support for depot orders, time tabling and joining of stations upon building (r21958, r21957, r21956, r21955, r21954)
- Remove: The non-uniform stations setting; it has been broken for over a year, and thus not used [FS#4456] (r21953)
1.1.0-beta4 (2011-01-21) 1.1.0-beta4 (2011-01-21)
------------------------------------------------------------------------ ------------------------------------------------------------------------
- Feature: [NewGRF] Rail type property to influence sorting of rail types in the drop down list [FS#4394] (r21866) - Feature: [NewGRF] Rail type property to influence sorting of rail types in the drop down list [FS#4394] (r21866)

View File

@@ -6,13 +6,8 @@
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. # See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
log() { log() {
if [ $1 = "1" ]; then if [ $1 = "1" ]; then echo "$2"; fi
shift echo "$2" >> $config_log
echo "$@"
else
shift
fi
echo "$@" >> $config_log
} }
set_default() { set_default() {
@@ -460,7 +455,6 @@ detect_params() {
# Clean the logfile # Clean the logfile
echo "" > $config_log echo "" > $config_log
log 2 "Invocation: $0 $*"
} }
save_params() { save_params() {
@@ -537,7 +531,7 @@ check_params() {
check_build check_build
check_host check_host
# Check for universal builds; they only make sense for OSX, so fail if enabled for another OS # Check for universal builds; they only make sense for OSX, so fail if enabled for another OS
if [ "$enable_universal" = "0" ]; then if [ "$enable_universal" = "0" ]; then
log 1 "checking universal build... no" log 1 "checking universal build... no"
else else
@@ -2271,12 +2265,6 @@ detect_sdl() {
return 0 return 0
fi fi
if [ "$os" = "OSX" ]; then
log 1 "WARNING: sdl is known to fail on some versions of Mac OS X"
log 1 "WARNING: with some hardware configurations. Use at own risk!"
sleep 5
fi
if [ "$with_sdl" = "1" ] || [ "$with_sdl" = "" ] || [ "$with_sdl" = "2" ]; then if [ "$with_sdl" = "1" ] || [ "$with_sdl" = "" ] || [ "$with_sdl" = "2" ]; then
sdl_config="sdl-config" sdl_config="sdl-config"
else else

View File

@@ -1,5 +1,5 @@
Multiplayer manual for OpenTTD Multiplayer manual for OpenTTD
Last updated: 2011-02-16 Last updated: 2011-01-20
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -17,12 +17,6 @@ Table of contents
1.0) Starting a server 1.0) Starting a server
---- ----------------- ---- -----------------
- Make sure that you have your firewall of the computer as well as possible
routers or modems of the server configured such that:
* port 3979 is free for both UDP and TCP connections in- and outgoing
* port 3978 is free outbound for UDP in order to advertise with the master
server (if desired). Otherwise you'll have to tell players your IP.
* port 3977 if use of the admin interface is desired (see admin_network.txt)
- Click "multiplayer" on the startup screen - Click "multiplayer" on the startup screen
- Click "start server" - Click "start server"
- Type in a game name - Type in a game name
@@ -212,8 +206,7 @@ Table of contents
6.0) Troubleshooting 6.0) Troubleshooting
---- --------------- ---- ---------------
- My advertising server does not show up in list at servers.openttd.org - My advertising server does not show up in list at servers.openttd.org
Run openttd with the '-d net=2' parameter. That will show which incoming Run openttd with the '-d net=2' parameter, as this will show whether it
communication is received, whether the replies from the master server or receives replies from the master server. If it does not receive replies it
communication from an admin tool reach the programme. See section 1 is most likely that you need to configure your router to forward ports
'Starting a server' further up for the ports and protocols used by OpenTTD. 3979 (both TCP and UDP) to the computer that is hosting the game.
The ports can be configured in the config file.

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs OpenTTD's known bugs
Last updated: 2011-03-18 Last updated: 2011-01-21
Release version: 1.1.0-RC3 Release version: 1.1.0-beta4
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -39,7 +39,7 @@ officially supporting Mac OS X again. For now it remains unsupported and
we only apply bug fixes provided by the community but we are unable to fix we only apply bug fixes provided by the community but we are unable to fix
these bugs ourselves. these bugs ourselves.
- 4420 [OSX] OS' mouse pointer still shows - 3447 [OSX] SDL port is unuseable
- 2484 [OSX] Cannot enter CJK characters - 2484 [OSX] Cannot enter CJK characters
2.1) Known bugs that will not be solved 2.1) Known bugs that will not be solved
@@ -212,15 +212,6 @@ OpenTTD not properly resizing with SDL on X [FS#3305]
and GNOME's. With the XFCE's and LXDE's window managers the resize and GNOME's. With the XFCE's and LXDE's window managers the resize
event is sent when the user releases the mouse. event is sent when the user releases the mouse.
Incorrect colours, crashes upon exit, debug warnings and smears upon
window resizing with SDL on Mac OS X [FS#3447]
Video handling with (lib)SDL under Mac OS X is known to fail on some
versions of Mac OS X with some hardware configurations. Some of the
problems happen only under some circumstances whereas others are
always present.
We suggest that the SDL video/sound backend is not used for OpenTTD
in combinations with Mac OS X.
Train crashes entering same junction from block and path signals [FS#3928] Train crashes entering same junction from block and path signals [FS#3928]
When a train has reserved a path from a path signal to a two way When a train has reserved a path from a path signal to a two way
block signal and the reservation passes a path signal through the block signal and the reservation passes a path signal through the

View File

@@ -1,27 +1,3 @@
openttd (1.1.0~RC3) unstable; urgency=low
* New upstream release 1.1.0-RC3
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Mar 2011 22:00:00 +0100
openttd (1.1.0~RC2) unstable; urgency=low
* New upstream release 1.1.0-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Mar 2011 22:00:00 +0100
openttd (1.1.0~RC1) unstable; urgency=low
* New upstream release 1.1.0-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Feb 2011 22:00:00 +0100
openttd (1.1.0~beta5) unstable; urgency=low
* New upstream release 1.1.0-beta5
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Feb 2011 22:00:00 +0100
openttd (1.1.0~beta4) unstable; urgency=low openttd (1.1.0~beta4) unstable; urgency=low
* New upstream release 1.1.0-beta4 * New upstream release 1.1.0-beta4

View File

@@ -1,6 +1,6 @@
@echo off @echo off
set OPENTTD_VERSION=1.1.0-RC3 set OPENTTD_VERSION=1.1.0-beta4
set OPENSFX_VERSION=0.8.0 set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=0.7.0 set OPENGFX_VERSION=0.7.0

View File

@@ -1,6 +0,0 @@
# the man page is in the subpackage data
addFilter("openttd.*: W: no-manual-page-for-binary openttd")
# no other package depends on this package, so this should not matter
addFilter("openttd.*: W: file-contains-date-and-time /usr/bin/openttd")
addFilter("openttd.*: W: file-contains-current-date /usr/bin/openttd")

View File

@@ -1,100 +0,0 @@
-------------------------------------------------------------------
Sun Mar 6 09:36:55 UTC 2011 - ammler@openttdcoop.org
- upstream update 1.1.0-RC2
* Feature: XZ/LZMA2 savegame support. New default reduces
savegame size by 10 to 30% with slightly more CPU usage.
(requires xz-devel)
* Feature: Remote administration
* Feature: a lot improvements with GUI
* Feature: Customizable hotkeys
* Sources for openttd.grf are pngs (requires grfcodec >= 5.1)
-------------------------------------------------------------------
Sun Nov 21 11:11:38 UTC 2010 - ammler@openttdcoop.org
- upstream update 1.0.5
* Fix: Reading (very) recently freed memory [CVE-2010-4168]
-------------------------------------------------------------------
Sun Oct 31 17:53:41 UTC 2010 - ammler@openttdcoop.org
- upstream update 1.0.4
* build openttd.grf from source
-------------------------------------------------------------------
Tue Aug 10 20:16:03 UTC 2010 - ammler@openttdcoop.org
- upstream update 1.0.3
-------------------------------------------------------------------
Wed Jun 23 11:42:59 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
- upstream update 1.0.2
* Feature: Translated desktop shortcut comments (r19884)
* many minor Bugfixes
-------------------------------------------------------------------
Sat May 1 15:59:32 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
- upstream update 1.0.1
* Fix: Leaking a file descriptor
* Fix a lot small bugs, like minor desync issues on Mulitplayer
- no strip on make
-------------------------------------------------------------------
Thu Apr 1 08:53:54 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
- upstream update 1.0.0 (finally!)
* completely independend game but still working also
with ttd original gaphics, sounds and music
- Add: Recommends openmsx
- requires lzo2
-------------------------------------------------------------------
Fri Dec 18 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.4
- support for differen branches
- easy support for dedicated branch
- let openttd build system make the dektop file
- split the package to data and gui
- disable requires
-------------------------------------------------------------------
Thu Oct 01 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.3
- disable libicu for RHEL4
-------------------------------------------------------------------
Sat Sep 26 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.2
- no subfolder games for datadir
- cleanup: no post and postun anymore
- Recommends: opengfx (for suse and mandriva)
- add SUSE support
-------------------------------------------------------------------
Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Added libicu dependency
-------------------------------------------------------------------
Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Merged both versions of the spec file
-------------------------------------------------------------------
Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
- Rewrite spec file from scratch.
-------------------------------------------------------------------
Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Updated spec file
-------------------------------------------------------------------
Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
- Universal spec file

View File

@@ -1,199 +1,202 @@
%define dedicated 0 # $Id$
#-------------------------------------------------------------------------------
# spec file for the openttd rpm package
#
# Copyright (c) 2007-2011 The OpenTTD developers
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself
#
# Note: for (at least) CentOS '#' comments end '\' continue command on new line.
# So place all '#' commented parameters of e.g. configure to the end.
#
#-------------------------------------------------------------------------------
%define binname openttd Name: openttd
Version: 1.1.0
Release: 1%{?dist}
%define srcver 1.1.0 Group: Amusements/Games
License: GPLv2
URL: http://www.openttd.org
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
%if %{dedicated} Source: %{name}-%{version}-source.tar.bz2
Name: %{binname}-dedicated
%else
Name: %{binname}
%endif
Version: %{srcver}
Release: 1%{?dist}
Group: Amusements/Games/Strategy/Other
License: GPLv2
URL: http://www.openttd.org
Summary: An open source clone of Chris Sawyer's Transport Tycoon Deluxe
Source: openttd%{?branch:-%{branch}}-%{srcver}-source.tar.bz2
# the main package works with the exact same data package version only
Requires: %{binname}-data = %{version}
BuildRequires: gcc-c++
BuildRequires: libpng-devel
BuildRequires: zlib-devel
%if 0%{?mdkversion}
BuildRequires: liblzo-devel
BuildRequires: liblzma-devel
%else
BuildRequires: lzo-devel
BuildRequires: xz-devel
%endif
#needed by libdrm
%if 0%{?rhel_version} >= 600
BuildRequires: kernel
%endif
# for lzma detection
%if 0%{?suse_version}
BuildRequires: pkg-config
%endif
# Desktop specific tags, not needed for dedicated
%if !%{dedicated}
BuildRequires: fontconfig-devel
BuildRequires: SDL-devel
BuildRequires: grfcodec
Requires: fontconfig
Requires: SDL
Requires: zlib
Requires: xz-devel
BuildRequires: gcc-c++
BuildRequires: fontconfig-devel
BuildRequires: libpng-devel
BuildRequires: libicu-devel
BuildRequires: SDL-devel
BuildRequires: zlib-devel
# vendor specific dependencies # vendor specific dependencies
%if !0%{?rhel_version} %if %{_vendor}=="alt"
BuildRequires: libicu-devel Requires: freetype
%endif BuildRequires: freetype-devel
%if 0%{?rhel_version} || 0%{?fedora} %endif
BuildRequires: freetype-devel %if %{_vendor}=="redhat" || %{_vendor}=="fedora"
%endif Requires: freetype
%if 0%{?suse_version} || 0%{?mdkversion} BuildRequires: freetype-devel
BuildRequires: freetype2-devel BuildRequires: desktop-file-utils
%endif %endif
%if 0%{?suse_version} %if %{_vendor}=="suse" || %{_vendor}=="mandriva"
BuildRequires: update-desktop-files Requires: freetype2
%endif BuildRequires: freetype2-devel
%endif
%if %{_vendor}=="suse"
BuildRequires: update-desktop-files
%endif %endif
%if %{dedicated}
Conflicts: %{binname} %{binname}-gui
%else
Provides: %{binname}-gui
Conflicts: %{binname}-dedicated
Requires: openttd-opensfx
# recommends works for suse (not sles9) and mandriva, only # recommends works for suse (not sles9) and mandriva, only
%if 0%{?suse_version} || 0%{?mdkversion} %if 0%{?suse_version} > 910 || %{_vendor}=="mandriva"
# require timidity is part of openmsx Recommends: opengfx
Recommends: openttd-openmsx # for 0.8.0
%endif #Recommends: opensfx
%endif %endif
# Recommends would fit better but not well supported...
Requires: openttd-opengfx >= 0.3.2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
%description %description
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe" OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
with lots of new features and enhancements. To play the game you need either with lots of new features and enhancements. To play the game you need either
the original data from the game or install the recommend subackages OpenGFX for the original data from the game or install the recommend package OpenGFX.
free graphics, OpenSFX for free sounds and OpenMSX for free music.
OpenTTD is licensed under the GNU General Public License version 2.0. For more OpenTTD is licensed under the GNU General Public License version 2.0. For more
information, see the file 'COPYING' included with every release and source information, see the file 'COPYING' included with every release and source
download of the game. download of the game.
# the subpackage data needs only to build once, the dedicated version
# can reuse the data package of the gui package
%if !%{dedicated}
%package data
Summary: Data package for OpenTTD
Group: Amusements/Games/Strategy/Other
%if 0%{?suse_version} >= 1120 || 0%{?fedora} || 0%{?mdkversion}
BuildArch: noarch
%endif
BuildRequires: grfcodec
%description data
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
with lots of new features and enhancements. To play the game you need either
the original data from the game or the required package OpenGFX and OpenSFX.
This package is required by openttd gui and openttd dedicated package. This
way it is possible to install a openttd version without SDL requirement.
%endif
%prep %prep
%setup -qn openttd%{?branch:-%{branch}}-%{srcver} %setup -q
# we build the grfs from sources but validate the result with the existing data
md5sum bin/data/* > validate.data
%build %build
# suse sle <10 has no support for makedepend
%if 0%{?sles_version} == 9 || 0%{?sles_version} == 10
%define do_makedepend 0
%else
%define do_makedepend 1
%endif
./configure \ ./configure \
--prefix-dir="%{_prefix}" \ --prefix-dir="%{_prefix}" \
--binary-name="%{binname}" \ --binary-name="%{name}" \
--binary-dir="bin" \ --enable-strip \
--data-dir="share/%{binname}" \ --binary-dir="bin" \
--doc-dir="share/doc/%{binname}" \ --data-dir="share/%{name}" \
--menu-name="OpenTTD%{?branch: %{branch}}" \ --with-makedepend="%{do_makedepend}" \
--menu-group="Game;StrategyGame;" \ # --revision="%{ver}%{?prever:-%{prever}}" \
--enable-dedicated="%{dedicated}" \ # --enable-debug=0 \
# --with-sdl \
# --with-zlib \
# --with-png \
# --with-freetype \
# --with-fontconfig \
# --with-icu \
# --menu_group="Game;" \
# --menu-name="OpenTTD" \
# --doc-dir="share\doc\%{name}" \
# --icon-dir="share/pixmaps" \
# --icon-theme-dir="share/icons/hicolor" \
# --man-dir="share/man/man6" \
# --menu-dir="share/applications"
make %{?_smp_mflags} make %{?_smp_mflags}
%install %install
%if %{dedicated}
# dedicated package needs binary only
install -D -m0755 bin/openttd %{buildroot}/%{_bindir}/%{binname}
%else
make install INSTALL_DIR="%{buildroot}" make install INSTALL_DIR="%{buildroot}"
%if 0%{?suse_version}
%suse_update_desktop_file -r %{binname} Game StrategyGame # Validate menu entrys (vendor specific)
%endif %if %{_vendor} == "redhat" || %{_vendor}=="fedora"
desktop-file-install \
--vendor="%{_vendor}" \
--remove-key Version \
--dir="%{buildroot}/%{_datadir}/applications/" \
"%{buildroot}/%{_datadir}/applications/%{name}.desktop" \
# --delete-original
%endif
%if %{_vendor}=="suse"
%__cat > %{name}.desktop << EOF
[Desktop Entry]
Encoding=UTF-8
Name=OpenTTD
Comment=OpenTTD - A clone of the Microprose game 'Transport Tycoon Deluxe'
GenericName=OpenTTD
Type=Application
Terminal=false
Exec=%{name}
Icon=%{name}
Categories=Game;StrategyGame;
EOF
%suse_update_desktop_file -i %{name} Game StrategyGame
%endif %endif
%clean %clean
rm -rf "%{buildroot}" #rm -rf "%{buildroot}"
%check %post
md5sum -c validate.data # Update the icon cache (vendor specific)
%if %{_vendor}=="mandriva"
%files %update_icon_cache hicolor
%attr(755, root, root) %{_bindir}/%{binname}
# all other files are for the gui version only, also no
# subpackage needed for the dedicated version
%if !%{dedicated}
%defattr(-, root, root)
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/16x16
%dir %{_datadir}/icons/hicolor/16x16/apps
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor/32x32/apps
%dir %{_datadir}/icons/hicolor/48x48
%dir %{_datadir}/icons/hicolor/48x48/apps
%dir %{_datadir}/icons/hicolor/64x64
%dir %{_datadir}/icons/hicolor/64x64/apps
%dir %{_datadir}/icons/hicolor/128x128
%dir %{_datadir}/icons/hicolor/128x128/apps
%dir %{_datadir}/icons/hicolor/256x256
%dir %{_datadir}/icons/hicolor/256x256/apps
%{_datadir}/applications/%{binname}.desktop
%{_datadir}/icons/hicolor/16x16/apps/%{binname}.png
%{_datadir}/icons/hicolor/32x32/apps/%{binname}.png
%{_datadir}/icons/hicolor/48x48/apps/%{binname}.png
%{_datadir}/icons/hicolor/64x64/apps/%{binname}.png
%{_datadir}/icons/hicolor/128x128/apps/%{binname}.png
%{_datadir}/icons/hicolor/256x256/apps/%{binname}.png
%{_datadir}/pixmaps/%{binname}.32.xpm
%files data
%defattr(-, root, root)
%dir %{_datadir}/doc/%{binname}
%dir %{_datadir}/%{binname}
%dir %{_datadir}/%{binname}/lang
%dir %{_datadir}/%{binname}/data
%dir %{_datadir}/%{binname}/gm
%dir %{_datadir}/%{binname}/scripts
%dir %{_datadir}/%{binname}/ai
%{_datadir}/doc/%{binname}/*
%{_datadir}/%{binname}/lang/*
%{_datadir}/%{binname}/data/*
%{_datadir}/%{binname}/scripts/*
%{_datadir}/%{binname}/ai/*
%{_datadir}/%{binname}/gm/*
%doc %{_mandir}/man6/%{binname}.6.*
%endif %endif
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%endif
%postun
# Update the icon cache (vendor specific)
%if %{_vendor}=="mandriva"
%update_icon_cache hicolor
%endif
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%endif
%files
%defattr(-, root, games, -)
%dir %{_datadir}/doc/%{name}
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/lang
%dir %{_datadir}/%{name}/data
%dir %{_datadir}/%{name}/gm
%dir %{_datadir}/%{name}/scripts
%attr(755, root, games) %{_bindir}/%{name}
%{_datadir}/doc/%{name}/*
%{_datadir}/%{name}/lang/*
%{_datadir}/%{name}/data/*
%{_datadir}/%{name}/scripts/*
%{_datadir}/applications/*%{name}.desktop
%{_datadir}/pixmaps/*
%{_datadir}/icons/*
%doc %{_mandir}/man6/%{name}.6.*
%changelog %changelog
* Sat Sep 26 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.2
- no subfolder games for datadir
- cleanup: no post and postun anymore
- Recommends: opengfx (for suse and mandriva)
- add SUSE support
* Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Added libicu dependency
* Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Merged both versions of the spec file
* Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
- Rewrite spec file from scratch.
* Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
- Updated spec file
* Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
- Universal spec file

View File

@@ -2,8 +2,8 @@
!define APPV_MAJOR 1 !define APPV_MAJOR 1
!define APPV_MINOR 1 !define APPV_MINOR 1
!define APPV_MAINT 0 !define APPV_MAINT 0
!define APPV_BUILD 7 !define APPV_BUILD 3
!define APPV_EXTRA "-RC3" !define APPV_EXTRA "-beta4"
!define APPNAME "OpenTTD" ; Define application name !define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version !define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version

View File

@@ -388,7 +388,6 @@
<ClInclude Include="..\src\cargotype.h" /> <ClInclude Include="..\src\cargotype.h" />
<ClInclude Include="..\src\cheat_func.h" /> <ClInclude Include="..\src\cheat_func.h" />
<ClInclude Include="..\src\cheat_type.h" /> <ClInclude Include="..\src\cheat_type.h" />
<ClInclude Include="..\src\clear_func.h" />
<ClInclude Include="..\src\cmd_helper.h" /> <ClInclude Include="..\src\cmd_helper.h" />
<ClInclude Include="..\src\command_func.h" /> <ClInclude Include="..\src\command_func.h" />
<ClInclude Include="..\src\command_type.h" /> <ClInclude Include="..\src\command_type.h" />
@@ -430,6 +429,7 @@
<ClInclude Include="..\src\fileio_type.h" /> <ClInclude Include="..\src\fileio_type.h" />
<ClInclude Include="..\src\fios.h" /> <ClInclude Include="..\src\fios.h" />
<ClInclude Include="..\src\fontcache.h" /> <ClInclude Include="..\src\fontcache.h" />
<ClInclude Include="..\src\functions.h" />
<ClInclude Include="..\src\gamelog.h" /> <ClInclude Include="..\src\gamelog.h" />
<ClInclude Include="..\src\gamelog_internal.h" /> <ClInclude Include="..\src\gamelog_internal.h" />
<ClInclude Include="..\src\genworld.h" /> <ClInclude Include="..\src\genworld.h" />

View File

@@ -384,9 +384,6 @@
<ClInclude Include="..\src\cheat_type.h"> <ClInclude Include="..\src\cheat_type.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\clear_func.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\cmd_helper.h"> <ClInclude Include="..\src\cmd_helper.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@@ -510,6 +507,9 @@
<ClInclude Include="..\src\fontcache.h"> <ClInclude Include="..\src\fontcache.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\functions.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\gamelog.h"> <ClInclude Include="..\src\gamelog.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>

View File

@@ -826,10 +826,6 @@
RelativePath=".\..\src\cheat_type.h" RelativePath=".\..\src\cheat_type.h"
> >
</File> </File>
<File
RelativePath=".\..\src\clear_func.h"
>
</File>
<File <File
RelativePath=".\..\src\cmd_helper.h" RelativePath=".\..\src\cmd_helper.h"
> >
@@ -994,6 +990,10 @@
RelativePath=".\..\src\fontcache.h" RelativePath=".\..\src\fontcache.h"
> >
</File> </File>
<File
RelativePath=".\..\src\functions.h"
>
</File>
<File <File
RelativePath=".\..\src\gamelog.h" RelativePath=".\..\src\gamelog.h"
> >

View File

@@ -823,10 +823,6 @@
RelativePath=".\..\src\cheat_type.h" RelativePath=".\..\src\cheat_type.h"
> >
</File> </File>
<File
RelativePath=".\..\src\clear_func.h"
>
</File>
<File <File
RelativePath=".\..\src\cmd_helper.h" RelativePath=".\..\src\cmd_helper.h"
> >
@@ -991,6 +987,10 @@
RelativePath=".\..\src\fontcache.h" RelativePath=".\..\src\fontcache.h"
> >
</File> </File>
<File
RelativePath=".\..\src\functions.h"
>
</File>
<File <File
RelativePath=".\..\src\gamelog.h" RelativePath=".\..\src\gamelog.h"
> >

View File

@@ -1,6 +1,6 @@
OpenTTD readme OpenTTD readme
Last updated: 2011-03-18 Last updated: 2011-01-21
Release version: 1.1.0-RC3 Release version: 1.1.0-beta4
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -534,9 +534,9 @@ look at http://wiki.openttd.org/index.php/Command_line.
The most frequent problem is missing data files. Please install OpenGFX and The most frequent problem is missing data files. Please install OpenGFX and
possibly OpenSFX and OpenMSX. See section 4.1.1 for more information. possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
Under certain circumstance, especially on Ubuntu OpenTTD can be extremely slow Under, especially, Ubuntu OpenTTD can be extremely slow and freeze/hand under
and/or freeze. See known-bugs.txt for more information and how to solve this certain circumstance. See known-bugs.txt for more information and how to
problem on your computer. solve this problem on your computer.
Under Windows 98 and lower it is impossible to use a dedicated server; it will Under Windows 98 and lower it is impossible to use a dedicated server; it will
fail to start. Perhaps this is for the better because those OSes are not known fail to start. Perhaps this is for the better because those OSes are not known

View File

@@ -121,7 +121,6 @@ cargopacket.h
cargotype.h cargotype.h
cheat_func.h cheat_func.h
cheat_type.h cheat_type.h
clear_func.h
cmd_helper.h cmd_helper.h
command_func.h command_func.h
command_type.h command_type.h
@@ -163,6 +162,7 @@ fileio_func.h
fileio_type.h fileio_type.h
fios.h fios.h
fontcache.h fontcache.h
functions.h
gamelog.h gamelog.h
gamelog_internal.h gamelog_internal.h
genworld.h genworld.h

View File

@@ -597,7 +597,6 @@ public:
} }
SQInteger Factor() SQInteger Factor()
{ {
_exst._deref = DEREF_NO_DEREF;
switch(_token) switch(_token)
{ {
case TK_STRING_LITERAL: { case TK_STRING_LITERAL: {

View File

@@ -125,7 +125,7 @@ public:
static int GetStartNextTime(); static int GetStartNextTime();
/** Wrapper function for AIScanner::GetAIConsoleList */ /** Wrapper function for AIScanner::GetAIConsoleList */
static char *GetConsoleList(char *p, const char *last, bool newest_only = false); static char *GetConsoleList(char *p, const char *last);
/** Wrapper function for AIScanner::GetAIConsoleLibraryList */ /** Wrapper function for AIScanner::GetAIConsoleLibraryList */
static char *GetConsoleLibraryList(char *p, const char *last); static char *GetConsoleLibraryList(char *p, const char *last);
/** Wrapper function for AIScanner::GetAIInfoList */ /** Wrapper function for AIScanner::GetAIInfoList */
@@ -168,7 +168,7 @@ public:
static void GameLoop() {} static void GameLoop() {}
static bool HasAI(const struct ContentInfo *ci, bool md5sum) { return false; } static bool HasAI(const struct ContentInfo *ci, bool md5sum) { return false; }
static void Rescan() {} static void Rescan() {}
static char *GetConsoleList(char *p, const char *last, bool newest_only = false) { return p; } static char *GetConsoleList(char *p, const char *last) { return p; }
static void nop() { } static void nop() { }
}; };

View File

@@ -10,6 +10,7 @@
/** @file ai_config.cpp Implementation of AIConfig. */ /** @file ai_config.cpp Implementation of AIConfig. */
#include "../stdafx.h" #include "../stdafx.h"
#include "../openttd.h"
#include "../settings_type.h" #include "../settings_type.h"
#include "../core/random_func.hpp" #include "../core/random_func.hpp"
#include "ai.hpp" #include "ai.hpp"

View File

@@ -289,9 +289,9 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
return DAYS_IN_YEAR; return DAYS_IN_YEAR;
} }
/* static */ char *AI::GetConsoleList(char *p, const char *last, bool newest_only) /* static */ char *AI::GetConsoleList(char *p, const char *last)
{ {
return AI::ai_scanner->GetAIConsoleList(p, last, newest_only); return AI::ai_scanner->GetAIConsoleList(p, last);
} }
/* static */ char *AI::GetConsoleLibraryList(char *p, const char *last) /* static */ char *AI::GetConsoleLibraryList(char *p, const char *last)

View File

@@ -10,6 +10,7 @@
/** @file ai_gui.cpp Window for configuring the AIs */ /** @file ai_gui.cpp Window for configuring the AIs */
#include "../stdafx.h" #include "../stdafx.h"
#include "../openttd.h"
#include "../table/sprites.h" #include "../table/sprites.h"
#include "../gui.h" #include "../gui.h"
#include "../querystring_gui.h" #include "../querystring_gui.h"
@@ -182,20 +183,13 @@ struct AIListWindow : public Window {
nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START); nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
} }
/** virtual void OnInvalidateData(int data)
* Some data on this window has become invalid.
* @param data Information about the changed data.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{ {
if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) { if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) {
delete this; delete this;
return; return;
} }
if (!gui_scope) return;
this->vscroll->SetCount((int)this->ai_info_list->size() + 1); this->vscroll->SetCount((int)this->ai_info_list->size() + 1);
/* selected goes from -1 .. length of ai list - 1. */ /* selected goes from -1 .. length of ai list - 1. */
@@ -444,12 +438,7 @@ struct AISettingsWindow : public Window {
} }
} }
/** virtual void OnInvalidateData(int data)
* Some data on this window has become invalid.
* @param data Information about the changed data.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{ {
if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) delete this; if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) delete this;
} }
@@ -704,19 +693,12 @@ struct AIConfigWindow : public Window {
} }
} }
/** virtual void OnInvalidateData(int data)
* Some data on this window has become invalid.
* @param data Information about the changed data.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{ {
if (!IsEditable(this->selected_slot)) { if (!IsEditable(this->selected_slot)) {
this->selected_slot = INVALID_COMPANY; this->selected_slot = INVALID_COMPANY;
} }
if (!gui_scope) return;
this->SetWidgetDisabledState(AIC_WIDGET_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0); this->SetWidgetDisabledState(AIC_WIDGET_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0);
this->SetWidgetDisabledState(AIC_WIDGET_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1); this->SetWidgetDisabledState(AIC_WIDGET_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
this->SetWidgetDisabledState(AIC_WIDGET_CHANGE, this->selected_slot == INVALID_COMPANY); this->SetWidgetDisabledState(AIC_WIDGET_CHANGE, this->selected_slot == INVALID_COMPANY);
@@ -1051,16 +1033,11 @@ struct AIDebugWindow : public QueryStringBaseWindow {
return state; return state;
} }
/** virtual void OnInvalidateData(int data = 0)
* Some data on this window has become invalid.
* @param data Information about the changed data.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{ {
if (data == -1 || ai_debug_company == data) this->SetDirty(); if (data == -1 || ai_debug_company == data) this->SetDirty();
if (gui_scope && data == -2) { if (data == -2) {
/* The continue button should be disabled when the game is unpaused and /* The continue button should be disabled when the game is unpaused and
* it was previously paused by the break string ( = a line in the log * it was previously paused by the break string ( = a line in the log
* was highlighted )*/ * was highlighted )*/
@@ -1072,9 +1049,8 @@ struct AIDebugWindow : public QueryStringBaseWindow {
} }
} }
/* If the log message is related to the active company tab, check the break string. /* If the log message is related to the active company tab, check the break string */
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */ if (data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
/* Get the log instance of the active company */ /* Get the log instance of the active company */
Backup<CompanyByte> cur_company(_current_company, ai_debug_company, FILE_LINE); Backup<CompanyByte> cur_company(_current_company, ai_debug_company, FILE_LINE);
AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer(); AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer();

View File

@@ -15,6 +15,7 @@
#include "ai_info.hpp" #include "ai_info.hpp"
#include "ai_scanner.hpp" #include "ai_scanner.hpp"
#include "../settings_type.h" #include "../settings_type.h"
#include "../openttd.h"
#include "../debug.h" #include "../debug.h"
#include "../rev.h" #include "../rev.h"

View File

@@ -74,7 +74,6 @@
#include "api/ai_waypointlist.hpp.sq" #include "api/ai_waypointlist.hpp.sq"
#include "../company_base.h" #include "../company_base.h"
#include "../company_func.h"
#include "../fileio_func.h" #include "../fileio_func.h"
/** The maximum number of operations for saving or loading the data of an AI. */ /** The maximum number of operations for saving or loading the data of an AI. */

View File

@@ -330,12 +330,11 @@ AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam, bool force_
return info; return info;
} }
char *AIScanner::GetAIConsoleList(char *p, const char *last, bool newest_only) const char *AIScanner::GetAIConsoleList(char *p, const char *last) const
{ {
p += seprintf(p, last, "List of AIs:\n"); p += seprintf(p, last, "List of AIs:\n");
const AIInfoList &list = newest_only ? this->info_single_list : this->info_list; AIInfoList::const_iterator it = this->info_list.begin();
AIInfoList::const_iterator it = list.begin(); for (; it != this->info_list.end(); it++) {
for (; it != list.end(); it++) {
AIInfo *i = (*it).second; AIInfo *i = (*it).second;
p += seprintf(p, last, "%10s (v%d): %s\n", i->GetName(), i->GetVersion(), i->GetDescription()); p += seprintf(p, last, "%10s (v%d): %s\n", i->GetName(), i->GetVersion(), i->GetDescription());
} }

View File

@@ -12,8 +12,11 @@
#ifndef AI_SCANNER_HPP #ifndef AI_SCANNER_HPP
#define AI_SCANNER_HPP #define AI_SCANNER_HPP
#include <squirrel.h>
#include "../script/script_scanner.hpp" #include "../script/script_scanner.hpp"
#include "../core/string_compare_type.hpp"
#include "ai.hpp" #include "ai.hpp"
#include <map>
/** /**
* Class that scans for available AIs. * Class that scans for available AIs.
@@ -53,7 +56,7 @@ public:
/** /**
* Get the list of available AIs for the console. * Get the list of available AIs for the console.
*/ */
char *GetAIConsoleList(char *p, const char *last, bool newest_only) const; char *GetAIConsoleList(char *p, const char *last) const;
/** /**
* Get the list of available AI Libraries for the console. * Get the list of available AI Libraries for the console.

View File

@@ -12,7 +12,12 @@
#ifndef AI_STORAGE_HPP #ifndef AI_STORAGE_HPP
#define AI_STORAGE_HPP #define AI_STORAGE_HPP
#include "../command_func.h"
#include "../map_func.h"
#include "../network/network.h"
#include "../company_func.h"
#include "../signs_func.h" #include "../signs_func.h"
#include "../tunnelbridge.h"
#include "../vehicle_func.h" #include "../vehicle_func.h"
#include "../road_type.h" #include "../road_type.h"
#include "../group.h" #include "../group.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_accounting.cpp Implementation of AIAccounting. */ /** @file ai_accounting.cpp Implementation of AIAccounting. */
#include "../../stdafx.h"
#include "ai_accounting.hpp" #include "ai_accounting.hpp"
Money AIAccounting::GetCosts() Money AIAccounting::GetCosts()

View File

@@ -9,7 +9,6 @@
/** @file ai_airport.cpp Implementation of AIAirport. */ /** @file ai_airport.cpp Implementation of AIAirport. */
#include "../../stdafx.h"
#include "ai_airport.hpp" #include "ai_airport.hpp"
#include "ai_station.hpp" #include "ai_station.hpp"
#include "../../station_base.h" #include "../../station_base.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_base.cpp Implementation of AIBase. */ /** @file ai_base.cpp Implementation of AIBase. */
#include "../../stdafx.h"
#include "ai_base.hpp" #include "ai_base.hpp"
#include "../../network/network.h" #include "../../network/network.h"
#include "../../core/random_func.hpp" #include "../../core/random_func.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_basestation.cpp Implementation of AIBaseStation. */ /** @file ai_basestation.cpp Implementation of AIBaseStation. */
#include "../../stdafx.h"
#include "ai_basestation.hpp" #include "ai_basestation.hpp"
#include "../../station_base.h" #include "../../station_base.h"
#include "../../string_func.h" #include "../../string_func.h"

View File

@@ -12,6 +12,7 @@
#ifndef AI_BASESTATION_HPP #ifndef AI_BASESTATION_HPP
#define AI_BASESTATION_HPP #define AI_BASESTATION_HPP
#include "ai_object.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_bridge.cpp Implementation of AIBridge. */ /** @file ai_bridge.cpp Implementation of AIBridge. */
#include "../../stdafx.h"
#include "ai_bridge.hpp" #include "ai_bridge.hpp"
#include "ai_rail.hpp" #include "ai_rail.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"
@@ -152,7 +151,9 @@ static void _DoCommandReturnBuildBridge1(class AIInstance *instance)
{ {
if (!IsValidBridge(bridge_id)) return -1; if (!IsValidBridge(bridge_id)) return -1;
return min(::GetBridgeSpec(bridge_id)->max_length, _settings_game.construction.max_bridge_length) + 2; uint max = ::GetBridgeSpec(bridge_id)->max_length;
if (max >= MAX_BRIDGE_LENGTH && _settings_game.construction.longbridges) max = MAX_BRIDGE_LENGTH_LONGBRIDGES;
return max + 2;
} }
/* static */ int32 AIBridge::GetMinLength(BridgeID bridge_id) /* static */ int32 AIBridge::GetMinLength(BridgeID bridge_id)

View File

@@ -12,7 +12,9 @@
#ifndef AI_BRIDGE_HPP #ifndef AI_BRIDGE_HPP
#define AI_BRIDGE_HPP #define AI_BRIDGE_HPP
#include "ai_object.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
#include "ai_error.hpp"
/** /**
* Class that handles all bridge related functions. * Class that handles all bridge related functions.

View File

@@ -9,7 +9,6 @@
/** @file ai_bridgelist.cpp Implementation of AIBridgeList and friends. */ /** @file ai_bridgelist.cpp Implementation of AIBridgeList and friends. */
#include "../../stdafx.h"
#include "ai_bridgelist.hpp" #include "ai_bridgelist.hpp"
#include "ai_bridge.hpp" #include "ai_bridge.hpp"
#include "../../bridge.h" #include "../../bridge.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_cargo.cpp Implementation of AICargo. */ /** @file ai_cargo.cpp Implementation of AICargo. */
#include "../../stdafx.h"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"
#include "../../cargotype.h" #include "../../cargotype.h"
#include "../../economy_func.h" #include "../../economy_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_cargolist.cpp Implementation of AICargoList and friends. */ /** @file ai_cargolist.cpp Implementation of AICargoList and friends. */
#include "../../stdafx.h"
#include "ai_cargolist.hpp" #include "ai_cargolist.hpp"
#include "ai_industry.hpp" #include "ai_industry.hpp"
#include "../../cargotype.h" #include "../../cargotype.h"

View File

@@ -17,6 +17,8 @@
* *
* \b 1.1.0 * \b 1.1.0
* *
* 1.1.0 is not yet released. The following changes are not set in stone yet.
*
* API additions: * API additions:
* \li IsEnd for all lists. * \li IsEnd for all lists.
* \li AIEventTownFounded * \li AIEventTownFounded
@@ -31,7 +33,6 @@
* \li HasNext for all lists. * \li HasNext for all lists.
* \li AIAbstractList, use AIList instead. * \li AIAbstractList, use AIList instead.
* \li AIList::ChangeItem, use AIList::SetValue instead. * \li AIList::ChangeItem, use AIList::SetValue instead.
* \li AIRail::ERR_NONUNIFORM_STATIONS_DISABLED, that error is never returned anymore.
* *
* Other changes: * Other changes:
* \li AIEngine::GetMaxTractiveEffort can be used for road vehicles. * \li AIEngine::GetMaxTractiveEffort can be used for road vehicles.

View File

@@ -9,7 +9,6 @@
/** @file ai_company.cpp Implementation of AICompany. */ /** @file ai_company.cpp Implementation of AICompany. */
#include "../../stdafx.h"
#include "ai_company.hpp" #include "ai_company.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
#include "../../command_func.h" #include "../../command_func.h"

View File

@@ -12,10 +12,10 @@
#include "../../stdafx.h" #include "../../stdafx.h"
#include "../../string_func.h" #include "../../string_func.h"
#include "../../company_base.h" #include "../../company_base.h"
#include "../../company_func.h"
#include "../../rev.h" #include "../../rev.h"
#include "ai_controller.hpp" #include "ai_controller.hpp"
#include "../ai_storage.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"
#include "../ai_config.hpp" #include "../ai_config.hpp"
#include "ai_log.hpp" #include "ai_log.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_date.cpp Implementation of AIDate. */ /** @file ai_date.cpp Implementation of AIDate. */
#include "../../stdafx.h"
#include "ai_date.hpp" #include "ai_date.hpp"
#include "../../date_func.h" #include "../../date_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_depotlist.cpp Implementation of AIDepotList and friends. */ /** @file ai_depotlist.cpp Implementation of AIDepotList and friends. */
#include "../../stdafx.h"
#include "ai_depotlist.hpp" #include "ai_depotlist.hpp"
#include "../../company_func.h" #include "../../company_func.h"
#include "../../depot_base.h" #include "../../depot_base.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_engine.cpp Implementation of AIEngine. */ /** @file ai_engine.cpp Implementation of AIEngine. */
#include "../../stdafx.h"
#include "ai_engine.hpp" #include "ai_engine.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -12,7 +12,9 @@
#ifndef AI_ENGINE_HPP #ifndef AI_ENGINE_HPP
#define AI_ENGINE_HPP #define AI_ENGINE_HPP
#include "ai_object.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
#include "ai_road.hpp"
#include "ai_rail.hpp" #include "ai_rail.hpp"
#include "ai_airport.hpp" #include "ai_airport.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_enginelist.cpp Implementation of AIEngineList and friends. */ /** @file ai_enginelist.cpp Implementation of AIEngineList and friends. */
#include "../../stdafx.h"
#include "ai_enginelist.hpp" #include "ai_enginelist.hpp"
#include "../../company_func.h" #include "../../company_func.h"
#include "../../engine_base.h" #include "../../engine_base.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_error.cpp Implementation of AIError. */ /** @file ai_error.cpp Implementation of AIError. */
#include "../../stdafx.h"
#include "ai_error.hpp" #include "ai_error.hpp"
#include "../../core/bitmath_func.hpp" #include "../../core/bitmath_func.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_event.cpp Implementation of AIEvent. */ /** @file ai_event.cpp Implementation of AIEvent. */
#include "../../stdafx.h"
#include "ai_event_types.hpp" #include "ai_event_types.hpp"
#include <queue> #include <queue>

View File

@@ -9,7 +9,6 @@
/** @file ai_event_types.cpp Implementation of all EventTypes. */ /** @file ai_event_types.cpp Implementation of all EventTypes. */
#include "../../stdafx.h"
#include "ai_event_types.hpp" #include "ai_event_types.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
#include "../../command_type.h" #include "../../command_type.h"
@@ -19,15 +18,8 @@
#include "../../articulated_vehicles.h" #include "../../articulated_vehicles.h"
#include "table/strings.h" #include "table/strings.h"
bool AIEventEnginePreview::IsEngineValid() const
{
const Engine *e = ::Engine::GetIfValid(this->engine);
return e != NULL && e->IsEnabled();
}
char *AIEventEnginePreview::GetName() char *AIEventEnginePreview::GetName()
{ {
if (!this->IsEngineValid()) return NULL;
static const int len = 64; static const int len = 64;
char *engine_name = MallocT<char>(len); char *engine_name = MallocT<char>(len);
@@ -38,7 +30,6 @@ char *AIEventEnginePreview::GetName()
CargoID AIEventEnginePreview::GetCargoType() CargoID AIEventEnginePreview::GetCargoType()
{ {
if (!this->IsEngineValid()) return CT_INVALID;
CargoArray cap = ::GetCapacityOfArticulatedParts(this->engine); CargoArray cap = ::GetCapacityOfArticulatedParts(this->engine);
CargoID most_cargo = CT_INVALID; CargoID most_cargo = CT_INVALID;
@@ -55,7 +46,6 @@ CargoID AIEventEnginePreview::GetCargoType()
int32 AIEventEnginePreview::GetCapacity() int32 AIEventEnginePreview::GetCapacity()
{ {
if (!this->IsEngineValid()) return -1;
const Engine *e = ::Engine::Get(this->engine); const Engine *e = ::Engine::Get(this->engine);
switch (e->type) { switch (e->type) {
case VEH_ROAD: case VEH_ROAD:
@@ -78,7 +68,6 @@ int32 AIEventEnginePreview::GetCapacity()
int32 AIEventEnginePreview::GetMaxSpeed() int32 AIEventEnginePreview::GetMaxSpeed()
{ {
if (!this->IsEngineValid()) return -1;
const Engine *e = ::Engine::Get(this->engine); const Engine *e = ::Engine::Get(this->engine);
int32 max_speed = e->GetDisplayMaxSpeed(); // km-ish/h int32 max_speed = e->GetDisplayMaxSpeed(); // km-ish/h
if (e->type == VEH_AIRCRAFT) max_speed /= _settings_game.vehicle.plane_speed; if (e->type == VEH_AIRCRAFT) max_speed /= _settings_game.vehicle.plane_speed;
@@ -87,19 +76,16 @@ int32 AIEventEnginePreview::GetMaxSpeed()
Money AIEventEnginePreview::GetPrice() Money AIEventEnginePreview::GetPrice()
{ {
if (!this->IsEngineValid()) return -1;
return ::Engine::Get(this->engine)->GetCost(); return ::Engine::Get(this->engine)->GetCost();
} }
Money AIEventEnginePreview::GetRunningCost() Money AIEventEnginePreview::GetRunningCost()
{ {
if (!this->IsEngineValid()) return -1;
return ::Engine::Get(this->engine)->GetRunningCost(); return ::Engine::Get(this->engine)->GetRunningCost();
} }
int32 AIEventEnginePreview::GetVehicleType() int32 AIEventEnginePreview::GetVehicleType()
{ {
if (!this->IsEngineValid()) return AIVehicle::VT_INVALID;
switch (::Engine::Get(this->engine)->type) { switch (::Engine::Get(this->engine)->type) {
case VEH_ROAD: return AIVehicle::VT_ROAD; case VEH_ROAD: return AIVehicle::VT_ROAD;
case VEH_TRAIN: return AIVehicle::VT_RAIL; case VEH_TRAIN: return AIVehicle::VT_RAIL;
@@ -111,7 +97,6 @@ int32 AIEventEnginePreview::GetVehicleType()
bool AIEventEnginePreview::AcceptPreview() bool AIEventEnginePreview::AcceptPreview()
{ {
if (!this->IsEngineValid()) return false;
return AIObject::DoCommand(0, this->engine, 0, CMD_WANT_ENGINE_PREVIEW); return AIObject::DoCommand(0, this->engine, 0, CMD_WANT_ENGINE_PREVIEW);
} }

View File

@@ -12,6 +12,7 @@
#ifndef AI_EVENT_TYPES_HPP #ifndef AI_EVENT_TYPES_HPP
#define AI_EVENT_TYPES_HPP #define AI_EVENT_TYPES_HPP
#include "ai_object.hpp"
#include "ai_event.hpp" #include "ai_event.hpp"
#include "ai_company.hpp" #include "ai_company.hpp"
@@ -296,7 +297,6 @@ public:
private: private:
EngineID engine; EngineID engine;
bool IsEngineValid() const;
}; };
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_execmode.cpp Implementation of AIExecMode. */ /** @file ai_execmode.cpp Implementation of AIExecMode. */
#include "../../stdafx.h"
#include "ai_execmode.hpp" #include "ai_execmode.hpp"
#include "../../company_base.h" #include "../../company_base.h"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_gamesettings.cpp Implementation of AIGameSettings. */ /** @file ai_gamesettings.cpp Implementation of AIGameSettings. */
#include "../../stdafx.h"
#include "ai_gamesettings.hpp" #include "ai_gamesettings.hpp"
#include "../../settings_internal.h" #include "../../settings_internal.h"

View File

@@ -12,6 +12,7 @@
#ifndef AI_GAMESETTINGS_HPP #ifndef AI_GAMESETTINGS_HPP
#define AI_GAMESETTINGS_HPP #define AI_GAMESETTINGS_HPP
#include "ai_object.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_group.cpp Implementation of AIGroup. */ /** @file ai_group.cpp Implementation of AIGroup. */
#include "../../stdafx.h"
#include "ai_group.hpp" #include "ai_group.hpp"
#include "ai_engine.hpp" #include "ai_engine.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"

View File

@@ -12,6 +12,7 @@
#ifndef AI_GROUP_HPP #ifndef AI_GROUP_HPP
#define AI_GROUP_HPP #define AI_GROUP_HPP
#include "ai_object.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_grouplist.cpp Implementation of AIGroupList and friends. */ /** @file ai_grouplist.cpp Implementation of AIGroupList and friends. */
#include "../../stdafx.h"
#include "ai_grouplist.hpp" #include "ai_grouplist.hpp"
#include "../../company_func.h" #include "../../company_func.h"
#include "../../group.h" #include "../../group.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_industry.cpp Implementation of AIIndustry. */ /** @file ai_industry.cpp Implementation of AIIndustry. */
#include "../../stdafx.h"
#include "ai_industry.hpp" #include "ai_industry.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_industrylist.cpp Implementation of AIIndustryList and friends. */ /** @file ai_industrylist.cpp Implementation of AIIndustryList and friends. */
#include "../../stdafx.h"
#include "ai_industrylist.hpp" #include "ai_industrylist.hpp"
#include "../../industry.h" #include "../../industry.h"

View File

@@ -9,10 +9,8 @@
/** @file ai_industrytype.cpp Implementation of AIIndustryType. */ /** @file ai_industrytype.cpp Implementation of AIIndustryType. */
#include "../../stdafx.h"
#include "ai_industrytype.hpp" #include "ai_industrytype.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "ai_error.hpp"
#include "../../strings_func.h" #include "../../strings_func.h"
#include "../../industry.h" #include "../../industry.h"
#include "../../newgrf_industries.h" #include "../../newgrf_industries.h"

View File

@@ -12,6 +12,8 @@
#ifndef AI_INDUSTRYTYPE_HPP #ifndef AI_INDUSTRYTYPE_HPP
#define AI_INDUSTRYTYPE_HPP #define AI_INDUSTRYTYPE_HPP
#include "ai_object.hpp"
#include "ai_error.hpp"
#include "ai_list.hpp" #include "ai_list.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_industrytypelist.cpp Implementation of AIIndustryTypeList. */ /** @file ai_industrytypelist.cpp Implementation of AIIndustryTypeList. */
#include "../../stdafx.h"
#include "ai_industrytypelist.hpp" #include "ai_industrytypelist.hpp"
#include "../../industry.h" #include "../../industry.h"

View File

@@ -12,6 +12,7 @@
#ifndef AI_INDUSTRYTYPELIST_HPP #ifndef AI_INDUSTRYTYPELIST_HPP
#define AI_INDUSTRYTYPELIST_HPP #define AI_INDUSTRYTYPELIST_HPP
#include "ai_list.hpp"
#include "ai_industrytype.hpp" #include "ai_industrytype.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_list.cpp Implementation of AIList. */ /** @file ai_list.cpp Implementation of AIList. */
#include "../../stdafx.h"
#include "ai_list.hpp" #include "ai_list.hpp"
#include "../../debug.h" #include "../../debug.h"
#include "../../script/squirrel.hpp" #include "../../script/squirrel.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_log.cpp Implementation of AILog. */ /** @file ai_log.cpp Implementation of AILog. */
#include "../../stdafx.h"
#include "ai_log.hpp" #include "ai_log.hpp"
#include "../../core/alloc_func.hpp" #include "../../core/alloc_func.hpp"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_map.cpp Implementation of AIMap. */ /** @file ai_map.cpp Implementation of AIMap. */
#include "../../stdafx.h"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "../../tile_map.h" #include "../../tile_map.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_marine.cpp Implementation of AIMarine. */ /** @file ai_marine.cpp Implementation of AIMarine. */
#include "../../stdafx.h"
#include "ai_marine.hpp" #include "ai_marine.hpp"
#include "ai_station.hpp" #include "ai_station.hpp"
#include "../../station_base.h" #include "../../station_base.h"

View File

@@ -12,6 +12,7 @@
#ifndef AI_MARINE_HPP #ifndef AI_MARINE_HPP
#define AI_MARINE_HPP #define AI_MARINE_HPP
#include "ai_object.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
/** /**

View File

@@ -11,11 +11,7 @@
#include "../../stdafx.h" #include "../../stdafx.h"
#include "../../script/squirrel.hpp" #include "../../script/squirrel.hpp"
#include "../../command_func.h"
#include "../../company_base.h" #include "../../company_base.h"
#include "../../company_func.h"
#include "../../network/network.h"
#include "../../tunnelbridge.h"
#include "../ai_storage.hpp" #include "../ai_storage.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"

View File

@@ -12,6 +12,7 @@
#ifndef AI_OBJECT_HPP #ifndef AI_OBJECT_HPP
#define AI_OBJECT_HPP #define AI_OBJECT_HPP
#include "../../stdafx.h"
#include "../../misc/countedptr.hpp" #include "../../misc/countedptr.hpp"
#include "../../road_type.h" #include "../../road_type.h"
#include "../../rail_type.h" #include "../../rail_type.h"

View File

@@ -9,8 +9,6 @@
/** @file ai_order.cpp Implementation of AIOrder. */ /** @file ai_order.cpp Implementation of AIOrder. */
#include "../../stdafx.h"
#include "ai_order.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"
#include "../../debug.h" #include "../../debug.h"
@@ -48,7 +46,7 @@ static OrderType GetOrderTypeByTile(TileIndex t)
/* static */ bool AIOrder::IsValidVehicleOrder(VehicleID vehicle_id, OrderPosition order_position) /* static */ bool AIOrder::IsValidVehicleOrder(VehicleID vehicle_id, OrderPosition order_position)
{ {
return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::Vehicle::Get(vehicle_id)->GetNumManualOrders() || order_position == ORDER_CURRENT); return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::Vehicle::Get(vehicle_id)->GetNumOrders() || order_position == ORDER_CURRENT);
} }
/** /**
@@ -65,14 +63,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position); order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position);
if (order_position == AIOrder::ORDER_INVALID) return NULL; if (order_position == AIOrder::ORDER_INVALID) return NULL;
} }
const Order *order = v->orders.list->GetFirstOrder(); return v->GetOrder(order_position);
while (order->GetType() == OT_AUTOMATIC) order = order->next;
while (order_position > 0) {
order_position = (AIOrder::OrderPosition)(order_position - 1);
order = order->next;
while (order->GetType() == OT_AUTOMATIC) order = order->next;
}
return order;
} }
/* static */ bool AIOrder::IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position) /* static */ bool AIOrder::IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position)
@@ -131,18 +122,8 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
{ {
if (!AIVehicle::IsValidVehicle(vehicle_id)) return ORDER_INVALID; if (!AIVehicle::IsValidVehicle(vehicle_id)) return ORDER_INVALID;
if (order_position == ORDER_CURRENT) { if (order_position == ORDER_CURRENT) return (AIOrder::OrderPosition)::Vehicle::Get(vehicle_id)->cur_order_index;
int cur_order_pos = ::Vehicle::Get(vehicle_id)->cur_real_order_index; return (order_position >= 0 && order_position < ::Vehicle::Get(vehicle_id)->GetNumOrders()) ? order_position : ORDER_INVALID;
const Order *order = ::Vehicle::Get(vehicle_id)->GetOrder(0);
if (order == NULL) return ORDER_INVALID;
int num_automatic_orders = 0;
for (int i = 0; i < cur_order_pos; i++) {
if (order->GetType() == OT_AUTOMATIC) num_automatic_orders++;
order = order->next;
}
return (AIOrder::OrderPosition)(cur_order_pos - num_automatic_orders);
}
return (order_position >= 0 && order_position < ::Vehicle::Get(vehicle_id)->GetNumManualOrders()) ? order_position : ORDER_INVALID;
} }
@@ -279,7 +260,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
if (!IsValidVehicleOrder(vehicle_id, order_position)) return ORDER_INVALID; if (!IsValidVehicleOrder(vehicle_id, order_position)) return ORDER_INVALID;
if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return ORDER_INVALID; if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return ORDER_INVALID;
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
return (OrderPosition)order->GetConditionSkipToOrder(); return (OrderPosition)order->GetConditionSkipToOrder();
} }
@@ -288,7 +269,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
if (!IsValidVehicleOrder(vehicle_id, order_position)) return OC_INVALID; if (!IsValidVehicleOrder(vehicle_id, order_position)) return OC_INVALID;
if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return OC_INVALID; if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return OC_INVALID;
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
return (OrderCondition)order->GetConditionVariable(); return (OrderCondition)order->GetConditionVariable();
} }
@@ -297,7 +278,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
if (!IsValidVehicleOrder(vehicle_id, order_position)) return CF_INVALID; if (!IsValidVehicleOrder(vehicle_id, order_position)) return CF_INVALID;
if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return CF_INVALID; if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return CF_INVALID;
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
return (CompareFunction)order->GetConditionComparator(); return (CompareFunction)order->GetConditionComparator();
} }
@@ -306,7 +287,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
if (!IsValidVehicleOrder(vehicle_id, order_position)) return -1; if (!IsValidVehicleOrder(vehicle_id, order_position)) return -1;
if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return -1; if (order_position == ORDER_CURRENT || !IsConditionalOrder(vehicle_id, order_position)) return -1;
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
int32 value = order->GetConditionValue(); int32 value = order->GetConditionValue();
if (order->GetConditionVariable() == OCV_MAX_SPEED) value = value * 16 / 10; if (order->GetConditionVariable() == OCV_MAX_SPEED) value = value * 16 / 10;
return value; return value;
@@ -318,7 +299,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
if (AIVehicle::GetVehicleType(vehicle_id) != AIVehicle::VT_RAIL) return STOPLOCATION_INVALID; if (AIVehicle::GetVehicleType(vehicle_id) != AIVehicle::VT_RAIL) return STOPLOCATION_INVALID;
if (!IsGotoStationOrder(vehicle_id, order_position)) return STOPLOCATION_INVALID; if (!IsGotoStationOrder(vehicle_id, order_position)) return STOPLOCATION_INVALID;
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
return (AIOrder::StopLocation)order->GetStopLocation(); return (AIOrder::StopLocation)order->GetStopLocation();
} }
@@ -505,12 +486,10 @@ static void _DoCommandReturnSetOrderFlags(class AIInstance *instance)
EnforcePrecondition(false, IsValidVehicleOrder(vehicle_id, order_position)); EnforcePrecondition(false, IsValidVehicleOrder(vehicle_id, order_position));
EnforcePrecondition(false, AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_position), order_flags)); EnforcePrecondition(false, AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_position), order_flags));
const Order *order = ::ResolveOrder(vehicle_id, order_position); const Order *order = Vehicle::Get(vehicle_id)->GetOrder(order_position);
AIOrderFlags current = GetOrderFlags(vehicle_id, order_position); AIOrderFlags current = GetOrderFlags(vehicle_id, order_position);
EnforcePrecondition(false, (order_flags & AIOF_GOTO_NEAREST_DEPOT) == (current & AIOF_GOTO_NEAREST_DEPOT));
if ((current & AIOF_NON_STOP_FLAGS) != (order_flags & AIOF_NON_STOP_FLAGS)) { if ((current & AIOF_NON_STOP_FLAGS) != (order_flags & AIOF_NON_STOP_FLAGS)) {
return AIObject::DoCommand(0, vehicle_id | (order_position << 20), (order_flags & AIOF_NON_STOP_FLAGS) << 4 | MOF_NON_STOP, CMD_MODIFY_ORDER, NULL, &_DoCommandReturnSetOrderFlags); return AIObject::DoCommand(0, vehicle_id | (order_position << 20), (order_flags & AIOF_NON_STOP_FLAGS) << 4 | MOF_NON_STOP, CMD_MODIFY_ORDER, NULL, &_DoCommandReturnSetOrderFlags);
} }

View File

@@ -12,6 +12,7 @@
#ifndef AI_ORDER_HPP #ifndef AI_ORDER_HPP
#define AI_ORDER_HPP #define AI_ORDER_HPP
#include "ai_object.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
/** /**
@@ -112,13 +113,7 @@ public:
CF_INVALID = -1, ///< Invalid compare function, do not use. CF_INVALID = -1, ///< Invalid compare function, do not use.
}; };
/** /** Different constants related to the OrderPosition */
* Index in the list of orders for a vehicle. The first order has index 0, the second
* order index 1, etc. The current order can be queried by using ORDER_CURRENT. Do not
* use ORDER_INVALID yourself, it's used as return value by for example ResolveOrderPosition.
* @note Automatic orders are hidden from AIs, so OrderPosition 0 will always be the first
* manual order.
*/
enum OrderPosition { enum OrderPosition {
ORDER_CURRENT = 0xFF, ///< Constant that gets resolved to the current order. ORDER_CURRENT = 0xFF, ///< Constant that gets resolved to the current order.
ORDER_INVALID = -1, ///< An invalid order. ORDER_INVALID = -1, ///< An invalid order.
@@ -457,7 +452,6 @@ public:
* @param order_flags The new flags given to the order. * @param order_flags The new flags given to the order.
* @pre IsValidVehicleOrder(vehicle_id, order_position). * @pre IsValidVehicleOrder(vehicle_id, order_position).
* @pre AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_position), order_flags). * @pre AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_position), order_flags).
* @pre (order_flags & AIOF_GOTO_NEAREST_DEPOT) == (GetOrderFlags(vehicle_id, order_position) & AIOF_GOTO_NEAREST_DEPOT).
* @exception AIError::ERR_OWNED_BY_ANOTHER_COMPANY * @exception AIError::ERR_OWNED_BY_ANOTHER_COMPANY
* @return True if and only if the order was changed. * @return True if and only if the order was changed.
*/ */

View File

@@ -9,7 +9,6 @@
/** @file ai_rail.cpp Implementation of AIRail. */ /** @file ai_rail.cpp Implementation of AIRail. */
#include "../../stdafx.h"
#include "ai_rail.hpp" #include "ai_rail.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "ai_station.hpp" #include "ai_station.hpp"

View File

@@ -12,6 +12,8 @@
#ifndef AI_RAIL_HPP #ifndef AI_RAIL_HPP
#define AI_RAIL_HPP #define AI_RAIL_HPP
#include "ai_object.hpp"
#include "ai_error.hpp"
#include "ai_tile.hpp" #include "ai_tile.hpp"
/** /**
@@ -35,6 +37,9 @@ public:
/** Track not suitable for signals */ /** Track not suitable for signals */
ERR_UNSUITABLE_TRACK, // [STR_ERROR_NO_SUITABLE_RAILROAD_TRACK] ERR_UNSUITABLE_TRACK, // [STR_ERROR_NO_SUITABLE_RAILROAD_TRACK]
/** Non-uniform stations is diabled */
ERR_NONUNIFORM_STATIONS_DISABLED, // [STR_ERROR_NONUNIFORM_STATIONS_DISALLOWED]
/** This railtype cannot have crossings */ /** This railtype cannot have crossings */
ERR_RAILTYPE_DISALLOWS_CROSSING, // [STR_ERROR_CROSSING_DISALLOWED] ERR_RAILTYPE_DISALLOWS_CROSSING, // [STR_ERROR_CROSSING_DISALLOWED]
}; };

View File

@@ -38,43 +38,46 @@ void SQAIRail_Register(Squirrel *engine)
SQAIRail.PreRegister(engine); SQAIRail.PreRegister(engine);
SQAIRail.AddConstructor<void (AIRail::*)(), 1>(engine, "x"); SQAIRail.AddConstructor<void (AIRail::*)(), 1>(engine, "x");
SQAIRail.DefSQConst(engine, AIRail::ERR_RAIL_BASE, "ERR_RAIL_BASE"); SQAIRail.DefSQConst(engine, AIRail::ERR_RAIL_BASE, "ERR_RAIL_BASE");
SQAIRail.DefSQConst(engine, AIRail::ERR_CROSSING_ON_ONEWAY_ROAD, "ERR_CROSSING_ON_ONEWAY_ROAD"); SQAIRail.DefSQConst(engine, AIRail::ERR_CROSSING_ON_ONEWAY_ROAD, "ERR_CROSSING_ON_ONEWAY_ROAD");
SQAIRail.DefSQConst(engine, AIRail::ERR_UNSUITABLE_TRACK, "ERR_UNSUITABLE_TRACK"); SQAIRail.DefSQConst(engine, AIRail::ERR_UNSUITABLE_TRACK, "ERR_UNSUITABLE_TRACK");
SQAIRail.DefSQConst(engine, AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING, "ERR_RAILTYPE_DISALLOWS_CROSSING"); SQAIRail.DefSQConst(engine, AIRail::ERR_NONUNIFORM_STATIONS_DISABLED, "ERR_NONUNIFORM_STATIONS_DISABLED");
SQAIRail.DefSQConst(engine, AIRail::RAILTYPE_INVALID, "RAILTYPE_INVALID"); SQAIRail.DefSQConst(engine, AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING, "ERR_RAILTYPE_DISALLOWS_CROSSING");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NE_SW, "RAILTRACK_NE_SW"); SQAIRail.DefSQConst(engine, AIRail::RAILTYPE_INVALID, "RAILTYPE_INVALID");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_SE, "RAILTRACK_NW_SE"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NE_SW, "RAILTRACK_NE_SW");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_NE, "RAILTRACK_NW_NE"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_SE, "RAILTRACK_NW_SE");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_SW_SE, "RAILTRACK_SW_SE"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_NE, "RAILTRACK_NW_NE");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_SW, "RAILTRACK_NW_SW"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_SW_SE, "RAILTRACK_SW_SE");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NE_SE, "RAILTRACK_NE_SE"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NW_SW, "RAILTRACK_NW_SW");
SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_INVALID, "RAILTRACK_INVALID"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_NE_SE, "RAILTRACK_NE_SE");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NORMAL, "SIGNALTYPE_NORMAL"); SQAIRail.DefSQConst(engine, AIRail::RAILTRACK_INVALID, "RAILTRACK_INVALID");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_ENTRY, "SIGNALTYPE_ENTRY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NORMAL, "SIGNALTYPE_NORMAL");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_EXIT, "SIGNALTYPE_EXIT"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_ENTRY, "SIGNALTYPE_ENTRY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_COMBO, "SIGNALTYPE_COMBO"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_EXIT, "SIGNALTYPE_EXIT");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_PBS, "SIGNALTYPE_PBS"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_COMBO, "SIGNALTYPE_COMBO");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_PBS_ONEWAY, "SIGNALTYPE_PBS_ONEWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_PBS, "SIGNALTYPE_PBS");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_TWOWAY, "SIGNALTYPE_TWOWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_PBS_ONEWAY, "SIGNALTYPE_PBS_ONEWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NORMAL_TWOWAY, "SIGNALTYPE_NORMAL_TWOWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_TWOWAY, "SIGNALTYPE_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_ENTRY_TWOWAY, "SIGNALTYPE_ENTRY_TWOWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NORMAL_TWOWAY, "SIGNALTYPE_NORMAL_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_EXIT_TWOWAY, "SIGNALTYPE_EXIT_TWOWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_ENTRY_TWOWAY, "SIGNALTYPE_ENTRY_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_COMBO_TWOWAY, "SIGNALTYPE_COMBO_TWOWAY"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_EXIT_TWOWAY, "SIGNALTYPE_EXIT_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NONE, "SIGNALTYPE_NONE"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_COMBO_TWOWAY, "SIGNALTYPE_COMBO_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::BT_TRACK, "BT_TRACK"); SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NONE, "SIGNALTYPE_NONE");
SQAIRail.DefSQConst(engine, AIRail::BT_SIGNAL, "BT_SIGNAL"); SQAIRail.DefSQConst(engine, AIRail::BT_TRACK, "BT_TRACK");
SQAIRail.DefSQConst(engine, AIRail::BT_DEPOT, "BT_DEPOT"); SQAIRail.DefSQConst(engine, AIRail::BT_SIGNAL, "BT_SIGNAL");
SQAIRail.DefSQConst(engine, AIRail::BT_STATION, "BT_STATION"); SQAIRail.DefSQConst(engine, AIRail::BT_DEPOT, "BT_DEPOT");
SQAIRail.DefSQConst(engine, AIRail::BT_WAYPOINT, "BT_WAYPOINT"); SQAIRail.DefSQConst(engine, AIRail::BT_STATION, "BT_STATION");
SQAIRail.DefSQConst(engine, AIRail::BT_WAYPOINT, "BT_WAYPOINT");
AIError::RegisterErrorMap(STR_ERROR_CROSSING_ON_ONEWAY_ROAD, AIRail::ERR_CROSSING_ON_ONEWAY_ROAD); AIError::RegisterErrorMap(STR_ERROR_CROSSING_ON_ONEWAY_ROAD, AIRail::ERR_CROSSING_ON_ONEWAY_ROAD);
AIError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK, AIRail::ERR_UNSUITABLE_TRACK); AIError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK, AIRail::ERR_UNSUITABLE_TRACK);
AIError::RegisterErrorMap(STR_ERROR_CROSSING_DISALLOWED, AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING); AIError::RegisterErrorMap(STR_ERROR_NONUNIFORM_STATIONS_DISALLOWED, AIRail::ERR_NONUNIFORM_STATIONS_DISABLED);
AIError::RegisterErrorMap(STR_ERROR_CROSSING_DISALLOWED, AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING);
AIError::RegisterErrorMapString(AIRail::ERR_CROSSING_ON_ONEWAY_ROAD, "ERR_CROSSING_ON_ONEWAY_ROAD"); AIError::RegisterErrorMapString(AIRail::ERR_CROSSING_ON_ONEWAY_ROAD, "ERR_CROSSING_ON_ONEWAY_ROAD");
AIError::RegisterErrorMapString(AIRail::ERR_UNSUITABLE_TRACK, "ERR_UNSUITABLE_TRACK"); AIError::RegisterErrorMapString(AIRail::ERR_UNSUITABLE_TRACK, "ERR_UNSUITABLE_TRACK");
AIError::RegisterErrorMapString(AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING, "ERR_RAILTYPE_DISALLOWS_CROSSING"); AIError::RegisterErrorMapString(AIRail::ERR_NONUNIFORM_STATIONS_DISABLED, "ERR_NONUNIFORM_STATIONS_DISABLED");
AIError::RegisterErrorMapString(AIRail::ERR_RAILTYPE_DISALLOWS_CROSSING, "ERR_RAILTYPE_DISALLOWS_CROSSING");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetName, "GetName", 2, ".i"); SQAIRail.DefSQStaticMethod(engine, &AIRail::GetName, "GetName", 2, ".i");
SQAIRail.DefSQStaticMethod(engine, &AIRail::IsRailTile, "IsRailTile", 2, ".i"); SQAIRail.DefSQStaticMethod(engine, &AIRail::IsRailTile, "IsRailTile", 2, ".i");

View File

@@ -9,7 +9,6 @@
/** @file ai_railtypelist.cpp Implementation of AIRailTypeList and friends. */ /** @file ai_railtypelist.cpp Implementation of AIRailTypeList and friends. */
#include "../../stdafx.h"
#include "ai_railtypelist.hpp" #include "ai_railtypelist.hpp"
#include "../../rail.h" #include "../../rail.h"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_road.cpp Implementation of AIRoad. */ /** @file ai_road.cpp Implementation of AIRoad. */
#include "../../stdafx.h"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "ai_station.hpp" #include "ai_station.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"

View File

@@ -12,6 +12,8 @@
#ifndef AI_ROAD_HPP #ifndef AI_ROAD_HPP
#define AI_ROAD_HPP #define AI_ROAD_HPP
#include "ai_object.hpp"
#include "ai_error.hpp"
#include "ai_tile.hpp" #include "ai_tile.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_sign.cpp Implementation of AISign. */ /** @file ai_sign.cpp Implementation of AISign. */
#include "../../stdafx.h"
#include "ai_sign.hpp" #include "ai_sign.hpp"
#include "table/strings.h" #include "table/strings.h"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"

View File

@@ -12,7 +12,9 @@
#ifndef AI_SIGN_HPP #ifndef AI_SIGN_HPP
#define AI_SIGN_HPP #define AI_SIGN_HPP
#include "ai_object.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
#include "ai_company.hpp"
/** /**
* Class that handles all sign related functions. * Class that handles all sign related functions.

View File

@@ -9,7 +9,6 @@
/** @file ai_signlist.cpp Implementation of AISignList and friends. */ /** @file ai_signlist.cpp Implementation of AISignList and friends. */
#include "../../stdafx.h"
#include "ai_signlist.hpp" #include "ai_signlist.hpp"
#include "ai_sign.hpp" #include "ai_sign.hpp"
#include "../../signs_base.h" #include "../../signs_base.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_station.cpp Implementation of AIStation. */ /** @file ai_station.cpp Implementation of AIStation. */
#include "../../stdafx.h"
#include "ai_station.hpp" #include "ai_station.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"

View File

@@ -12,6 +12,8 @@
#ifndef AI_STATION_HPP #ifndef AI_STATION_HPP
#define AI_STATION_HPP #define AI_STATION_HPP
#include "ai_object.hpp"
#include "ai_error.hpp"
#include "ai_road.hpp" #include "ai_road.hpp"
#include "ai_basestation.hpp" #include "ai_basestation.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_stationlist.cpp Implementation of AIStationList and friends. */ /** @file ai_stationlist.cpp Implementation of AIStationList and friends. */
#include "../../stdafx.h"
#include "ai_stationlist.hpp" #include "ai_stationlist.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_subsidy.cpp Implementation of AISubsidy. */ /** @file ai_subsidy.cpp Implementation of AISubsidy. */
#include "../../stdafx.h"
#include "ai_subsidy.hpp" #include "ai_subsidy.hpp"
#include "ai_date.hpp" #include "ai_date.hpp"
#include "../../subsidy_base.h" #include "../../subsidy_base.h"

View File

@@ -12,6 +12,7 @@
#ifndef AI_SUBSIDY_HPP #ifndef AI_SUBSIDY_HPP
#define AI_SUBSIDY_HPP #define AI_SUBSIDY_HPP
#include "ai_object.hpp"
#include "ai_company.hpp" #include "ai_company.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_subsidylist.cpp Implementation of AISubsidyList. */ /** @file ai_subsidylist.cpp Implementation of AISubsidyList. */
#include "../../stdafx.h"
#include "ai_subsidylist.hpp" #include "ai_subsidylist.hpp"
#include "../../subsidy_base.h" #include "../../subsidy_base.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_testmode.cpp Implementation of AITestMode. */ /** @file ai_testmode.cpp Implementation of AITestMode. */
#include "../../stdafx.h"
#include "ai_testmode.hpp" #include "ai_testmode.hpp"
#include "../../company_base.h" #include "../../company_base.h"
#include "../../company_func.h" #include "../../company_func.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_tile.cpp Implementation of AITile. */ /** @file ai_tile.cpp Implementation of AITile. */
#include "../../stdafx.h"
#include "ai_tile.hpp" #include "ai_tile.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "ai_town.hpp" #include "ai_town.hpp"

View File

@@ -12,6 +12,7 @@
#ifndef AI_TILE_HPP #ifndef AI_TILE_HPP
#define AI_TILE_HPP #define AI_TILE_HPP
#include "ai_list.hpp"
#include "ai_error.hpp" #include "ai_error.hpp"
#include "ai_company.hpp" #include "ai_company.hpp"

View File

@@ -9,7 +9,6 @@
/** @file ai_tilelist.cpp Implementation of AITileList and friends. */ /** @file ai_tilelist.cpp Implementation of AITileList and friends. */
#include "../../stdafx.h"
#include "ai_tilelist.hpp" #include "ai_tilelist.hpp"
#include "ai_industry.hpp" #include "ai_industry.hpp"
#include "../../industry.h" #include "../../industry.h"

View File

@@ -12,8 +12,8 @@
#ifndef AI_TILELIST_HPP #ifndef AI_TILELIST_HPP
#define AI_TILELIST_HPP #define AI_TILELIST_HPP
#include "ai_station.hpp"
#include "ai_list.hpp" #include "ai_list.hpp"
#include "ai_station.hpp"
/** /**
* Creates an empty list, in which you can add tiles. * Creates an empty list, in which you can add tiles.

View File

@@ -9,7 +9,6 @@
/** @file ai_town.cpp Implementation of AITown. */ /** @file ai_town.cpp Implementation of AITown. */
#include "../../stdafx.h"
#include "ai_town.hpp" #include "ai_town.hpp"
#include "ai_map.hpp" #include "ai_map.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"

View File

@@ -12,6 +12,7 @@
#ifndef AI_TOWN_HPP #ifndef AI_TOWN_HPP
#define AI_TOWN_HPP #define AI_TOWN_HPP
#include "ai_object.hpp"
#include "ai_company.hpp" #include "ai_company.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_townlist.cpp Implementation of AITownList and friends. */ /** @file ai_townlist.cpp Implementation of AITownList and friends. */
#include "../../stdafx.h"
#include "ai_townlist.hpp" #include "ai_townlist.hpp"
#include "../../town.h" #include "../../town.h"

View File

@@ -9,7 +9,6 @@
/** @file ai_tunnel.cpp Implementation of AITunnel. */ /** @file ai_tunnel.cpp Implementation of AITunnel. */
#include "../../stdafx.h"
#include "ai_tunnel.hpp" #include "ai_tunnel.hpp"
#include "ai_rail.hpp" #include "ai_rail.hpp"
#include "../ai_instance.hpp" #include "../ai_instance.hpp"

View File

@@ -12,6 +12,7 @@
#ifndef AI_TUNNEL_HPP #ifndef AI_TUNNEL_HPP
#define AI_TUNNEL_HPP #define AI_TUNNEL_HPP
#include "ai_object.hpp"
#include "ai_vehicle.hpp" #include "ai_vehicle.hpp"
/** /**

View File

@@ -9,7 +9,6 @@
/** @file ai_vehicle.cpp Implementation of AIVehicle. */ /** @file ai_vehicle.cpp Implementation of AIVehicle. */
#include "../../stdafx.h"
#include "ai_engine.hpp" #include "ai_engine.hpp"
#include "ai_cargo.hpp" #include "ai_cargo.hpp"
#include "ai_gamesettings.hpp" #include "ai_gamesettings.hpp"

Some files were not shown because too many files have changed in this diff Show More