mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-18 12:09:10 +00:00
Compare commits
98 Commits
1.0.0-beta
...
0.7.5
Author | SHA1 | Date | |
---|---|---|---|
|
26b0b7df08 | ||
|
ab2da92d76 | ||
|
ab03517694 | ||
|
0df9eddc9c | ||
|
ff67ed58da | ||
|
fd89332101 | ||
|
8808835412 | ||
|
b6834cf135 | ||
|
a1fb44c417 | ||
|
c607e6cb37 | ||
|
49ac7c9338 | ||
|
b4ba357017 | ||
|
e4b45169c1 | ||
|
d8c4ed5118 | ||
|
7b6e449f15 | ||
|
072270f9b9 | ||
|
9360409b4e | ||
|
9443dea1f1 | ||
|
36649f354a | ||
|
88f87bc4ac | ||
|
57992d5eac | ||
|
429eb416ac | ||
|
803e452fab | ||
|
a6251ba1a5 | ||
|
edbd568094 | ||
|
6e14331cda | ||
|
58ebb4c65c | ||
|
a442343076 | ||
|
0a4299bdfd | ||
|
ad2fbaddc1 | ||
|
36497b584e | ||
|
47ae295ee1 | ||
|
ca66a61cc9 | ||
|
e492c5928d | ||
|
a0bc64394c | ||
|
91078be657 | ||
|
86725561d5 | ||
|
2801567da7 | ||
|
c16325b939 | ||
|
53983ec1af | ||
|
a61574a033 | ||
|
ad2c54d119 | ||
|
fa713d0e3b | ||
|
645664eced | ||
|
19cad228e8 | ||
|
f39f14aceb | ||
|
a86469d6bc | ||
|
d567f99ecf | ||
|
969d538026 | ||
|
5cde77086d | ||
|
6d8d781d5c | ||
|
08dc96571a | ||
|
a123484ee0 | ||
|
3edbb1a543 | ||
|
893bccf4c8 | ||
|
a97240dede | ||
|
876d064c4d | ||
|
660fe672e8 | ||
|
b49c6e0cbd | ||
|
0ffca06944 | ||
|
024aa14f94 | ||
|
2d454f37f0 | ||
|
a00a4b5ad8 | ||
|
b1d2a8876b | ||
|
253702529d | ||
|
65c5e26913 | ||
|
9456d20800 | ||
|
7ccaa82206 | ||
|
02f3d2d8af | ||
|
7742f8c080 | ||
|
ba01583ce3 | ||
|
498e5989d1 | ||
|
ab7b117c50 | ||
|
085b498c28 | ||
|
30eff93341 | ||
|
139a213d4d | ||
|
06c45d6fe5 | ||
|
8446d6b8c2 | ||
|
9676072298 | ||
|
2db7e3a0a8 | ||
|
1e9fd18e6a | ||
|
909af50aaa | ||
|
07a16f9282 | ||
|
28e7981a5b | ||
|
f7cc97fe5c | ||
|
d9ed2d380f | ||
|
60901368cc | ||
|
9f5e690118 | ||
|
2fbd7ff6cc | ||
|
1595413545 | ||
|
76b2e1c5ab | ||
|
7e1385b6eb | ||
|
4ec28e1ba7 | ||
|
30afba1d10 | ||
|
61e97110c9 | ||
|
9e592b9986 | ||
|
de7a4a4006 | ||
|
53dc1a89da |
10
Doxyfile
10
Doxyfile
@@ -1,10 +1,3 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -33,6 +26,7 @@ STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 2
|
||||
@@ -94,7 +88,7 @@ FILE_PATTERNS = *.c \
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS = */3rdparty */.svn
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
@@ -1,10 +1,3 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
#
|
||||
# Creation of bundles
|
||||
#
|
||||
@@ -29,16 +22,12 @@ endif
|
||||
|
||||
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
|
||||
ifdef OSXAPP
|
||||
AI_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/ai
|
||||
DATA_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/data
|
||||
LANG_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/lang
|
||||
GM_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/gm
|
||||
TTD_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/MacOS
|
||||
else
|
||||
AI_DIR = $(BUNDLE_DIR)/ai
|
||||
DATA_DIR = $(BUNDLE_DIR)/data
|
||||
LANG_DIR = $(BUNDLE_DIR)/lang
|
||||
GM_DIR = $(BUNDLE_DIR)/gm
|
||||
TTD_DIR = $(BUNDLE_DIR)
|
||||
endif
|
||||
|
||||
@@ -50,10 +39,8 @@ bundle: all
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/media"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scripts"
|
||||
$(Q)mkdir -p "$(TTD_DIR)"
|
||||
$(Q)mkdir -p "$(AI_DIR)"
|
||||
$(Q)mkdir -p "$(DATA_DIR)"
|
||||
$(Q)mkdir -p "$(LANG_DIR)"
|
||||
$(Q)mkdir -p "$(GM_DIR)"
|
||||
ifdef OSXAPP
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
|
||||
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
|
||||
@@ -63,13 +50,10 @@ ifdef OSXAPP
|
||||
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)"
|
||||
endif
|
||||
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/ai/"compat_*.nut "$(AI_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/"*.obg "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/"*.obs "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/gm/"*.obm "$(GM_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
|
||||
@@ -111,11 +95,6 @@ bundle_zip: bundle
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)"
|
||||
$(Q)cd "$(BUNDLE_DIR)" && zip -r $(shell if test -z "$(VERBOSE)"; then echo '-q'; fi) "$(BUNDLES_DIR)/$(BUNDLE_NAME).zip" .
|
||||
|
||||
bundle_7z: bundle
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).7z'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)"
|
||||
$(Q)cd "$(BUNDLE_DIR)" && 7z a "$(BUNDLES_DIR)/$(BUNDLE_NAME).7z" .
|
||||
|
||||
bundle_gzip: bundle
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.gz'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)/.gzip/$(BUNDLE_NAME)"
|
||||
@@ -130,13 +109,6 @@ bundle_bzip2: bundle
|
||||
$(Q)cd "$(BUNDLES_DIR)/.bzip2" && tar -jc$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.bz2" "$(BUNDLE_NAME)"
|
||||
$(Q)rm -rf "$(BUNDLES_DIR)/.bzip2"
|
||||
|
||||
bundle_lzma: bundle
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.lzma'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)/.lzma/$(BUNDLE_NAME)"
|
||||
$(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.lzma/$(BUNDLE_NAME)/"
|
||||
$(Q)cd "$(BUNDLES_DIR)/.lzma" && tar --lzma -c$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.lzma" "$(BUNDLE_NAME)"
|
||||
$(Q)rm -rf "$(BUNDLES_DIR)/.lzma"
|
||||
|
||||
bundle_lha: bundle
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).lha'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)/.lha/$(BUNDLE_NAME)"
|
||||
@@ -155,8 +127,8 @@ bundle_exe: all
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).exe'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)"
|
||||
$(Q)unix2dos "$(ROOT_DIR)/docs/"* "$(ROOT_DIR)/readme.txt" "$(ROOT_DIR)/COPYING" "$(ROOT_DIR)/changelog.txt" "$(ROOT_DIR)/known-bugs.txt"
|
||||
$(Q)cd $(ROOT_DIR)/os/windows/installer && makensis.exe //DVERSION_INCLUDE=version_$(PLATFORM).txt install.nsi
|
||||
$(Q)mv $(ROOT_DIR)/os/windows/installer/*$(PLATFORM).exe "$(BUNDLES_DIR)/$(BUNDLE_NAME).exe"
|
||||
$(Q)cd $(ROOT_DIR)/os/win32/installer && makensis.exe //DVERSION_INCLUDE=version_$(PLATFORM).txt install.nsi
|
||||
$(Q)mv $(ROOT_DIR)/os/win32/installer/*$(PLATFORM).exe "$(BUNDLES_DIR)/$(BUNDLE_NAME).exe"
|
||||
|
||||
ifdef OSXAPP
|
||||
install:
|
||||
@@ -167,10 +139,8 @@ install: bundle
|
||||
$(Q)install -d "$(INSTALL_BINARY_DIR)"
|
||||
$(Q)install -d "$(INSTALL_ICON_DIR)"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/data"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
|
||||
$(Q)install -d "$(INSTALL_DOC_DIR)"
|
||||
ifeq ($(TTD), openttd.exe)
|
||||
@@ -179,9 +149,7 @@ else
|
||||
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}"
|
||||
endif
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/gm/"* "$(INSTALL_DATA_DIR)/gm"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(INSTALL_DOC_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/"*.txt "$(INSTALL_DOC_DIR)"
|
||||
|
61
Makefile.in
61
Makefile.in
@@ -1,10 +1,3 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
# Check if we want to show what we are doing
|
||||
ifdef VERBOSE
|
||||
Q =
|
||||
@@ -14,36 +7,36 @@ endif
|
||||
|
||||
include Makefile.am
|
||||
|
||||
CONFIG_CACHE_PWD = !!CONFIG_CACHE_PWD!!
|
||||
SOURCE_LIST = !!SOURCE_LIST!!
|
||||
CONFIG_CACHE_SOURCE_LIST = !!CONFIG_CACHE_SOURCE_LIST!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
ICON_THEME_DIR = !!ICON_THEME_DIR!!
|
||||
MAN_DIR = !!MAN_DIR!!
|
||||
MENU_DIR = !!MENU_DIR!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
ROOT_DIR = !!ROOT_DIR!!
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||
INSTALL_DIR = !!INSTALL_DIR!!
|
||||
INSTALL_BINARY_DIR = "$(INSTALL_DIR)/"!!BINARY_DIR!!
|
||||
INSTALL_MAN_DIR = "$(INSTALL_DIR)/$(MAN_DIR)"
|
||||
INSTALL_MENU_DIR = "$(INSTALL_DIR)/$(MENU_DIR)"
|
||||
INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
|
||||
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
|
||||
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
|
||||
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
|
||||
SOURCE_LIST = !!SOURCE_LIST!!
|
||||
CONFIG_CACHE_PWD = !!CONFIG_CACHE_PWD!!
|
||||
CONFIGURE_FILES = !!CONFIGURE_FILES!!
|
||||
LIPO = !!LIPO!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
ICON_THEME_DIR = !!ICON_THEME_DIR!!
|
||||
MAN_DIR = !!MAN_DIR!!
|
||||
MENU_DIR = !!MENU_DIR!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
ROOT_DIR = !!ROOT_DIR!!
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||
INSTALL_DIR = !!INSTALL_DIR!!
|
||||
INSTALL_BINARY_DIR = "$(INSTALL_DIR)/"!!BINARY_DIR!!
|
||||
INSTALL_MAN_DIR = "$(INSTALL_DIR)/$(MAN_DIR)"
|
||||
INSTALL_MENU_DIR = "$(INSTALL_DIR)/$(MENU_DIR)"
|
||||
INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
|
||||
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
|
||||
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
|
||||
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
|
||||
BINARY_NAME = !!BINARY_NAME!!
|
||||
STRIP = !!STRIP!!
|
||||
TTD = !!TTD!!
|
||||
TTDS = $(SRC_DIRS:%=%/$(TTD))
|
||||
OS = !!OS!!
|
||||
OSXAPP = !!OSXAPP!!
|
||||
LIPO = !!LIPO!!
|
||||
REVISION = !!REVISION!!
|
||||
AWK = !!AWK!!
|
||||
DISTCC = !!DISTCC!!
|
||||
STRIP = !!STRIP!!
|
||||
TTD = !!TTD!!
|
||||
TTDS = $(SRC_DIRS:%=%/$(TTD))
|
||||
OS = !!OS!!
|
||||
OSXAPP = !!OSXAPP!!
|
||||
REVISION = !!REVISION!!
|
||||
AWK = !!AWK!!
|
||||
DISTCC = !!DISTCC!!
|
||||
|
||||
RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi )
|
||||
RES := $(shell if [ ! -f $(CONFIG_CACHE_SOURCE_LIST) ] || [ -n "`cmp $(CONFIG_CACHE_SOURCE_LIST) $(SOURCE_LIST) 2>/dev/null`" ]; then cp $(SOURCE_LIST) $(CONFIG_CACHE_SOURCE_LIST); fi )
|
||||
|
@@ -1,30 +1,22 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
STRGEN = !!STRGEN!!
|
||||
ENDIAN_CHECK = !!ENDIAN_CHECK!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
LANG_DIR = !!LANG_DIR!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
LANGS_SRC = $(shell ls $(LANG_DIR)/*.txt)
|
||||
LANGS = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
|
||||
CXX_BUILD = !!CXX_BUILD!!
|
||||
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
||||
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
|
||||
STRGEN_FLAGS = !!STRGEN_FLAGS!!
|
||||
STAGE = !!STAGE!!
|
||||
LANG_SUPPRESS = !!LANG_SUPPRESS!!
|
||||
LANG_OBJS_DIR = !!LANG_OBJS_DIR!!
|
||||
STRGEN = !!STRGEN!!
|
||||
ENDIAN_CHECK = !!ENDIAN_CHECK!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
LANG_DIR = !!LANG_DIR!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
LANGS_SRC = $(shell ls $(LANG_DIR)/*.txt)
|
||||
LANGS = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
|
||||
CXX_BUILD = !!CXX_BUILD!!
|
||||
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
||||
STRGEN_FLAGS = !!STRGEN_FLAGS!!
|
||||
STAGE = !!STAGE!!
|
||||
LANG_SUPPRESS= !!LANG_SUPPRESS!!
|
||||
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
|
||||
|
||||
ifeq ($(LANG_SUPPRESS), yes)
|
||||
LANG_ERRORS = >/dev/null 2>&1
|
||||
endif
|
||||
|
||||
# Make sure endian_host.h is reachable as if it was in the src/ dir
|
||||
# Make sure endian_host.h is reasable as if it was in the src/ dir
|
||||
CFLAGS_BUILD += -I $(LANG_OBJS_DIR)
|
||||
|
||||
ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK)
|
||||
@@ -42,7 +34,7 @@ RES := $(shell mkdir -p $(BIN_DIR)/lang )
|
||||
|
||||
all: table/strings.h $(LANGS)
|
||||
|
||||
strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
|
||||
strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h $(SRC_DIR)/table/control_codes.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
@@ -60,7 +52,7 @@ lang/english.txt: $(LANG_DIR)/english.txt
|
||||
|
||||
$(STRGEN): alloc_func.o string.o strgen.o
|
||||
$(E) '$(STAGE) Compiling and Linking $@'
|
||||
$(Q)$(CXX_BUILD) $(LDFLAGS_BUILD) $^ -o $@
|
||||
$(Q)$(CXX_BUILD) $^ -o $@
|
||||
|
||||
table/strings.h: lang/english.txt $(STRGEN)
|
||||
$(E) '$(STAGE) Generating $@'
|
||||
|
@@ -1,10 +1,3 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
#
|
||||
# Makefile for creating bundles of MSVC's binaries in the same way as we make
|
||||
# the zip bundles for ALL other OSes.
|
||||
@@ -20,14 +13,14 @@ else
|
||||
Q = @
|
||||
endif
|
||||
|
||||
AWK = "awk"
|
||||
ROOT_DIR := $(shell pwd)
|
||||
BIN_DIR = "$(ROOT_DIR)/bin"
|
||||
SRC_DIR = "$(ROOT_DIR)/src"
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
AWK = "awk"
|
||||
ROOT_DIR := $(shell pwd)
|
||||
BIN_DIR = "$(ROOT_DIR)/bin"
|
||||
SRC_DIR = "$(ROOT_DIR)/src"
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||
TTD = openttd.exe
|
||||
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
|
||||
TTD = openttd.exe
|
||||
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
|
||||
|
||||
all:
|
||||
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
|
||||
|
106
Makefile.src.in
106
Makefile.src.in
@@ -1,43 +1,32 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
CC_HOST = !!CC_HOST!!
|
||||
CXX_HOST = !!CXX_HOST!!
|
||||
CC_BUILD = !!CC_BUILD!!
|
||||
CXX_BUILD = !!CXX_BUILD!!
|
||||
WINDRES = !!WINDRES!!
|
||||
STRIP = !!STRIP!!
|
||||
CFLAGS = !!CFLAGS!!
|
||||
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
||||
CXXFLAGS = !!CXXFLAGS!!
|
||||
CXXFLAGS_BUILD = !!CXXFLAGS_BUILD!!
|
||||
LIBS = !!LIBS!!
|
||||
LDFLAGS = !!LDFLAGS!!
|
||||
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
|
||||
ROOT_DIR = !!ROOT_DIR!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
LANG_DIR = !!LANG_DIR!!
|
||||
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
|
||||
LANG_OBJS_DIR = !!LANG_OBJS_DIR!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
SCRIPT_SRC_DIR = !!SCRIPT_SRC_DIR!!
|
||||
MEDIA_DIR = !!MEDIA_DIR!!
|
||||
TTD = !!TTD!!
|
||||
STRGEN = !!STRGEN!!
|
||||
ENDIAN_CHECK = !!ENDIAN_CHECK!!
|
||||
DEPEND = !!DEPEND!!
|
||||
ENDIAN_FORCE = !!ENDIAN_FORCE!!
|
||||
OS = !!OS!!
|
||||
STAGE = !!STAGE!!
|
||||
MAKEDEPEND = !!MAKEDEPEND!!
|
||||
CFLAGS_MAKEDEP = !!CFLAGS_MAKEDEP!!
|
||||
SORT = !!SORT!!
|
||||
REVISION = !!REVISION!!
|
||||
AWK = !!AWK!!
|
||||
CC_HOST = !!CC_HOST!!
|
||||
CXX_HOST = !!CXX_HOST!!
|
||||
CC_BUILD = !!CC_BUILD!!
|
||||
CXX_BUILD = !!CXX_BUILD!!
|
||||
WINDRES = !!WINDRES!!
|
||||
STRIP = !!STRIP!!
|
||||
CFLAGS = !!CFLAGS!!
|
||||
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
||||
LIBS = !!LIBS!!
|
||||
LDFLAGS = !!LDFLAGS!!
|
||||
ROOT_DIR = !!ROOT_DIR!!
|
||||
BIN_DIR = !!BIN_DIR!!
|
||||
LANG_DIR = !!LANG_DIR!!
|
||||
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
|
||||
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
SCRIPT_SRC_DIR=!!SCRIPT_SRC_DIR!!
|
||||
MEDIA_DIR = !!MEDIA_DIR!!
|
||||
TTD = !!TTD!!
|
||||
STRGEN = !!STRGEN!!
|
||||
ENDIAN_CHECK = !!ENDIAN_CHECK!!
|
||||
ENDIAN_FORCE = !!ENDIAN_FORCE!!
|
||||
OS = !!OS!!
|
||||
STAGE = !!STAGE!!
|
||||
MAKEDEPEND = !!MAKEDEPEND!!
|
||||
CFLAGS_MAKEDEP= !!CFLAGS_MAKEDEP!!
|
||||
SORT = !!SORT!!
|
||||
REVISION = !!REVISION!!
|
||||
AWK = !!AWK!!
|
||||
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
|
||||
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
|
||||
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
|
||||
@@ -109,7 +98,7 @@ REV_NR := 0
|
||||
endif
|
||||
|
||||
# This helps to recompile if flags change
|
||||
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CXXFLAGS) $(CFLAGS)" ]; then echo "$(CXXFLAGS) $(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
|
||||
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CFLAGS)" ]; then echo "$(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
|
||||
RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi )
|
||||
RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi )
|
||||
|
||||
@@ -138,18 +127,18 @@ endif
|
||||
|
||||
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.rc=%.rc)'
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
$(Q)touch $@
|
||||
|
||||
else
|
||||
@@ -162,18 +151,11 @@ ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),)
|
||||
-include Makefile.dep
|
||||
endif
|
||||
|
||||
ifeq ("$(SRC_OBJS_DIR)/$(DEPEND)","$(MAKEDEPEND)")
|
||||
DEP := $(MAKEDEPEND)
|
||||
$(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp
|
||||
$(E) '$(STAGE) Compiling and linking $(DEPEND)'
|
||||
$(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $<
|
||||
endif
|
||||
|
||||
# Make sure that only 'make depend' ALWAYS triggers a recheck
|
||||
ifeq ($(filter depend, $(MAKECMDGOALS)),)
|
||||
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) $(DEP)
|
||||
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE)
|
||||
else
|
||||
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(DEP) FORCE
|
||||
Makefile.dep: FORCE
|
||||
endif
|
||||
$(E) '$(STAGE) DEP CHECK (all files)'
|
||||
$(Q)rm -f Makefile.dep.tmp
|
||||
@@ -228,13 +210,9 @@ endif
|
||||
|
||||
# Compile all the files according to the targets
|
||||
|
||||
$(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
@@ -242,7 +220,7 @@ $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
|
||||
|
||||
$(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)'
|
||||
$(Q)$(WINDRES) -o $@ -I `basename $<` $<
|
||||
$(Q)$(WINDRES) -o $@ -I $(MEDIA_DIR) $<
|
||||
|
||||
$(BIN_DIR)/$(TTD): $(TTD)
|
||||
$(Q)cp $< $@
|
||||
@@ -273,15 +251,15 @@ endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
|
||||
|
||||
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
|
||||
$(E) '$(STAGE) Compiling and Linking $@'
|
||||
$(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $< -o $@
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
|
||||
|
||||
# Revision files
|
||||
|
||||
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
|
||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
|
||||
|
||||
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
|
||||
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/os/windows/ottdres.rc
|
||||
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
|
||||
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/ottdres.rc
|
||||
|
||||
FORCE:
|
||||
|
||||
@@ -289,10 +267,10 @@ depend: $(DEPS)
|
||||
|
||||
clean:
|
||||
$(E) '$(STAGE) Cleaning up object files'
|
||||
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
|
||||
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
|
||||
|
||||
mrproper: clean
|
||||
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc
|
||||
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/ottdres.rc
|
||||
|
||||
%.o:
|
||||
@echo '$(STAGE) No such source-file: $(@:%.o=%).[c|cpp|mm|rc]'
|
||||
|
@@ -1,93 +0,0 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
AILog.Info("0.7 API compatability in effect:");
|
||||
AILog.Info(" - AITown::GetLastMonthProduction's behaviour has slightly changed.");
|
||||
AILog.Info(" - AISubsidy::GetDestination returns STATION_INVALID for awarded subsidies.");
|
||||
AILog.Info(" - AISubsidy::GetSource returns STATION_INVALID for awarded subsidies.");
|
||||
|
||||
AISign.GetMaxSignID <- function()
|
||||
{
|
||||
local list = AISignList();
|
||||
local max_id = 0;
|
||||
foreach (id, d in list) {
|
||||
if (id > max_id) max_id = id;
|
||||
}
|
||||
return max_id;
|
||||
}
|
||||
|
||||
AITile.GetHeight <- function(tile)
|
||||
{
|
||||
if (!AIMap.IsValidTile(tile)) return -1;
|
||||
|
||||
return AITile.GetCornerHeight(tile, AITile.CORNER_N);
|
||||
}
|
||||
|
||||
AIOrder.ChangeOrder <- function(vehicle_id, order_position, order_flags)
|
||||
{
|
||||
return AIOrder.SetOrderFlags(vehicle_id, order_position, order_flags);
|
||||
}
|
||||
|
||||
AIWaypoint.WAYPOINT_INVALID <- 0xFFFF;
|
||||
|
||||
AISubsidy.SourceIsTown <- function(subsidy_id)
|
||||
{
|
||||
if (!AISubsidy.IsValidSubsidy(subsidy_id) || AISubsidy.IsAwarded(subsidy_id)) return false;
|
||||
|
||||
return AISubsidy.GetSourceType(subsidy_id) == AISubsidy.SPT_TOWN;
|
||||
}
|
||||
|
||||
AISubsidy.GetSource <- function(subsidy_id)
|
||||
{
|
||||
if (!AISubsidy.IsValidSubsidy(subsidy_id)) return AIBaseStation.STATION_INVALID;
|
||||
|
||||
if (AISubsidy.IsAwarded(subsidy_id)) {
|
||||
return AIBaseStation.STATION_INVALID;
|
||||
}
|
||||
|
||||
return AISubsidy.GetSourceIndex(subsidy_id);
|
||||
}
|
||||
|
||||
AISubsidy.DestinationIsTown <- function(subsidy_id)
|
||||
{
|
||||
if (!AISubsidy.IsValidSubsidy(subsidy_id) || AISubsidy.IsAwarded(subsidy_id)) return false;
|
||||
|
||||
return AISubsidy.GetDestinationType(subsidy_id) == AISubsidy.SPT_TOWN;
|
||||
}
|
||||
|
||||
AISubsidy.GetDestination <- function(subsidy_id)
|
||||
{
|
||||
if (!AISubsidy.IsValidSubsidy(subsidy_id)) return AIBaseStation.STATION_INVALID;
|
||||
|
||||
if (AISubsidy.IsAwarded(subsidy_id)) {
|
||||
return AIBaseStation.STATION_INVALID;
|
||||
}
|
||||
|
||||
return AISubsidy.GetDestinationIndex(subsidy_id);
|
||||
}
|
||||
|
||||
AITown.GetMaxProduction <- function(town_id, cargo_id)
|
||||
{
|
||||
return AITown.GetLastMonthProduction(town_id, cargo_id);
|
||||
}
|
||||
|
||||
AIRail.RemoveRailWaypoint <- function(tile)
|
||||
{
|
||||
return AIRail.RemoveRailWaypointTileRect(tile, tile, true);
|
||||
}
|
||||
|
||||
AIRail.RemoveRailStationTileRect <- function(tile, tile2)
|
||||
{
|
||||
return AIRail.RemoveRailStationTileRectangle(tile, tile2, false);
|
||||
}
|
||||
|
||||
AIVehicle.SkipToVehicleOrder <- function(vehicle_id, order_position)
|
||||
{
|
||||
return AIOrder.SkipToOrder(vehicle_id, order_position);
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
@@ -805,16 +805,6 @@ function Regression::Marine()
|
||||
print(" IsCanalTile(): " + AIMarine.IsCanalTile(32127));
|
||||
print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.COMPANY_SELF));
|
||||
|
||||
local list = AIBuoyList();
|
||||
print("");
|
||||
print("--AIBuoyList--");
|
||||
print(" Count(): " + list.Count());
|
||||
print(" Location ListDump:");
|
||||
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
|
||||
print(" " + i);
|
||||
}
|
||||
print("");
|
||||
|
||||
print(" RemoveWaterDepot(): " + AIMarine.RemoveWaterDepot(28479));
|
||||
print(" RemoveDock(): " + AIMarine.RemoveDock(29253));
|
||||
print(" RemoveBuoy(): " + AIMarine.RemoveBuoy(28481));
|
||||
@@ -838,37 +828,14 @@ function Regression::Order()
|
||||
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
|
||||
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 1));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_UNLOAD));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_FULL_LOAD));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_SERVICE_IF_NEEDED));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_STOP_IN_DEPOT));
|
||||
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(0, AIOrder.AIOF_SERVICE_IF_NEEDED | AIOrder.AIOF_GOTO_NEAREST_DEPOT));
|
||||
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_LOAD_PERCENTAGE, AIOrder.CF_EQUALS));
|
||||
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_RELIABILITY, AIOrder.CF_IS_TRUE));
|
||||
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_REQUIRES_SERVICE, AIOrder.CF_IS_FALSE));
|
||||
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_AGE, AIOrder.CF_INVALID));
|
||||
print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1));
|
||||
print(" IsGotoStationOrder(): " + AIOrder.IsGotoStationOrder(12, 1));
|
||||
print(" IsGotoDepotOrder(): " + AIOrder.IsGotoDepotOrder(12, 1));
|
||||
print(" IsGotoWaypointOrder(): " + AIOrder.IsGotoWaypointOrder(12, 1));
|
||||
print(" IsConditionalOrder(): " + AIOrder.IsConditionalOrder(12, 1));
|
||||
print(" IsCurrentOrderPartOfOrderList(): " + AIOrder.IsCurrentOrderPartOfOrderList(12));
|
||||
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
|
||||
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33416, AIOrder.AIOF_TRANSFER));
|
||||
print(" InsertOrder(): " + AIOrder.InsertOrder(12, 0, 33416, AIOrder.AIOF_TRANSFER));
|
||||
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
|
||||
print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1));
|
||||
print(" IsGotoStationOrder(): " + AIOrder.IsGotoStationOrder(12, 1));
|
||||
print(" IsGotoDepotOrder(): " + AIOrder.IsGotoDepotOrder(12, 1));
|
||||
print(" IsGotoWaypointOrder(): " + AIOrder.IsGotoWaypointOrder(12, 1));
|
||||
print(" IsConditionalOrder(): " + AIOrder.IsConditionalOrder(12, 1));
|
||||
print(" IsCurrentOrderPartOfOrderList(): " + AIOrder.IsCurrentOrderPartOfOrderList(12));
|
||||
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 0));
|
||||
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
|
||||
print(" GetOrderJumpTo(): " + AIOrder.GetOrderJumpTo(12, 1));
|
||||
print(" RemoveOrder(): " + AIOrder.RemoveOrder(12, 0));
|
||||
print(" SetOrderFlags(): " + AIOrder.SetOrderFlags(12, 0, AIOrder.AIOF_FULL_LOAD));
|
||||
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 0));
|
||||
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 0));
|
||||
print(" CopyOrders(): " + AIOrder.CopyOrders(12, 1));
|
||||
print(" CopyOrders(): " + AIOrder.CopyOrders(13, 12));
|
||||
@@ -988,7 +955,7 @@ function Regression::Rail()
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
|
||||
print(" RemoveRailStationTileRectangle():" + AIRail.RemoveRailStationTileRectangle(7959, 7959, false));
|
||||
print(" RemoveRailStationTileRect(): " + AIRail.RemoveRailStationTileRect(7959, 7959));
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
|
||||
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
|
||||
@@ -1228,7 +1195,7 @@ function Regression::TileList()
|
||||
list.AddRectangle(34436, 256 * 2 + 34436 + 8);
|
||||
print(" Count(): " + list.Count());
|
||||
|
||||
list.Valuate(AITile.GetCornerHeight, AITile.CORNER_N);
|
||||
list.Valuate(AITile.GetHeight);
|
||||
print(" Height(): done");
|
||||
print(" Count(): " + list.Count());
|
||||
print(" ListDump:");
|
||||
@@ -1660,15 +1627,15 @@ function Regression::Vehicle()
|
||||
function Regression::PrintSubsidy(subsidy_id)
|
||||
{
|
||||
print(" --Subsidy (" + subsidy_id + ") --");
|
||||
print(" IsValidSubsidy(): " + AISubsidy.IsValidSubsidy(subsidy_id));
|
||||
print(" IsAwarded(): " + AISubsidy.IsAwarded(subsidy_id));
|
||||
print(" GetAwardedTo(): " + AISubsidy.GetAwardedTo(subsidy_id));
|
||||
print(" GetExpireDate(): " + AISubsidy.GetExpireDate(subsidy_id));
|
||||
print(" GetSourceType(): " + AISubsidy.GetSourceType(subsidy_id));
|
||||
print(" GetSourceIndex(): " + AISubsidy.GetSourceIndex(subsidy_id));
|
||||
print(" GetDestinationType(): " + AISubsidy.GetDestinationType(subsidy_id));
|
||||
print(" GetDestinationIndex(): " + AISubsidy.GetDestinationIndex(subsidy_id));
|
||||
print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id));
|
||||
print(" IsValidSubsidy(): " + AISubsidy.IsValidSubsidy(subsidy_id));
|
||||
print(" IsAwarded(): " + AISubsidy.IsAwarded(subsidy_id));
|
||||
print(" GetAwardedTo(): " + AISubsidy.GetAwardedTo(subsidy_id));
|
||||
print(" GetExpireDate(): " + AISubsidy.GetExpireDate(subsidy_id));
|
||||
print(" SourceIsTown(): " + AISubsidy.SourceIsTown(subsidy_id));
|
||||
print(" GetSource(): " + AISubsidy.GetSource(subsidy_id));
|
||||
print(" DestionationIsTown(): " + AISubsidy.DestinationIsTown(subsidy_id));
|
||||
print(" GetDestionation(): " + AISubsidy.GetDestination(subsidy_id));
|
||||
print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id));
|
||||
}
|
||||
|
||||
|
||||
@@ -1678,15 +1645,12 @@ function Regression::Start()
|
||||
this.Std();
|
||||
this.Base();
|
||||
this.List();
|
||||
|
||||
/* Do this first as it gains maximum loan (which is faked to quite a lot). */
|
||||
this.Company();
|
||||
|
||||
this.Airport();
|
||||
this.Bridge();
|
||||
this.BridgeList();
|
||||
this.Cargo();
|
||||
this.CargoList();
|
||||
this.Company();
|
||||
this.Engine();
|
||||
this.EngineList();
|
||||
this.Group();
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,6 @@ class Regression extends AIInfo {
|
||||
function GetShortName() { return "REGR"; }
|
||||
function GetDescription() { return "This runs regression-tests on all commands. On the same map the result should always be the same."; }
|
||||
function GetVersion() { return 1; }
|
||||
function GetAPIVersion() { return "1.0"; }
|
||||
function GetDate() { return "2007-03-18"; }
|
||||
function CreateInstance() { return "Regression"; }
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
@@ -24,7 +24,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
|
||||
OPENTTDD.GRF = 2e1f3667175e8eeb013ea35881ecffb7
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -1,19 +0,0 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original sounds as on the Transport
|
||||
; Tycoon Deluxe DOS CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos
|
||||
shortname = TTDO
|
||||
version = 0
|
||||
description = Original Transport Tycoon Deluxe DOS edition sounds
|
||||
|
||||
[files]
|
||||
samples = SAMPLE.CAT
|
||||
|
||||
[md5s]
|
||||
SAMPLE.CAT = 422ea3dd074d2859bb51639a6e0e85da
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
@@ -24,7 +24,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
|
||||
OPENTTDD.GRF = 2e1f3667175e8eeb013ea35881ecffb7
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -24,7 +24,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTDW.GRF = 80346ea80de167068cfb975f93963941
|
||||
OPENTTDW.GRF = a73ff4dce8936fadc02dea183afad638
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -1,19 +0,0 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original sounds as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDO
|
||||
version = 0
|
||||
description = Original Transport Tycoon Deluxe Windows edition sounds
|
||||
|
||||
[files]
|
||||
samples = SAMPLE.CAT
|
||||
|
||||
[md5s]
|
||||
SAMPLE.CAT = 9212e81e72badd4bbe1eaeae66458e10
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
@@ -1,48 +0,0 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents more or less nothingness
|
||||
;
|
||||
[metadata]
|
||||
name = NoMusic
|
||||
shortname = NOMU
|
||||
version = 0
|
||||
description = A music pack without actual music
|
||||
|
||||
[files]
|
||||
theme =
|
||||
old_0 =
|
||||
old_1 =
|
||||
old_2 =
|
||||
old_3 =
|
||||
old_4 =
|
||||
old_5 =
|
||||
old_6 =
|
||||
old_7 =
|
||||
old_8 =
|
||||
old_9 =
|
||||
new_0 =
|
||||
new_1 =
|
||||
new_2 =
|
||||
new_3 =
|
||||
new_4 =
|
||||
new_5 =
|
||||
new_6 =
|
||||
new_7 =
|
||||
new_8 =
|
||||
new_9 =
|
||||
ezy_0 =
|
||||
ezy_1 =
|
||||
ezy_2 =
|
||||
ezy_3 =
|
||||
ezy_4 =
|
||||
ezy_5 =
|
||||
ezy_6 =
|
||||
ezy_7 =
|
||||
ezy_8 =
|
||||
ezy_9 =
|
||||
|
||||
[md5s]
|
||||
|
||||
[names]
|
||||
|
||||
[origin]
|
@@ -1,94 +0,0 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original music as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDW
|
||||
version = 1
|
||||
description = Original Transport Tycoon Deluxe Windows edition music
|
||||
|
||||
[files]
|
||||
theme = GM_TT00.GM
|
||||
old_0 = GM_TT02.GM
|
||||
old_1 = GM_TT06.GM
|
||||
old_2 = GM_TT03.GM
|
||||
old_3 = GM_TT12.GM
|
||||
old_4 = GM_TT08.GM
|
||||
old_5 = GM_TT13.GM
|
||||
old_6 = GM_TT14.GM
|
||||
old_7 = GM_TT19.GM
|
||||
old_8 =
|
||||
old_9 =
|
||||
new_0 = GM_TT04.GM
|
||||
new_1 = GM_TT01.GM
|
||||
new_2 = GM_TT05.GM
|
||||
new_3 = GM_TT15.GM
|
||||
new_4 = GM_TT11.GM
|
||||
new_5 = GM_TT16.GM
|
||||
new_6 = GM_TT09.GM
|
||||
new_7 =
|
||||
new_8 =
|
||||
new_9 =
|
||||
ezy_0 = GM_TT18.GM
|
||||
ezy_1 = GM_TT19.GM
|
||||
ezy_2 = GM_TT21.GM
|
||||
ezy_3 = GM_TT17.GM
|
||||
ezy_4 = GM_TT20.GM
|
||||
ezy_5 = GM_TT07.GM
|
||||
ezy_6 =
|
||||
ezy_7 =
|
||||
ezy_8 =
|
||||
ezy_9 =
|
||||
|
||||
[md5s]
|
||||
GM_TT00.GM = 45cfec1b9d8c7a0ad45e755833cbf221
|
||||
GM_TT01.GM = ab14ed3392d848abd2a2e90a9d75d121
|
||||
GM_TT02.GM = dd4f696e4be5987ce738257b08b50171
|
||||
GM_TT03.GM = a1bfde23343df9e4063419bf29c166b8
|
||||
GM_TT04.GM = 4e6943aa0c455203d76c79389054747d
|
||||
GM_TT05.GM = cee281cb85a2e2343552d97640545a47
|
||||
GM_TT06.GM = 26d1de5efa8675f94065784e9d539e49
|
||||
GM_TT07.GM = 6f2691e17558f552ec4c565e4ab7139c
|
||||
GM_TT08.GM = a42bf2cb3340a822f1a69646fc7a487d
|
||||
GM_TT09.GM = eb35761a58a8df3c59ed8929cce13916
|
||||
GM_TT10.GM = 42fecd686720a785d20a78590c466a82
|
||||
GM_TT11.GM = 50ef1ef02e49d2112786dd45e69dc3ee
|
||||
GM_TT12.GM = 4ce707a0e0e72419f0681dd9bd95271b
|
||||
GM_TT13.GM = e765753be29d889ec818f38009103619
|
||||
GM_TT14.GM = 270e2d63bd32b95a4d007ce15a6ce45f
|
||||
GM_TT15.GM = 89e116a1c0c69f1845cc903a9bfbe460
|
||||
GM_TT16.GM = f824e2371b3bedfe61aad4b9c62dd6be
|
||||
GM_TT17.GM = 1b23eebb0796c1ab99cd97fa7082cf7b
|
||||
GM_TT18.GM = 15650de3bad645d0e88c4f5c7a2df92a
|
||||
GM_TT19.GM = 7aec079e15bd09588660b85545ac4dfc
|
||||
GM_TT20.GM = 1509097889dee617aa1e9a1738a5a930
|
||||
GM_TT21.GM = a8d0aaad02e1a762d8d54cf81da56bab
|
||||
|
||||
[names]
|
||||
GM_TT00.GM = Tycoon DELUXE Theme
|
||||
GM_TT01.GM = Snarl Up
|
||||
GM_TT02.GM = Easy Driver
|
||||
GM_TT03.GM = Little Red Diesel
|
||||
GM_TT04.GM = City Groove
|
||||
GM_TT05.GM = Aliens Ate My Railway
|
||||
GM_TT06.GM = Stoke It
|
||||
GM_TT07.GM = Don't Walk!
|
||||
GM_TT08.GM = Sawyer's Tune
|
||||
GM_TT09.GM = Fell Apart On Me
|
||||
GM_TT10.GM = Can't Get There From Here
|
||||
GM_TT11.GM = Hard Drivin'
|
||||
GM_TT12.GM = Road Hog
|
||||
GM_TT13.GM = Hold That Train!
|
||||
GM_TT14.GM = Broomer's Oil Rag
|
||||
GM_TT15.GM = Goss Groove
|
||||
GM_TT16.GM = Small Town
|
||||
GM_TT17.GM = Cruise Control
|
||||
GM_TT18.GM = Stroll On
|
||||
GM_TT19.GM = Funk Central
|
||||
GM_TT20.GM = Jammit
|
||||
GM_TT21.GM = Movin' On
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
141
changelog.txt
141
changelog.txt
@@ -1,144 +1,3 @@
|
||||
1.0.0-beta1 (2009-12-24)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Music replacement sets, like graphics and sound replacement sets (r18608)
|
||||
- Feature: Add shading and unshading of windows [FS#2943] (r18588)
|
||||
- Feature: Initially select the last joined server when going to the server list [FS#3311] (r18578)
|
||||
- Feature: Additional map variety option for TGP landscape generator (r18541)
|
||||
- Feature: Add the possibility to not make new tree tiles in-game (r18522)
|
||||
- Feature: Moving of AIs in the AI configuration window [FS#3359] (r18516)
|
||||
- Feature: Make maximum pathfinder penalties for finding depots customisable, also increase it slightly to 20 tiles worth of penalties (r18481)
|
||||
- Feature: [strgen] Allow G and P to 'select' substrings of STRINGn for getting their gender (r18444)
|
||||
- Feature: Make penalty for road stop occupancy user configurable (r18404)
|
||||
- Feature: Fully scalable, by font size and content, GUI and improved right-to-left language support [FS#1905] (r15800-r18350)
|
||||
- Feature: Set the start time of a timetable (r18294)
|
||||
- Feature: Show the expected arrival/departure dates in the timetable window (r18285)
|
||||
- Feature: [NewGRF] Add new price bases for removing industries, building/removing unmovables (new objects), building/removing rail-waypoints/buoys, interacting with town-authority, building foundations, funding primary industries (when not prospecting) and towns (r18283)
|
||||
- Feature: Founding towns in-game (r18281)
|
||||
- Feature: [NewGRF] Make price base multipliers related to vehicles only apply to the GRF locally, if it defines engines of that type itself (r18268)
|
||||
- Feature: [NewGRF] CB 36 for roadvehicle property 09 'running cost factor' (r18011)
|
||||
- Feature: Non-automatic screenshot name can be entered in console (r17938)
|
||||
- Feature: Make it possible to disable background saving, only via the config file/in game console though [FS#2633] (r17893)
|
||||
- Feature: Automatically select the railtype with the most engines for the autoreplace window/try to avoid showing an empty autoreplace list [FS#1760] (r17892)
|
||||
- Feature: Show maximum tractive effort in the 'exclusive test'/'early offer'/'engine preview' window [FS#1619] (r17891)
|
||||
- Feature: Double clicking on a NewGRF opens the parameters window (r17890)
|
||||
- Feature: Double click on a item in the refit list refits without the need to click on the refit button (r17889)
|
||||
- Feature: [NewGRF] Textstack support for CB 37 [FS#1862] (r17802)
|
||||
- Feature: [OSX] Implement automatic fallback font selection for OSX (r17794)
|
||||
- Feature: Translatable base sound/graphics set descriptions (r17790)
|
||||
- Feature: Show the nickname of the person you are PMing [FS#3116] (r17741)
|
||||
- Feature: [OSX] Add a MIDI driver using Cocoa/CoreAudio [FS#3223] (r17710)
|
||||
- Feature: [OSX] Implement clipboard support for OS X [FS#2053] (r17708)
|
||||
- Feature: Possibility to choose (randomise or enter custom) town name before its creation (r17612)
|
||||
- Feature: [NewGRF] Callbacks for houses to disable drawing foundations and to disable slope changes, like industry tile callbacks 30 and 3C (r17558)
|
||||
- Feature: [NewGRF] Implement callback 145 (custom station rating) (r17547)
|
||||
- Feature: Filtering in Add-NewGRF dialog (r17541)
|
||||
- Feature: Add the date to all logging in the (real, not in-game) console if show_date_in_console is set. For dedicated server binaries the default is 'on', for the rest it is 'off' [FS#2339] (r17488)
|
||||
- Feature: Reconnect console command (r17466)
|
||||
- Feature: Allow building rail stations over existing rail without signals but will upgrade normal rail to electrified rail if necessary (r17460)
|
||||
- Feature: Crash logger for all Unixy OSes in a similar way as the Windows crash logger (r17453)
|
||||
- Feature: Open the 'Rename group' dialog after creating new group (r17281)
|
||||
- Feature: [NoAI] Older API compatability wrappers, so one can get the 0.7 API in later versions while keeping the real API clean (r17214)
|
||||
- Feature: The Windows installer can now optionnaly download OpenGFX and OpenSFX (r17191)
|
||||
- Feature: Sort vehicle lists on (timetable) delay [FS#2945] (r17182)
|
||||
- Feature: Localised decimal separator (r17157)
|
||||
- Feature: Improved the sample rate conversion a bit (r17146)
|
||||
- Feature: Allow higher sample rate and higher quality samples (r17140)
|
||||
- Feature: Sound replacement sets, like graphics replacement sets (r17139)
|
||||
- Feature: Multi tile waypoints (r17002, r17000, r16993)
|
||||
- Feature: [NewGRF] Turn variable 0E/8E (vertical offset for trains in depot) and variable 1E/9E bit 3 (wagon width in depot) into grf-local variables (r16867)
|
||||
- Feature: Highlight whole articulated vehicles in traindepot instead of only the first part (r16818)
|
||||
- Feature: Ability to enter server and company password via command line when joining a server [FS#570] (r16555)
|
||||
- Feature: Give the town generator a slight tendency to build towns near water by not discarding watery random tiles but by searching for near land [FS#2635] (r16147)
|
||||
- Feature: Configurable digit group separator per language with user override (r16129)
|
||||
- Feature: Make the first 4 rail building tools behave more like autorail (r16095)
|
||||
- Feature: Allow sorting stations by the lowest cargo rating instead of only by the highest cargo rating [FS#597] (r16045)
|
||||
- Feature: Allow filtering of vehicle purchase lists by cargo [FS#1941] (r16042)
|
||||
- Feature: Allow (per order) to let a train stop at the near end, middle or far end of a platform from the point of view of the driver of the train that enters the station (r16037)
|
||||
- Feature: Listen on multiple IPs/sockets and register all IPs to the master server (r16014, r15975, r15973, r15971)
|
||||
- Feature: Full IPv6 support (r16000)
|
||||
- Feature: Allow train vehicles to be shorten to 1/8 length, even if not at the end of the train (r15793)
|
||||
- Add: [NoAI] AIOrder::AIOF_GOTO_NEAREST_DEPOT for goto nearest depot orders (r18518)
|
||||
- Add: [NoAI] Enable the squirrel standard math library (r17498)
|
||||
- Add: [NoAI] A vehicle list for all vehicle that are ordered to a specific depot (r17486)
|
||||
- Add: [NoAI] AISubsidy::SubsidyParticipantType, AISubsidy::GetSourceType, AISubsidy::GetSourceIndex, AISubsidy::GetDestinationType, AISubsidy::GetDestinationIndex for better subsidy management (r17115)
|
||||
- Change: Forbid industries to clear sea/river when leveling land (r18554)
|
||||
- Change: Make it visible when you are to pass the next signal on danger and possible to cancel it (r18515)
|
||||
- Change: Move the 'check online content' button from the AI list window to the AI configuration window. This makes it consistent with the NewGRF windows [FS#3340] (r18507)
|
||||
- Change: Use zł instead of zl for the Polish Zloty [FS#565] (r18434)
|
||||
- Change: Show different texts in town GUI when the town does not need food the whole year to grow (r18433)
|
||||
- Change: Make road vehicles behave more like trains 'around' stations and use pathfinder penalties to determine to which 'part' to go (r18382)
|
||||
- Change: Do not split up articulated vehicles in the train details view. If an articulated vehicle it too 'wide' draw the information on the next line and if there are multiple cargos split that over multiple lines too [FS#2923] (r18344)
|
||||
- Change: Make pause on join pause during the whole joining (including download) phase [FS#3287] (r18054)
|
||||
- Change: Prefer extmidi over allegro midi and allegro over null driver [FS#3272] (r17875)
|
||||
- Change: Several improvements to the performance of CargoPackets/CargoLists; time spent in those functions reduces by 55-85% (r17840, r17836, r17818, r17814, r17812, r17801, r17736, r17735, r17733, r17731, r17730)
|
||||
- Change: [SDL] make 'update the video card'-process asynchronious. Improvements of 2%-25% (real time) during fast forward on dual core/hyperthreading-enabled CPUs (r17776)
|
||||
- Change: [NoAI] Make AIEngine:CanRefitCargo() not report refittability to Mail by default for aircraft. It is not necessarily true, and the special case of carrying both passenger&mail is better handled by AIs themself than by the API (r17719)
|
||||
- Change: [OSX] Do not use deprecated methods/undocumented functions [FS#1411] (r17712, r17711)
|
||||
- Change: Make SDL's video driver more likely to be loaded than Allegro's video driver; SDL seems to perform better (r17583)
|
||||
- Change: Do not assume that there is always 'another' industry tile after two '0x18' industry tiles (r17521)
|
||||
- Change: Make the performance ratings harder to exploit; only count profitable vehicles and recently serviced stations [FS2459] (r17485)
|
||||
- Change: When removing a station or waypoint keep the rail unless Ctrl is pressed. This makes the behaviour consistent between the two (r17471)
|
||||
- Change: Show the client id in join messages at the server (r17467)
|
||||
- Change: NewGRF price modifiers now take effect everytime when loading NewGRFs instead of once on gamestart (r17433)
|
||||
- Change: Make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files (r17241)
|
||||
- Change: Update MiniLZO to 2.0.3 (r17215)
|
||||
- Change: Update Squirrel to 2.2.3 (r17195)
|
||||
- Change: Remove UNICODE notice in windows installer (r17186)
|
||||
- Change: Apply the subsidy when subsidy's destination is in station's catchment area and cargo packets originate from subsidy's source [FS#265,FS#2094,FS#2589] (r17113)
|
||||
- Change: Subsidies are not bound to stations after awarding anymore, they still apply to town or industry, no matter what station is used for loading and unloading. Awarded subsidies from older savegames are lost [FS#1134] (r17113)
|
||||
- Change: [NoAI] Add AIBaseStation as a parentclass for AIStation and AIWaypoint, and move GetName, SetName and GetLocation to AIBaseStation (r17011)
|
||||
- Fix: Conditional orders were seen as 'valid' and as such aircraft with only conditional orders did not crash (r18615)
|
||||
- Fix: Pressing default for the starting year/snow line height edit boxes of the world generation windows did not work [FS#3398] (r18586)
|
||||
- Fix: [OSX] Try to get a generic RGB colour space if getting the system colour profile failed [FS#3198] (r18573)
|
||||
- Fix: [NewGRF] House property 15 did not work [FS#2613] (r18567)
|
||||
- Fix: Do not try to overtake a vehicle in a road station as overtaking in a station is not allowed [FS#3390] (r18561)
|
||||
- Fix: Make aircraft behave the same on autoreplace/autorenew as other vehicle types (r18553)
|
||||
- Fix: First do the time-since-last-service check and only then determine whether autoreplace needs to take place. This way they will not keep autoreplacing continuously on failure, but only after some timeout. Also check some minimal requirements (engine availability, refittability) and a heuristic for the needed money when sending vehicles for autoreplace [FS#1762] (r18551, r18549)
|
||||
- Fix: Do not account for path reservation costs when entering a signal block via a 'block' signal. This way you won't get double penalties, both red signals and reservation costs, for the block signalled tracks [FS#2722] (r18535)
|
||||
- Fix: [NewGRF] An industry NewGRF that defined a too small size for action0 prop 0A could cause a crash (r18527)
|
||||
- Fix: Allegro does not like to work with extmidi, so warn the user about that [FS#3272] (r18520)
|
||||
- Fix: When you pass a signal at danger, in a PBS controlled area, do not try to do the 'safe' thing and stop, but continue going; the user wanted the train to pass the signal at danger so (s)he has to suffer the consequences. Ofcourse one can always stop the train manually [FS#2891] (r18515)
|
||||
- Fix: No error message was created for the first fatal NewGRF error [FS#3368] (r18506)
|
||||
- Fix: Improve airport movement on several airports [FS#3169] (r18505)
|
||||
- Fix: Autoreplace and autorenew always reset their cargo sub type to 0. Now find a sub cargo type with the exact same name and use that, otherwise fallback to 0. So cargo sub types can be maintained via autoreplace *if* the new vehicle supports the same cargo sub type [FS#3159] (r18499)
|
||||
- Fix: Cloning of vehicles could create vehicles with invalid cargo sub types for the build year of the vehicle. Fall back to another cargo sub type with the exact same name, otherwise fallback to cargo sub type 0 [FS#2616] (r18498)
|
||||
- Fix: [NewGRF] Direction is accounted for long before motion counter is updated (r18479)
|
||||
- Fix: Moving vehicles around/selling vehicle in the train depot could create states that are not allowed by the NewGRF attach callback [FS#3146] (r18472, r18470)
|
||||
- Fix: Unselect an AI in the AI Settings window when it falls out of the range of active AIs [FS#3357] (r18436)
|
||||
- Fix: Road vehicles would not pick an empty drive through stop. Now they will *if* the penalty for driving around is less than the occupancy penalty [FS#1944] (r18404)
|
||||
- Fix: Long (articulated) road vehicles could block loading of others when the following road vehicle already got 'permission' to go to the next bay even when it could not reach it [FS#1495] (r18404)
|
||||
- Fix: The tree 'which one to draw' hash wasn't anywhere near random and thus showed a very visible repeated pattern when only one tree type was used [FS#3343] (r18398)
|
||||
- Fix: [NoAI] Make AIIndustryType::GetConstructionCost() return -1, if the industry is neither buildable nor prospectable (r18276)
|
||||
- Fix: Use free type ascender/descender metrics to position font offset correctly (r18096)
|
||||
- Fix: Make the 'pause' chat message when actually executing the pause command. This to prevent showing paused and especially unpaused to be shown when the state does not change. Output now mentions whether pause changes keep the game paused and what reasons for pausing there 'currently' are (r18052)
|
||||
- Fix: [NoAI] Improve behaviour of (AIEngine|AIEventEnginePreview)::GetCargoType() and AIEngine::CanRefitCargo() wrt. articulated vehicles (r17898)
|
||||
- Fix: [NewGRF] CB15 and CB36 (capacity) were not always called when they should [FS#3255] (r17897)
|
||||
- Fix: Invalidate cache of vehicle vars 40-43 after testruns of certain commands, that change them temporarily (r17894)
|
||||
- Fix: [OSX] The splash image was not displayed if the Quartz video driver was used (r17793)
|
||||
- Fix: Do not let aircraft drive a while over the grass when landing at high altitude airports [FS#3259] (r17762
|
||||
- Fix: Make the -c <config file> location relative to the current directory instead of the directory of the binary [FS#3247] (r17686)
|
||||
- Fix: Some semaphore signals fell outside of the signal GUI. Now the signals are properly centered which should make that problem go away [FS#3242] (r17657)
|
||||
- Fix: Some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor [FS#3219] (r17644)
|
||||
- Fix: Do not accept cargo produced in the same industry; generalise and improve the check used only for valuables (r17437)
|
||||
- Fix: Pay only for cargo actually delivered, not for all cargo unloaded at station; can differ with 'stockpiling' industries (r17436)
|
||||
- Fix: Improve movement of aircraft; do not make turns bigger then 45 degrees while in flight, do not move while turning on the ground (r17415, r17405)
|
||||
- Fix: Crash in order GUI when changing some orders with both the mouse and keyboard at the exact same time [FS#2859] (r17384)
|
||||
- Fix: Trains would not show smoke if the load/unload counter was not 0, though there does not seem to be a reason to check that variable anyhow anymore [FS#3162] (r17352)
|
||||
- Fix: One was not offered to take over bankrupt companies anymore; caused by the introduction NoAI, although NewAI had the same problem too [FS#2769] (r17345)
|
||||
- Fix: Minor improvements of the airport state machines (r17338, r17337, r17334)
|
||||
- Fix: Road vehicles forgetting their servicing order when the path takes them away (in bird distance) from their destination first [FS#3057] (r17333)
|
||||
- Fix: Mention of Ctrl modifier was missing from some tooltips [FS#3120] (r17300, r17297)
|
||||
- Fix: Keep vehicle news and viewports following vehicles, when autoreplacing/renewing them [FS#3048] (r17147)
|
||||
- Fix: Inconsistency between signs of stations and waypoints [FS#3081] (r17040)
|
||||
- Fix: NewGRF stations would be triggering assertions for waypoints all over the place when using the more advanced station types [FS#2996] (r16909)
|
||||
- Fix: Skipping a 'nearest depot order' because none could be found could cause multiple orders to get skipped [FS#2925] (r16457)
|
||||
- Fix: Makedepend cannot handle the amount of files we have and it also miss some dependencies. So use our custom implementation of makedepend (r16307)
|
||||
- Fix: Autopause and manual pausing conflict with eachother, new game + pause on new game + autopause make the game not unpause on the first join [FS#2864] (r16242)
|
||||
- Remove: [NoAI] AIVehicle::SkipToVehicleOrder as it was a duplicate of AIOrder.SkipToOrder (r18504)
|
||||
- Remove: OPF for RVs and NTP for trains; both the oldest path finders (r18362)
|
||||
- Remove: Support for gcc2. It has not been able to compile OTTD for months. All attempts to do another workaround failed (r16492)
|
||||
|
||||
|
||||
0.7.5 (2009-12-23)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
492
config.lib
492
config.lib
@@ -1,9 +1,3 @@
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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() {
|
||||
if [ $1 = "1" ]; then echo "$2"; fi
|
||||
@@ -11,7 +5,7 @@ log() {
|
||||
}
|
||||
|
||||
set_default() {
|
||||
released_version="1.0.0-beta1"
|
||||
released_version="0.7.5"
|
||||
|
||||
ignore_extra_parameters="0"
|
||||
# We set all kinds of defaults for params. Later on the user can override
|
||||
@@ -48,14 +42,13 @@ set_default() {
|
||||
enable_debug="0"
|
||||
enable_desync_debug="0"
|
||||
enable_profiling="0"
|
||||
enable_lto="0"
|
||||
enable_dedicated="0"
|
||||
enable_network="1"
|
||||
enable_static="1"
|
||||
enable_translator="0"
|
||||
enable_unicode="1"
|
||||
enable_assert="1"
|
||||
enable_strip="0"
|
||||
enable_assert="0"
|
||||
enable_strip="1"
|
||||
enable_universal="1"
|
||||
enable_osx_g5="0"
|
||||
enable_cocoa_quartz="1"
|
||||
@@ -68,8 +61,7 @@ set_default() {
|
||||
with_cocoa="1"
|
||||
with_zlib="1"
|
||||
with_png="1"
|
||||
enable_builtin_depend="1"
|
||||
with_makedepend="0"
|
||||
with_makedepend="1"
|
||||
with_direct_music="1"
|
||||
with_sort="1"
|
||||
with_iconv="1"
|
||||
@@ -118,7 +110,6 @@ set_default() {
|
||||
enable_debug
|
||||
enable_desync_debug
|
||||
enable_profiling
|
||||
enable_lto
|
||||
enable_dedicated
|
||||
enable_network
|
||||
enable_static
|
||||
@@ -137,7 +128,6 @@ set_default() {
|
||||
with_cocoa
|
||||
with_zlib
|
||||
with_png
|
||||
enable_builtin_depend
|
||||
with_makedepend
|
||||
with_direct_music
|
||||
with_sort
|
||||
@@ -153,7 +143,7 @@ set_default() {
|
||||
with_threads
|
||||
with_distcc
|
||||
with_ccache
|
||||
CC CXX CFLAGS CXXFLAGS LDFLAGS"
|
||||
CC CXX CFLAGS LDFLAGS"
|
||||
}
|
||||
|
||||
detect_params() {
|
||||
@@ -266,10 +256,6 @@ detect_params() {
|
||||
--enable-desync-debug=*) enable_desync_debug="$optarg";;
|
||||
--enable-profiling) enable_profiling="1";;
|
||||
--enable-profiling=*) enable_profiling="$optarg";;
|
||||
--enable-lto) enable_lto="1";;
|
||||
--enable-lto=*) enable_lto="$optarg";;
|
||||
--enable-ipo) enable_lto="1";;
|
||||
--enable-ipo=*) enable_lto="$optarg";;
|
||||
--enable-dedicated) enable_dedicated="1";;
|
||||
--enable-dedicated=*) enable_dedicated="$optarg";;
|
||||
--enable-network=*) enable_network="$optarg";;
|
||||
@@ -359,10 +345,6 @@ detect_params() {
|
||||
--without-psp-config) with_psp_config="0";;
|
||||
--with-psp-config=*) with_psp_config="$optarg";;
|
||||
|
||||
--disable-builtin-depend) enable_builtin_depend="0";;
|
||||
--enable-builtin-depend) enable_builtin_depend="2";;
|
||||
--enable-builtin-depend=*) enable_builtin_depend="$optarg";;
|
||||
|
||||
--with-makedepend) with_makedepend="2";;
|
||||
--without-makedepend) with_makedepend="0";;
|
||||
--with-makedepend=*) with_makedepend="$optarg";;
|
||||
@@ -405,7 +387,6 @@ detect_params() {
|
||||
CC=* | --CC=*) CC="$optarg";;
|
||||
CXX=* | --CXX=*) CXX="$optarg";;
|
||||
CFLAGS=* | --CFLAGS=*) CFLAGS="$optarg";;
|
||||
CXXFLAGS=* | --CXXFLAGS=*) CXXFLAGS="$optarg";;
|
||||
LDFLAGS=* | --LDFLAGS=*) LDFLAGS="$optarg";;
|
||||
|
||||
--ignore-extra-parameters) ignore_extra_parameters="1";;
|
||||
@@ -471,10 +452,10 @@ check_params() {
|
||||
log 1 " PREPROCESSOR is only available for OSX"
|
||||
exit 1
|
||||
fi
|
||||
# OS only allows DETECT, UNIX, OSX, FREEBSD, OPENBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
|
||||
# OS only allows DETECT, UNIX, OSX, FREEBSD, OPENBSD, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
|
||||
log 1 "configure: error: invalid option --os=$os"
|
||||
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
|
||||
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
|
||||
exit 1
|
||||
fi
|
||||
# cpu_type can be either 32 or 64
|
||||
@@ -516,11 +497,7 @@ check_params() {
|
||||
if [ "$enable_universal" = "0" ]; then
|
||||
log 1 "checking universal build... no"
|
||||
else
|
||||
if [ "$enable_universal" = "64" ]; then
|
||||
log 1 "checking universal build... yes (including 64 bits)"
|
||||
else
|
||||
log 1 "checking universal build... yes (without 64 bits)"
|
||||
fi
|
||||
log 1 "checking universal build... yes"
|
||||
fi
|
||||
|
||||
# Already detected by check_build
|
||||
@@ -536,14 +513,6 @@ check_params() {
|
||||
log 1 "checking strip... disabled"
|
||||
fi
|
||||
check_lipo
|
||||
|
||||
if [ "$enable_builtin_depend" != "0" ]; then
|
||||
log 1 "checking builtin depend... yes"
|
||||
makedepend="\$(SRC_OBJS_DIR)/\$(DEPEND)"
|
||||
else
|
||||
log 1 "checking builtin depend... no"
|
||||
fi
|
||||
|
||||
check_makedepend
|
||||
detect_cputype
|
||||
|
||||
@@ -602,70 +571,6 @@ check_params() {
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [ "$enable_lto" != "0" ]; then
|
||||
has_lto=`($cxx_build -dumpspecs 2>&1 | grep '\%{flto}') || ($cxx_build -help ipo 2>&1 | grep '\-ipo')`
|
||||
if [ -n "$has_lto" ]; then
|
||||
log 1 "using link time optimization... yes"
|
||||
else
|
||||
enable_lto="0"
|
||||
log 1 "using link time optimization... no"
|
||||
log 1 "WARNING: you selected link time optimization but it is not found."
|
||||
sleep 5
|
||||
fi
|
||||
else
|
||||
log 1 "using link time optimization... no"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$os" != "OSX" ] && [ "$with_osx_sysroot" != "0" ]; then
|
||||
if [ "$with_osx_sysroot" = "1" ]; then
|
||||
with_osx_sysroot="0"
|
||||
|
||||
log 1 "checking OSX sysroot... not OSX, skipping"
|
||||
else
|
||||
log 1 "configure: error: --with-osx-sysroot only works if OSX is the target"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$with_osx_sysroot" != "0" ]; then
|
||||
if [ "$enable_universal" = "0" ] && [ "$with_osx_sysroot" != "1" ] && [ "$with_osx_sysroot" != "2" ]; then
|
||||
# Sysroot manually specified? Check for usability
|
||||
log 1 "checking OSX sysroot... $with_osx_sysroot"
|
||||
if ! check_osx_sdk "$with_osx_sysroot"; then
|
||||
log 1 "Passed sysroot not found/not functional"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# If autodetect and no universal, use system default
|
||||
if [ "$with_osx_sysroot" = "1" ] && [ "$enable_universal" = "0" ]; then
|
||||
log 1 "checking OSX sysroot... no (use system default)"
|
||||
else
|
||||
log 1 "checking OSX sysroot... automatically"
|
||||
detect_osx_sdk
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$osx_sdk_path" ]; then
|
||||
if [ "$enable_universal" != "0" ]; then
|
||||
if [ -z "$osx_sdk_104_path" ]; then
|
||||
log 1 "WARNING: Could not find a usable 10.4u SDK, the resulting"
|
||||
log 1 "WARNING: binary will only run on OSX 10.5 or later"
|
||||
osx_sdk_104_path="$osx_sdk_path"
|
||||
fi
|
||||
OSX_SYSROOT="-isysroot $osx_sdk_104_path"
|
||||
OSX_LD_SYSROOT="-Wl,-syslibroot,$osx_sdk_104_path"
|
||||
else
|
||||
OSX_SYSROOT="-isysroot $osx_sdk_path"
|
||||
OSX_LD_SYSROOT="-Wl,-syslibroot,$osx_sdk_path"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [ "$os" = "OSX" ]; then
|
||||
log 1 "checking OSX sysroot... no (use system default)"
|
||||
fi
|
||||
fi
|
||||
|
||||
detect_allegro
|
||||
detect_sdl
|
||||
detect_cocoa
|
||||
@@ -868,6 +773,36 @@ check_params() {
|
||||
with_threads="0"
|
||||
fi
|
||||
|
||||
if [ "$os" != "OSX" ] && [ "$with_osx_sysroot" != "0" ]; then
|
||||
if [ "$with_osx_sysroot" = "1" ]; then
|
||||
with_osx_sysroot="0"
|
||||
|
||||
log 1 "checking OSX sysroot... not OSX, skipping"
|
||||
else
|
||||
log 1 "configure: error: --with-osx-sysroot only works if OSX is the target"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$with_osx_sysroot" != "0" ]; then
|
||||
if [ "$enable_universal" = "0" ] && [ "$with_osx_sysroot" != "1" ] && [ "$with_osx_sysroot" != "2" ]; then
|
||||
log 1 "checking OSX sysroot... $with_osx_sysroot"
|
||||
else
|
||||
# If autodetect and no universal, use system default
|
||||
if [ "$with_osx_sysroot" = "1" ] && [ "$enable_universal" = "0" ]; then
|
||||
log 1 "checking OSX sysroot... no (use system default)"
|
||||
with_osx_sysroot="0"
|
||||
else
|
||||
log 1 "checking OSX sysroot... automatically"
|
||||
with_osx_sysroot="3"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [ "$os" = "OSX" ]; then
|
||||
log 1 "checking OSX sysroot... no (use system default)"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$os" != "OSX" ] && [ "$with_application_bundle" != "0" ]; then
|
||||
if [ "$with_application_bundle" = "1" ]; then
|
||||
with_application_bundle="0"
|
||||
@@ -886,6 +821,7 @@ check_params() {
|
||||
fi
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
check_osx_sdk
|
||||
# Test on G5
|
||||
|
||||
if [ "$enable_osx_g5" != "0" ]; then
|
||||
@@ -1032,6 +968,8 @@ check_params() {
|
||||
menu_dir="`echo $menu_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
|
||||
fi
|
||||
|
||||
# "set_universal_binary_flags" needs to be before "detect_iconv"
|
||||
set_universal_binary_flags
|
||||
detect_iconv
|
||||
|
||||
if [ -n "$personal_dir" ]
|
||||
@@ -1081,40 +1019,23 @@ make_compiler_cflags() {
|
||||
# Params:
|
||||
# $1 - compiler
|
||||
# $2 - the current cflags
|
||||
# $3 - variable to finally write cflags to
|
||||
# $4 - the current cxxflags
|
||||
# $5 - variable to finally write cxxflags to
|
||||
# $6 - the current ldflags
|
||||
# $7 - variable to finally write ldflags to
|
||||
# $3 - variable to finally write to
|
||||
|
||||
flags="$2"
|
||||
cxxflags="$4"
|
||||
ldflags="$6"
|
||||
|
||||
if [ `basename $1 | cut -c 1-3` = "icc" ]; then
|
||||
if [ `echo $1 | cut -c 1-3` = "icc" ]; then
|
||||
# Enable some things only for certain ICC versions
|
||||
cc_version=`$1 -dumpversion | cut -c 1-4 | sed s@\\\.@@g`
|
||||
cc_version=`$1 -dumpversion | cut -c 1-4`
|
||||
|
||||
flags="$flags -rdynamic"
|
||||
ldflags="$ldflags -rdynamic"
|
||||
|
||||
if [ $cc_version -ge 101 ]; then
|
||||
if [ "$cc_version" = "10.1" ]; then
|
||||
flags="$flags -Wno-multichar"
|
||||
fi
|
||||
|
||||
if [ $cc_version -ge 110 ]; then
|
||||
if [ "$cc_version" = "11.0" ]; then
|
||||
# warning 1899: multicharacter character literal (potential portability problem) (e.g. 'FOOD')
|
||||
# vec report defaults to telling where it did loop vectorisation, which is not very important
|
||||
flags="$flags -vec-report=0 -wd873"
|
||||
|
||||
# Use c++0x mode so static_assert() is available
|
||||
cxxflags="$cxxflags -std=c++0x"
|
||||
fi
|
||||
|
||||
has_ipo=`$1 -help ipo | grep '\-ipo'`
|
||||
if [ "$enable_lto" != "0" ] && [ -n "$has_ipo" ]; then
|
||||
# Use IPO (only if we see IPO exists and is requested)
|
||||
flags="$flags -ipo"
|
||||
ldflags="$ldflags -ipo $CFLAGS"
|
||||
flags="$flags -vec-report=0 -wd1899"
|
||||
fi
|
||||
else
|
||||
# Enable some things only for certain GCC versions
|
||||
@@ -1127,6 +1048,8 @@ make_compiler_cflags() {
|
||||
|
||||
flags="$flags -Wall -Wno-multichar -Wsign-compare -Wundef"
|
||||
flags="$flags -Wwrite-strings -Wpointer-arith"
|
||||
flags="$flags -Wno-uninitialized"
|
||||
|
||||
flags="$flags -W -Wno-unused-parameter -Wformat=2"
|
||||
flags="$flags -Wredundant-decls"
|
||||
|
||||
@@ -1141,10 +1064,6 @@ make_compiler_cflags() {
|
||||
# break anything. So disable strict-aliasing to make the
|
||||
# compiler all happy.
|
||||
flags="$flags -fno-strict-aliasing"
|
||||
ldflags="$ldflags -fno-strict-aliasing"
|
||||
# Warn about casting-out 'const' with regular C-style cast.
|
||||
# The preferred way is const_cast<>() which doesn't warn.
|
||||
flags="$flags -Wcast-qual"
|
||||
fi
|
||||
|
||||
if [ $cc_version -ge 42 ]; then
|
||||
@@ -1153,59 +1072,22 @@ make_compiler_cflags() {
|
||||
# sure that they will not happen. It furthermore complains
|
||||
# about it's own optimized code in some places.
|
||||
flags="$flags -fno-strict-overflow"
|
||||
ldflags="$ldflags -fno-strict-overflow"
|
||||
fi
|
||||
|
||||
if [ $cc_version -ge 43 ]; then
|
||||
# Use gnu++0x mode so static_assert() is available.
|
||||
# Don't use c++0x, it breaks mingw (with gcc 4.4.0).
|
||||
cxxflags="$cxxflags -std=gnu++0x"
|
||||
fi
|
||||
|
||||
if [ $cc_version -ge 45 ]; then
|
||||
# Only GCC 4.5+ has (possibly) LTO
|
||||
has_lto=`$1 -dumpspecs | grep '\%{flto}'`
|
||||
if [ "$enable_lto" != "0" ] && [ -n "$has_lto" ]; then
|
||||
# Use LTO only if we see LTO exists and is requested
|
||||
flags="$flags -flto"
|
||||
ldflags="$ldflags -flto $2"
|
||||
fi
|
||||
fi
|
||||
|
||||
has_rdynamic=`$1 -dumpspecs | grep rdynamic`
|
||||
if [ -n "$has_rdynamic" ]; then
|
||||
# rdynamic is used to get useful stack traces from crash reports.
|
||||
flags="$flags -rdynamic"
|
||||
ldflags="$ldflags -rdynamic"
|
||||
fi
|
||||
fi
|
||||
|
||||
eval "$3=\"$flags\""
|
||||
eval "$5=\"$cxxflags\""
|
||||
eval "$7=\"$ldflags\""
|
||||
}
|
||||
|
||||
make_cflags_and_ldflags() {
|
||||
# General CFlags for BUILD
|
||||
CFLAGS_BUILD=""
|
||||
# Special CXXFlags for BUILD
|
||||
CXXFLAGS_BUILD=""
|
||||
# LDFLAGS for BUILD
|
||||
LDFLAGS_BUILD=""
|
||||
# General CFlags for HOST
|
||||
CFLAGS="$CFLAGS"
|
||||
# Special CXXFlags for HOST
|
||||
CXXFLAGS="$CXXFLAGS"
|
||||
CFLAGS="$CFLAGS -D$os"
|
||||
# Libs to compile. In fact this is just LDFLAGS
|
||||
LIBS="-lstdc++"
|
||||
# LDFLAGS used for HOST
|
||||
LDFLAGS="$LDFLAGS"
|
||||
|
||||
make_compiler_cflags "$cc_build" "$CFLAGS_BUILD" "CFLAGS_BUILD" "$CXXFLAGS_BUILD" "CXXFLAGS_BUILD" "$LDFLAGS_BUILD" "LDFLAGS_BUILD"
|
||||
make_compiler_cflags "$cc_host" "$CFLAGS" "CFLAGS" "$CXXFLAGS" "CXXFLAGS" "$LDFLAGS" "LDFLAGS"
|
||||
|
||||
CFLAGS="$CFLAGS -D$os"
|
||||
|
||||
if [ $enable_debug = 0 ]; then
|
||||
# No debug, add default stuff
|
||||
OBJS_SUBDIR="release"
|
||||
@@ -1219,7 +1101,6 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
|
||||
CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
|
||||
LDFLAGS="-O2 -fomit-frame-pointer $LDFLAGS"
|
||||
fi
|
||||
else
|
||||
OBJS_SUBDIR="debug"
|
||||
@@ -1233,7 +1114,6 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
if [ $enable_debug -ge 2 ]; then
|
||||
CFLAGS="$CFLAGS -fno-inline"
|
||||
LDFLAGS="$LDFLAGS -fno-inline"
|
||||
fi
|
||||
if [ $enable_debug -ge 3 ]; then
|
||||
CFLAGS="$CFLAGS -O0"
|
||||
@@ -1251,6 +1131,9 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS -DNO_THREADS"
|
||||
fi
|
||||
|
||||
make_compiler_cflags "$cc_build" "$CFLAGS_BUILD" "CFLAGS_BUILD"
|
||||
make_compiler_cflags "$cc_host" "$CFLAGS" "CFLAGS"
|
||||
|
||||
if [ "`echo $1 | cut -c 1-3`" != "icc" ]; then
|
||||
if [ "$os" = "CYGWIN" ]; then
|
||||
flags="$flags -mwin32"
|
||||
@@ -1258,20 +1141,20 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
|
||||
flags="$flags -mno-cygwin"
|
||||
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
|
||||
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
|
||||
LDFLAGS="$LDFLAGS -mno-cygwin"
|
||||
fi
|
||||
|
||||
if [ $cc_version -ge 44 ]; then
|
||||
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc"
|
||||
fi
|
||||
if [ "$os" = "CYGWIN" ] || [ "$os" = "MINGW" ]; then
|
||||
LDFLAGS="$LDFLAGS -Wl,--subsystem,windows"
|
||||
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "FREEBSD" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "FREEBSD" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
|
||||
LIBS="$LIBS -lpthread"
|
||||
fi
|
||||
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ]; then
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ]; then
|
||||
LIBS="$LIBS -lc"
|
||||
fi
|
||||
if [ "$os" = "WINCE" ]; then
|
||||
@@ -1300,42 +1183,17 @@ make_cflags_and_ldflags() {
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
LDFLAGS="$LDFLAGS -framework Cocoa"
|
||||
if [ "$enable_dedicated" = "0" ] && ([ "$cpu_type" = "32" ] || [ "$enable_universal" != "0" ]); then
|
||||
if [ "$enable_dedicated" = "0" ]; then
|
||||
LIBS="$LIBS -framework QuickTime"
|
||||
else
|
||||
CFLAGS="$CFLAGS -DNO_QUICKTIME"
|
||||
fi
|
||||
|
||||
if [ "$enable_universal" = "0" ]; then
|
||||
# Universal builds set this elsewhere
|
||||
CFLAGS="$OSX_SYSROOT $CFLAGS"
|
||||
LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS"
|
||||
fi
|
||||
|
||||
if [ "$enable_universal" = "0" ] && [ $cc_version -ge 40 ]; then
|
||||
# Only set the min version when not doing an universal build.
|
||||
# Universal builds set the version elsewhere.
|
||||
if [ "$cpu_type" = "64" ]; then
|
||||
CFLAGS="$CFLAGS -mmacosx-version-min=10.5"
|
||||
else
|
||||
gcc_cpu=`$cc_host -dumpmachine`
|
||||
if [ "`echo $gcc_cpu | cut -c 1-3`" = "ppc" -o "`echo $gcc_cpu | cut -c 1-7`" = "powerpc" ]; then
|
||||
# PowerPC build can run on 10.3
|
||||
CFLAGS="$CFLAGS -mmacosx-version-min=10.3"
|
||||
else
|
||||
# Intel is only available starting from 10.4
|
||||
CFLAGS="$CFLAGS -mmacosx-version-min=10.4"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ]; then
|
||||
if [ "$os" = "BEOS" ]; then
|
||||
LIBS="$LIBS -lmidi -lbe"
|
||||
fi
|
||||
|
||||
# Most targets act like UNIX, just with some additions
|
||||
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
|
||||
if [ "$os" = "BEOS" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
|
||||
CFLAGS="$CFLAGS -DUNIX"
|
||||
fi
|
||||
# And others like Windows
|
||||
@@ -1370,7 +1228,7 @@ make_cflags_and_ldflags() {
|
||||
|
||||
if [ "$with_cocoa" != "0" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_COCOA"
|
||||
LIBS="$LIBS -F/System/Library/Frameworks -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox"
|
||||
LIBS="$LIBS -F/System/Library/Frameworks -framework Cocoa -framework Carbon -framework AudioUnit"
|
||||
|
||||
if [ "$enable_cocoa_quartz" != "0" ]; then
|
||||
CFLAGS="$CFLAGS -DENABLE_COCOA_QUARTZ"
|
||||
@@ -1391,7 +1249,7 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
|
||||
# 64bit machines need -D_SQ64
|
||||
if [ "$cpu_type" = "64" ] && [ "$enable_universal" = "0" ]; then
|
||||
if [ "$cpu_type" = "64" ]; then
|
||||
CFLAGS="$CFLAGS -D_SQ64"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -I$SCRIPT_SRC_DIR"
|
||||
@@ -1514,10 +1372,6 @@ make_cflags_and_ldflags() {
|
||||
LDFLAGS="$LDFLAGS -lbind -lsocket"
|
||||
fi
|
||||
|
||||
if [ "$os" = "HAIKU" ]; then
|
||||
LDFLAGS="$LDFLAGS -lnetwork"
|
||||
fi
|
||||
|
||||
if [ "$os" = "SUNOS" ]; then
|
||||
LDFLAGS="$LDFLAGS -lnsl -lsocket"
|
||||
fi
|
||||
@@ -1553,7 +1407,6 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\""
|
||||
|
||||
log 1 "using CFLAGS... $CFLAGS"
|
||||
log 1 "using CXXFLAGS... $CXXFLAGS"
|
||||
log 1 "using LDFLAGS... $LIBS $LDFLAGS"
|
||||
|
||||
# Makedepend doesn't like something like: -isysroot /OSX/blabla
|
||||
@@ -1563,12 +1416,11 @@ make_cflags_and_ldflags() {
|
||||
# Btw, this almost always comes from outside the configure, so it is
|
||||
# not something we can control.
|
||||
# Also make makedepend aware of compiler's built-in defines.
|
||||
if [ "$with_makedepend" != "0" ] || [ "$enable_builtin_depend" != "0" ]; then
|
||||
# Append CXXFLAGS possibly containing -std=c++0x
|
||||
cflags_makedep="`echo | $cxx_host $CXXFLAGS -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
|
||||
if [ "$with_makedepend" != "0" ]; then
|
||||
cflags_makedep="`echo | $cxx_host -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
|
||||
|
||||
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
|
||||
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" \"$CXXFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
|
||||
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
|
||||
else
|
||||
makedepend=""
|
||||
fi
|
||||
@@ -1764,24 +1616,27 @@ check_lipo() {
|
||||
fi
|
||||
}
|
||||
|
||||
check_osx_sdk() {
|
||||
local sysroot=""
|
||||
if [ -n "$1" ]; then
|
||||
if echo "$1" | grep -q / ; then
|
||||
# Seems to be a file system path
|
||||
osx_sdk_path="$1"
|
||||
else
|
||||
osx_sdk_path="/Developer/SDKs/MacOSX$1.sdk"
|
||||
fi
|
||||
if [ ! -d "$osx_sdk_path" ]; then
|
||||
# No directory, not present or garbage
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Set minimum version to 10.4 as that's when kCGBitmapByteOrder32Host was introduced
|
||||
sysroot="-isysroot $osx_sdk_path -Wl,-syslibroot,$osx_sdk_path -mmacosx-version-min=10.4"
|
||||
set_universal_binary_flags() {
|
||||
if [ -z "$osx_target_version" ]; then
|
||||
# if we don't speficy a target version then we presume 10.4
|
||||
osx_target_version=10.4
|
||||
fi
|
||||
|
||||
if [ "$osx_target_version" = "10.4" ]; then
|
||||
# Apple added u to 10.4 to show that it's universal
|
||||
# There is a version without the u, but it's only in Xcode 2.0 and people should use the free update to 2.5
|
||||
osx_sysroot_version=10.4u
|
||||
else
|
||||
osx_sysroot_version="$osx_target_version"
|
||||
fi
|
||||
|
||||
if [ "$with_osx_sysroot" = "3" ]; then
|
||||
CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX$osx_sysroot_version.sdk -mmacosx-version-min=$osx_target_version"
|
||||
LDFLAGS="$LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX$osx_sysroot_version.sdk -mmacosx-version-min=$osx_target_version"
|
||||
fi
|
||||
}
|
||||
|
||||
check_osx_sdk() {
|
||||
cat > tmp.osx.mm << EOF
|
||||
#include <Cocoa/Cocoa.h>
|
||||
int main() {
|
||||
@@ -1789,13 +1644,18 @@ int main() {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
execute="$cxx_host $sysroot $CFLAGS tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
|
||||
execute="$cxx_host $CFLAGS tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
|
||||
eval $execute > /dev/null
|
||||
ret=$?
|
||||
log 2 "executing $execute"
|
||||
log 2 " exit code $ret"
|
||||
rm -f tmp.osx.mm tmp.osx
|
||||
return $ret
|
||||
if [ "$ret" != "0" ]; then
|
||||
log 1 "Your system SDK is probably too old"
|
||||
log 1 "Please install/upgrade your Xcode to >= 2.5"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_direct_music() {
|
||||
@@ -1824,10 +1684,6 @@ check_direct_music() {
|
||||
}
|
||||
|
||||
check_makedepend() {
|
||||
if [ "$enable_builtin_depend" != "0" ]; then
|
||||
with_makedepend="0"
|
||||
fi
|
||||
|
||||
if [ "$with_makedepend" = "0" ]; then
|
||||
log 1 "checking makedepend... disabled"
|
||||
return
|
||||
@@ -1929,7 +1785,6 @@ detect_os() {
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/solaris/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
@@ -1950,7 +1805,6 @@ detect_os() {
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
/mingw/ { print "MINGW"; exit}
|
||||
@@ -1962,7 +1816,7 @@ detect_os() {
|
||||
if [ -z "$os" ]; then
|
||||
log 1 "detecting OS... none detected"
|
||||
log 1 "I couldn't detect your OS. Please use --os=OS to force one"
|
||||
log 1 "Allowed values are: UNIX, OSX, FREEBSD, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
|
||||
log 1 "Allowed values are: UNIX, OSX, FREEBSD, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -2103,39 +1957,6 @@ detect_sdl() {
|
||||
log 1 "checking SDL... found"
|
||||
}
|
||||
|
||||
detect_osx_sdk() {
|
||||
# Try to find the best SDK available. For a normal build this
|
||||
# is currently the 10.5 SDK as this is needed to compile all
|
||||
# optional code. Because such an executable won't run on 10.4
|
||||
# or lower, also check for the 10.4u SDK when doing an universal
|
||||
# build.
|
||||
|
||||
# Check for the 10.5 SDK, but try 10.6 if that fails
|
||||
check_osx_sdk "10.5" || check_osx_sdk "10.6" || osx_sdk_path=""
|
||||
|
||||
if [ -z "$osx_sdk_path" ] || [ "$enable_universal" != "0" ]; then
|
||||
# No better SDK or universal build enabled? Check 10.4u SDK as well
|
||||
local old_sdk="$osx_sdk_path"
|
||||
if check_osx_sdk "10.4u"; then
|
||||
osx_sdk_104_path="$osx_sdk_path"
|
||||
else
|
||||
osx_sdk_104_path=""
|
||||
fi
|
||||
if [ -z "$old_sdk" ]; then
|
||||
osx_sdk_path="$osx_sdk_104_path"
|
||||
else
|
||||
osx_sdk_path="$old_sdk"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$osx_sdk_path" ]; then
|
||||
log 1 "Your system SDK is probably too old"
|
||||
log 1 "Please install/upgrade your Xcode to >= 2.5"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
detect_cocoa() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_cocoa" = "0" ]; then
|
||||
@@ -2181,55 +2002,11 @@ detect_cocoa() {
|
||||
log 1 "checking whether to enable the Quartz window subdriver... no"
|
||||
fi
|
||||
|
||||
detect_quickdraw
|
||||
}
|
||||
|
||||
detect_quickdraw() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$enable_cocoa_quickdraw" = "0" ]; then
|
||||
log 1 "checking Quickdraw window subdriver... disabled"
|
||||
return 0
|
||||
if [ "$enable_cocoa_quickdraw" != "0" ]; then
|
||||
log 1 "checking whether to enable the Quickdraw window subdriver... yes"
|
||||
else
|
||||
log 1 "checking whether to enable the Quickdraw window subdriver... no"
|
||||
fi
|
||||
|
||||
# Assume QuickDraw is available when doing an universal build
|
||||
if [ "$enable_universal" != "0" ]; then
|
||||
log 1 "checking Quickdraw window subdriver... found"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# 64 bits doesn't have quickdraw
|
||||
if [ "$cpu_type" = "64" ]; then
|
||||
enable_cocoa_quickdraw="0"
|
||||
log 1 "checking Quickdraw window subdriver... disabled (64 bits)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
cat > tmp.osx.mm << EOF
|
||||
#include <AvailabilityMacros.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
int main(int argc, char *argv[]) { SetEmptyRgn(NULL); return 0; }
|
||||
EOF
|
||||
execute="$cxx_host $OSX_SYSROOT $OSX_LD_SYSROOT $CFLAGS -mmacosx-version-min=10.3 tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
|
||||
eval $execute > /dev/null
|
||||
ret=$?
|
||||
log 2 "executing $execute"
|
||||
log 2 " exit code $ret"
|
||||
rm -f tmp.osx.mm tmp.osx
|
||||
if [ "$ret" != "0" ]; then
|
||||
log 1 "checking Quickdraw window subdriver... not found"
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$enable_cocoa_quickdraw" != "1" ]; then
|
||||
log 1 "configure: error: Quickdraw window driver could not be found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
enable_cocoa_quickdraw=0
|
||||
return 0
|
||||
fi
|
||||
|
||||
enable_cocoa_quickdraw=1
|
||||
log 1 "checking Quickdraw window subdriver... found"
|
||||
}
|
||||
|
||||
detect_library() {
|
||||
@@ -2469,12 +2246,6 @@ detect_fontconfig() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
log 1 "checking libfontconfig... OSX, skipping"
|
||||
fontconfig_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_fontconfig" = "1" ] || [ "$with_fontconfig" = "" ] || [ "$with_fontconfig" = "2" ]; then
|
||||
fontconfig_config="pkg-config fontconfig"
|
||||
else
|
||||
@@ -2675,7 +2446,7 @@ int main() {
|
||||
return iconv(convd, &inbuf, &inlen, &outbuf, &outlen);
|
||||
}
|
||||
EOF
|
||||
execute="$cxx_host $OSX_SYSROOT $CFLAGS -c tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
|
||||
execute="$cxx_host $CFLAGS -c tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
|
||||
eval $execute > /dev/null
|
||||
ret=$?
|
||||
log 2 "executing $execute"
|
||||
@@ -2696,7 +2467,7 @@ int main() {
|
||||
return iconv(convd, &inbuf, &inlen, &outbuf, &outlen);
|
||||
}
|
||||
EOF
|
||||
execute="$cxx_host $OSX_SYSROOT $OSX_LD_SYSROOT $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
|
||||
execute="$cxx_host $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
|
||||
eval $execute > /dev/null
|
||||
ret=$?
|
||||
log 2 "executing $execute"
|
||||
@@ -2789,7 +2560,6 @@ detect_cputype() {
|
||||
|
||||
make_sed() {
|
||||
T_CFLAGS="$CFLAGS"
|
||||
T_CXXFLAGS="$CXXFLAGS"
|
||||
T_LDFLAGS="$LDFLAGS"
|
||||
|
||||
SRC_OBJS_DIR="$BASE_SRC_OBJS_DIR/$OBJS_SUBDIR"
|
||||
@@ -2808,12 +2578,9 @@ make_sed() {
|
||||
s@!!LIPO!!@$lipo@g;
|
||||
s@!!CFLAGS!!@$T_CFLAGS@g;
|
||||
s@!!CFLAGS_BUILD!!@$CFLAGS_BUILD@g;
|
||||
s@!!CXXFLAGS!!@$T_CXXFLAGS@g;
|
||||
s@!!CXXFLAGS_BUILD!!@$CXXFLAGS_BUILD@g;
|
||||
s@!!STRGEN_FLAGS!!@$strgen_flags@g;
|
||||
s@!!LIBS!!@$LIBS@g;
|
||||
s@!!LDFLAGS!!@$T_LDFLAGS@g;
|
||||
s@!!LDFLAGS_BUILD!!@$LDFLAGS_BUILD@g;
|
||||
s@!!BIN_DIR!!@$BIN_DIR@g;
|
||||
s@!!ROOT_DIR!!@$ROOT_DIR@g;
|
||||
s@!!MEDIA_DIR!!@$MEDIA_DIR@g;
|
||||
@@ -2837,7 +2604,6 @@ make_sed() {
|
||||
s@!!BINARY_NAME!!@$binary_name@g;
|
||||
s@!!STRGEN!!@$STRGEN@g;
|
||||
s@!!ENDIAN_CHECK!!@$ENDIAN_CHECK@g;
|
||||
s@!!DEPEND!!@$DEPEND@g;
|
||||
s@!!ENDIAN_FORCE!!@$endian@g;
|
||||
s@!!STAGE!!@$STAGE@g;
|
||||
s@!!MAKEDEPEND!!@$makedepend@g;
|
||||
@@ -2963,50 +2729,22 @@ generate_src_normal() {
|
||||
generate_src_osx() {
|
||||
cc_host_orig="$cc_host"
|
||||
cxx_host_orig="$cxx_host"
|
||||
CFLAGS_orig="$CFLAGS"
|
||||
LDFLAGS_orig="$LDFLAGS"
|
||||
|
||||
if [ -n "$osx_sdk_104_path" ]; then
|
||||
# Use 10.4 SDK for 32-bit targets
|
||||
CFLAGS="-isysroot $osx_sdk_104_path $CFLAGS_orig"
|
||||
LDFLAGS="-Wl,-syslibroot,$osx_sdk_104_path $LDFLAGS_orig"
|
||||
fi
|
||||
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc"
|
||||
cc_host="$cc_host_orig -arch ppc -mmacosx-version-min=10.3"
|
||||
cxx_host="$cxx_host_orig -arch ppc -mmacosx-version-min=10.3"
|
||||
cc_host="$cc_host_orig -arch ppc"
|
||||
cxx_host="$cxx_host_orig -arch ppc"
|
||||
generate_src_normal "[PowerPC]" "objs/ppc"
|
||||
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc970"
|
||||
cc_host="$cc_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
|
||||
cxx_host="$cxx_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
|
||||
generate_src_normal "[PowerPC G5]" "objs/ppc970"
|
||||
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/intel"
|
||||
cc_host="$cc_host_orig -arch i386 -mmacosx-version-min=10.4"
|
||||
cxx_host="$cxx_host_orig -arch i386 -mmacosx-version-min=10.4"
|
||||
cc_host="$cc_host_orig -arch i386"
|
||||
cxx_host="$cxx_host_orig -arch i386"
|
||||
generate_src_normal "[Intel]" "objs/intel"
|
||||
|
||||
if [ "$enable_universal" = "64" ]; then
|
||||
# 64 bits is always 10.5 or higher. Furthermore it has a broken ICONV
|
||||
# and they also removed support for QuickTime/QuickDraw
|
||||
if [ -n "$osx_sdk_path" ]; then
|
||||
CFLAGS="-isysroot $osx_sdk_path $CFLAGS_orig"
|
||||
LDFLAGS="-Wl,-syslibroot,$osx_sdk_path $LDFLAGS_orig"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -D_SQ64 -DHAVE_BROKEN_ICONV -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
|
||||
LIBS="`echo $LIBS | sed 's/-framework QuickTime//'`"
|
||||
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc64"
|
||||
cc_host="$cc_host_orig -arch ppc64 -mmacosx-version-min=10.5"
|
||||
cxx_host="$cxx_host_orig -arch ppc64 -mmacosx-version-min=10.5"
|
||||
generate_src_normal "[PowerPC 64 bits]" "objs/ppc64"
|
||||
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/intel64"
|
||||
cc_host="$cc_host_orig -arch x86_64 -mmacosx-version-min=10.5"
|
||||
cxx_host="$cxx_host_orig -arch x86_64 -mmacosx-version-min=10.5"
|
||||
generate_src_normal "[Intel 64 bits]" "objs/intel64"
|
||||
fi
|
||||
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc970"
|
||||
cc_host="$cc_host_orig -arch ppc970"
|
||||
cxx_host="$cxx_host_orig -arch ppc970"
|
||||
CFLAGS="$CFLAGS -mtune=970 -mcpu=970 -mpowerpc-gpopt"
|
||||
generate_src_normal "[PowerPC G5]" "objs/ppc970"
|
||||
}
|
||||
|
||||
generate_src() {
|
||||
@@ -3041,7 +2779,7 @@ showhelp() {
|
||||
echo " --os=OS the OS we are compiling for [DETECT]"
|
||||
echo " DETECT/UNIX/OSX/FREEBSD/OPENBSD/NETBSD/"
|
||||
echo " MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/MINGW/OS2/"
|
||||
echo " DOS/WINCE/PSP/HAIKU"
|
||||
echo " DOS/WINCE/PSP"
|
||||
echo " --endian=ENDIAN set the endian of the HOST (AUTO/LE/BE)"
|
||||
echo " --revision=rXXXX overwrite the revision detection."
|
||||
echo " Use with care!"
|
||||
@@ -3081,8 +2819,6 @@ showhelp() {
|
||||
echo " --enable-debug[=LVL] enable debug-mode (LVL=[0123], 0 is release)"
|
||||
echo " --enable-desync-debug=[LVL] enable desync debug options (LVL=[012], 0 is none"
|
||||
echo " --enable-profiling enables profiling"
|
||||
echo " --enable-lto enables GCC's Link Time Optimization (LTO)/ICC's"
|
||||
echo " Interprocedural Optimization if available"
|
||||
echo " --enable-dedicated compile a dedicated server (without video)"
|
||||
echo " --enable-static enable static compile (doesn't work for"
|
||||
echo " all HOSTs)"
|
||||
@@ -3123,14 +2859,12 @@ showhelp() {
|
||||
echo " libicu; can fail as the new name is guessed)"
|
||||
echo " --with-iconv[=iconv-path] enables iconv support"
|
||||
echo " --with-psp-config[=psp-config] enables psp-config support (PSP ONLY)"
|
||||
echo " --disable-builtin-depend disable use of builtin deps finder"
|
||||
echo " --with-makedepend[=makedepend] enables makedepend support"
|
||||
echo ""
|
||||
echo "Some influential environment variables:"
|
||||
echo " CC C compiler command"
|
||||
echo " CXX C++ compiler command"
|
||||
echo " CFLAGS C compiler flags"
|
||||
echo " CXXFLAGS C++ compiler flags"
|
||||
echo " WINDRES windres command"
|
||||
echo " LDFLAGS linker flags, e.g. -L<lib dir> if you"
|
||||
echo " have libraries in a nonstandard"
|
||||
|
13
configure
vendored
13
configure
vendored
@@ -1,12 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
check_path_characters() {
|
||||
if [ -n "`echo $ROOT_DIR | grep '[^-_A-Za-z0-9\/\\\.:]'`" ]; then
|
||||
echo "WARNING: The path contains a non-alphanumeric character that might cause"
|
||||
@@ -80,7 +73,6 @@ fi
|
||||
TTD="openttd$EXE"
|
||||
STRGEN="strgen$EXE"
|
||||
ENDIAN_CHECK="endian_check$EXE"
|
||||
DEPEND="depend$EXE"
|
||||
|
||||
if [ -z "$sort" ]; then
|
||||
PIPE_SORT="sed s@a@a@"
|
||||
@@ -115,10 +107,9 @@ AWKCOMMAND='
|
||||
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
||||
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
||||
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
|
||||
if ($0 == "BEOS" && "'$os'" != "BEOS" &&
|
||||
"'$os'" != "HAIKU") { next; }
|
||||
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
||||
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
|
||||
"'$os'" != "CYGWIN" && "'$os'" != "MSVC") { next; }
|
||||
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
|
||||
if ($0 == "MORPHOS" && "'$os'" != "MORPHOS") { next; }
|
||||
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; }
|
||||
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
||||
|
@@ -183,7 +183,7 @@
|
||||
<td>
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the tile</li>
|
||||
<li>m2: see signals</li>
|
||||
<li>m2: see waypoint and signals</li>
|
||||
<li>m3 bits 7..4: see signals</li>
|
||||
<li>m3 bits 3..0 = <a name="TrackType">track type</a>:
|
||||
<table>
|
||||
@@ -452,9 +452,27 @@
|
||||
<li>m2 bit 11: opposite track is reserved, too</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m5 bit 7 set, bit 6 clear: checkpoint
|
||||
<ul>
|
||||
<li>m2: index into the array of waypoints.</li>
|
||||
<li>m5 bit 0:
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>0</tt> </td>
|
||||
<td>in X direction</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>1</tt> </td>
|
||||
<td>in Y direction</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m5 bit 4: pbs reservation state</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m5 bit 7 set, bit 6 set: railway depot
|
||||
<ul>
|
||||
<li>m2: Depot index</li>
|
||||
<li>m5 bits 1..0: exit towards
|
||||
<table>
|
||||
<tr>
|
||||
@@ -610,7 +628,6 @@
|
||||
<li>m5 bit 7 set, bit 6 clear: road depot
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the depot</li>
|
||||
<li>m2: Depot index</li>
|
||||
<li>m5 bits 3..0: exit towards:
|
||||
<table>
|
||||
<tr>
|
||||
@@ -818,9 +835,9 @@
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
|
||||
<li>m2: index into the array of stations</li>
|
||||
<li>m3 bits 7..4: persistent random data for newstations (railway stations/waypoints)</li>
|
||||
<li>m3 bits 7..4: persistent random data for newstations (train station)</li>
|
||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram tracks (road stop)</li>
|
||||
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations/waypoints</li>
|
||||
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations</li>
|
||||
<li>m3 bits 1..0: water class for buoys and water part of docks</li>
|
||||
<li>m4: custom station id; 0 means standard graphics</li>
|
||||
<li>m5: graphics index (range from 0..255 for each station type):
|
||||
@@ -848,22 +865,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>00</tt>..<tt>01</tt></td>
|
||||
<td align=left>waypoints
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>00</tt> </td>
|
||||
<td align=left>in X direction</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>01</tt> </td>
|
||||
<td align=left>in Y direction</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>00</tt>..<tt>8F</tt></td>
|
||||
<td align=left>all airports</td>
|
||||
@@ -871,7 +872,7 @@
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>00</tt>..<tt>05</tt> </td>
|
||||
<td align=left>road stops
|
||||
<td align=left>road stops:
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>00</tt> </td>
|
||||
@@ -934,13 +935,13 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy, waypoint)</li>
|
||||
<li>m6 bit 2: pbs reservation state for railway stations/waypoints</li>
|
||||
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy)</li>
|
||||
<li>m6 bit 2: pbs reservation state for railway stations</li>
|
||||
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road (road stops)</li>
|
||||
<li>m7 bits 7..6: present road types (road stops)</li>
|
||||
<li>m7: animation frame (railway stations/waypoints)</li>
|
||||
<li>m7: animation frame (train station)</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -954,7 +955,6 @@
|
||||
<td>
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> (for sea, rivers, and coasts normally <tt>11</tt>)</li>
|
||||
<li>m2: Depot index (for depots only)</li>
|
||||
<li>m3 bits 1..0 : Water class (sea, canal or river)
|
||||
<li>m4: Random data for canal or river tiles</li>
|
||||
<li>m5: tile type:
|
||||
|
@@ -86,7 +86,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=3>1</td>
|
||||
<td rowspan=4>1</td>
|
||||
<td class="caption">rail</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||
@@ -112,13 +112,24 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">depot</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">waypoint</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">OOO</span>X</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=3>2</td>
|
||||
<td class="caption">road</td>
|
||||
@@ -146,7 +157,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">road depot</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
@@ -178,7 +189,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=7>5</td>
|
||||
<td rowspan=6>5</td>
|
||||
<td class="caption">rail station</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||
@@ -189,27 +200,16 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">rail waypoint</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">road stop</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
||||
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X XXXX</td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">dock</td>
|
||||
@@ -282,7 +282,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">shipdepot</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">-inherit-</td>
|
||||
|
@@ -31,15 +31,7 @@ shortname = XMPL
|
||||
; the version of this graphics set (read as single integer)
|
||||
version = 0
|
||||
; a fairly short description of the set
|
||||
; By adding '.<iso code>' you can translate the description.
|
||||
; Note that OpenTTD first tries the full ISO code, then the first
|
||||
; two characters and then uses the fallback (no '.<iso code>').
|
||||
; The ISO code matching is case sensitive!
|
||||
; So en_US will be used for en_GB if no en_GB translation is added.
|
||||
; As a result the below example has 'howdie' for en_US and en_GB but
|
||||
; 'foo' for all other languages.
|
||||
description = foo
|
||||
description.en_US = howdie
|
||||
; palette used by the set; either DOS or Windows
|
||||
palette = DOS
|
||||
|
||||
|
@@ -1,106 +0,0 @@
|
||||
;
|
||||
; Example file for the OpenTTD Base Music replacement sets.
|
||||
; This file consists of basically two different parts:
|
||||
; * metadata
|
||||
; * information about the files/songs
|
||||
;
|
||||
; Metadata contains information about the name and version
|
||||
; of the music set.
|
||||
;
|
||||
; == Getting started ==
|
||||
; - you can't add comments after values
|
||||
; - you have to fill the MD5 checksum for each file
|
||||
; - you may not miss any of the metadata or files items
|
||||
; - `openttd -h` lists all music replacement sets it found to be correct
|
||||
; - `openttd -d grf=1` shows warnings/errors when parsing an .obm file
|
||||
; - `openttd -M <name>` starts OpenTTD with the given set (case sensitive)
|
||||
; - adding `musicset = <name>` to the misc section of openttd.cfg makes
|
||||
; OpenTTD start with that sound set by default
|
||||
; - there is a command line tool for all platforms called md5sum that can
|
||||
; create the MD5 checksum you need.
|
||||
; - all files specified in this file are search relatively to the path where
|
||||
; this file is found, i.e. if the sound files are in a subdir you have
|
||||
; to add that subdir to the names in this file to! It will NOT search for
|
||||
; a file named like specified in here.
|
||||
|
||||
[metadata]
|
||||
; the name of the pack, preferably less than 16 characters
|
||||
name = example
|
||||
; the short name (4 characters), used to identify this set
|
||||
shortname = XMPL
|
||||
; the version of this sound set (read as single integer)
|
||||
version = 0
|
||||
; a fairly short description of the set
|
||||
; By adding '.<iso code>' you can translate the description.
|
||||
; Note that OpenTTD first tries the full ISO code, then the first
|
||||
; two characters and then uses the fallback (no '.<iso code>').
|
||||
; The ISO code matching is case sensitive!
|
||||
; So en_US will be used for en_GB if no en_GB translation is added.
|
||||
; As a result the below example has 'howdie' for en_US and en_GB but
|
||||
; 'foo' for all other languages.
|
||||
description = foo
|
||||
description.en_US = howdie
|
||||
|
||||
; The files section lists the files that replace songs.
|
||||
; The file names are case sensitive.
|
||||
; You can have empty file names; in that case no song will be loaded
|
||||
; for that 'entry'.
|
||||
[files]
|
||||
; The theme song for OpenTTD
|
||||
theme = THEME_SONG.GM
|
||||
; The songs in the 'old style' category
|
||||
old_0 =
|
||||
old_1 =
|
||||
old_2 =
|
||||
old_3 =
|
||||
old_4 =
|
||||
old_5 =
|
||||
old_6 =
|
||||
old_7 =
|
||||
old_8 =
|
||||
old_9 =
|
||||
; The songs in the 'new style' category
|
||||
new_0 =
|
||||
new_1 =
|
||||
new_2 =
|
||||
new_3 =
|
||||
new_4 =
|
||||
new_5 =
|
||||
new_6 =
|
||||
new_7 =
|
||||
new_8 =
|
||||
new_9 =
|
||||
; The songs in the 'ezy street' category
|
||||
ezy_0 =
|
||||
ezy_1 =
|
||||
ezy_2 =
|
||||
ezy_3 =
|
||||
ezy_4 =
|
||||
ezy_5 =
|
||||
ezy_6 =
|
||||
ezy_7 =
|
||||
ezy_8 =
|
||||
ezy_9 =
|
||||
|
||||
; The names section lists the song names for the given file name.
|
||||
; Note that the list of files is case sensitive. Each file listed in the
|
||||
; files section must be listed here with it's song name, otherwise you
|
||||
; will get a lot of warnings when starting OpenTTD.
|
||||
[names]
|
||||
THEME_SONG.GM = Tycoon DELUXE Theme
|
||||
|
||||
; The md5s section lists the MD5 checksum for the files that replace them.
|
||||
; Note that the list of files is case sensitive. Each file listed in the
|
||||
; files section must be listed here with it's MD5 checksum, otherwise you
|
||||
; will get a lot of warnings when starting OpenTTD.
|
||||
[md5s]
|
||||
THEME_SONG.GM = 45cfec1b9d8c7a0ad45e755833cbf221
|
||||
|
||||
; The origin section provides the possibility to put and extra line into
|
||||
; the warning that a file is missing/corrupt. This can be used to tell
|
||||
; them where to find it. It works on the filename specified in the
|
||||
; files section and if that is not found it will fall back to the default
|
||||
; as shown below here.
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
THEME_SONG.GM = You can find it also on your Transport Tycoon Deluxe CD-ROM.
|
@@ -1,64 +0,0 @@
|
||||
;
|
||||
; Example file for the OpenTTD Base Sound replacement sets.
|
||||
; This file consists of basically two different parts:
|
||||
; * metadata
|
||||
; * information about the files
|
||||
;
|
||||
; Metadata contains information about the name and version
|
||||
; of the sound set.
|
||||
;
|
||||
; == Getting started ==
|
||||
; - you can't add comments after values
|
||||
; - you have to fill the MD5 checksum for each file
|
||||
; - you may not miss any of the metadata or files items
|
||||
; - `openttd -h` lists all sound replacements sets it found to be correct
|
||||
; - `openttd -d grf=1` shows warnings/errors when parsing an .obs file
|
||||
; - `openttd -S <name>` starts OpenTTD with the given set (case sensitive)
|
||||
; - adding `soundsset = <name>` to the misc section of openttd.cfg makes
|
||||
; OpenTTD start with that sound set by default
|
||||
; - there is a command line tool for all platforms called md5sum that can
|
||||
; create the MD5 checksum you need.
|
||||
; - all files specified in this file are search relatively to the path where
|
||||
; this file is found, i.e. if the sound files are in a subdir you have
|
||||
; to add that subdir to the names in this file to! It will NOT search for
|
||||
; a file named like specified in here.
|
||||
|
||||
[metadata]
|
||||
; the name of the pack, preferably less than 16 characters
|
||||
name = example
|
||||
; the short name (4 characters), used to identify this set
|
||||
shortname = XMPL
|
||||
; the version of this sound set (read as single integer)
|
||||
version = 0
|
||||
; a fairly short description of the set
|
||||
; By adding '.<iso code>' you can translate the description.
|
||||
; Note that OpenTTD first tries the full ISO code, then the first
|
||||
; two characters and then uses the fallback (no '.<iso code>').
|
||||
; The ISO code matching is case sensitive!
|
||||
; So en_US will be used for en_GB if no en_GB translation is added.
|
||||
; As a result the below example has 'howdie' for en_US and en_GB but
|
||||
; 'foo' for all other languages.
|
||||
description = foo
|
||||
description.en_US = howdie
|
||||
|
||||
; The files section lists the files that replace sprites.
|
||||
; The file names are case sensitive.
|
||||
[files]
|
||||
; The file with the samples. Must contain exactly 73 samples.
|
||||
samples = SAMPLES.CAT
|
||||
|
||||
; The md5s section lists the MD5 checksum for the files that replace them.
|
||||
; Note that the list of files is case sensitive. Each file listed in the
|
||||
; files section must be listed here with it's MD5 checksum, otherwise you
|
||||
; will get a lot of warnings when starting OpenTTD.
|
||||
[md5s]
|
||||
SAMPLES.CAT = 422ea3dd074d2859bb51639a6e0e85da
|
||||
|
||||
; The origin section provides the possibility to put and extra line into
|
||||
; the warning that a file is missing/corrupt. This can be used to tell
|
||||
; them where to find it. It works on the filename specified in the
|
||||
; files section and if that is not found it will fall back to the default
|
||||
; as shown below here.
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
SAMPLES.CAT = You can find it also on your Transport Tycoon Deluxe CD-ROM.
|
@@ -1,6 +1,6 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.Dd Jun 10, 2009
|
||||
.Dd Feb 05, 2009
|
||||
.Dt OPENTTD 6
|
||||
.Sh NAME
|
||||
.Nm openttd
|
||||
@@ -11,7 +11,7 @@
|
||||
.Op Fl a Ar ai
|
||||
.Op Fl b Ar blitter
|
||||
.Op Fl c Ar config_file
|
||||
.Op Fl d Ar [level | cat=lvl[,...]]
|
||||
.Op Fl d Ar [level | cat=lvl[, ...]]
|
||||
.Op Fl D Ar [host][:port]
|
||||
.Op Fl g Ar [savegame]
|
||||
.Op Fl G Ar seed
|
||||
@@ -20,11 +20,8 @@
|
||||
.Op Fl l Ar host[:port]
|
||||
.Op Fl m Ar driver
|
||||
.Op Fl n Ar host[:port][#player]
|
||||
.Op Fl p Ar password
|
||||
.Op Fl P Ar password
|
||||
.Op Fl r Ar widthxheight
|
||||
.Op Fl s Ar driver
|
||||
.Op Fl S Ar soundset
|
||||
.Op Fl t Ar year
|
||||
.Op Fl v Ar driver
|
||||
.Sh OPTIONS
|
||||
@@ -32,18 +29,16 @@
|
||||
.It Fl a Ar ai
|
||||
Set the AI, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl b Ar blitter
|
||||
Set the blitter, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl c Ar config_file
|
||||
Use 'config_file' instead of 'openttd.cfg'
|
||||
.It Fl d Ar [level]
|
||||
Set debug verbosity for all categories to
|
||||
.Ar level
|
||||
or 1 if omitted
|
||||
.It Fl d Ar cat=level[,...]
|
||||
.It Fl d Ar cat=level[, ...]
|
||||
Set debug verbosity for a specific category
|
||||
.It Fl D Ar [host][:port]
|
||||
Start a dedicated server. Sets network debug level to 6. If you want to change this, use
|
||||
@@ -55,55 +50,38 @@ Seed the pseudo random number generator
|
||||
.It Fl e
|
||||
Start in world editor mode
|
||||
.It Fl f
|
||||
Fork into background (dedicated server only, see
|
||||
Fork into background (dedicated only, see
|
||||
.Fl D )
|
||||
.It Fl g Ar [savegame]
|
||||
Load
|
||||
.Ar savegame
|
||||
at start or start a new game if omitted. The
|
||||
.Ar savegame
|
||||
must be either absolute or relative to the current path or one of the search paths.
|
||||
at start or start a new game if omitted
|
||||
.It Fl h
|
||||
Display a summary of all options and lists all the available AIs, blitters, sound, music and video drivers, graphics sets and sound sets.
|
||||
Display a summary of all options and available AIs, blitters, drivers and graphic sets
|
||||
.It Fl i Ar palette
|
||||
Set the palette. '0' for the DOS palette, '1' for the Windows palette and '2' to autodetect (default).
|
||||
|
||||
The palette depends where the base graphics set originated from. If it came from the Transport Tycoon Deluxe for DOS it has the DOS palette, if it came from the Windows version of Transport Tycoon Deluxe it has the Windows palette. All others likely have the Windows palette as that is the most used palette.
|
||||
Set the palette, see
|
||||
.Fl h
|
||||
.It Fl I Ar graphicsset
|
||||
Set the graphics set, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl l Ar host[:port]
|
||||
Redirect DEBUG(), See
|
||||
.Fl D
|
||||
.It Fl m Ar driver
|
||||
Set the music driver, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl n Ar host[:port][#player]
|
||||
Join a network game, optionally specify a port to connect to and player to play as
|
||||
.It Fl p Ar password
|
||||
Password used to join server. Only useful with
|
||||
.Fl n
|
||||
.It Fl P Ar password
|
||||
Password used to join company. Only useful with
|
||||
.Fl n
|
||||
Join a network game, optionally specify player to play as and port to connect to
|
||||
.It Fl r Ar widthxheight
|
||||
Set the resolution
|
||||
.It Fl s Ar driver
|
||||
Set the sound driver, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl S Ar soundset
|
||||
Set the sound set, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl t Ar year
|
||||
Set the starting year
|
||||
.It Fl v Ar driver
|
||||
Set the video driver, see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl x
|
||||
Do not automatically save to config file on exit
|
||||
.El
|
||||
|
@@ -2,12 +2,6 @@
|
||||
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
|
||||
# Arguments given? Show help text.
|
||||
if [ "$#" != "0" ]; then
|
||||
cat <<EOF
|
||||
|
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2009-12-24
|
||||
Release version: 1.0.0-beta1
|
||||
Last updated: 2009-12-23
|
||||
Release version: 0.7.5
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -34,11 +34,25 @@ that you can find at: http://bugs.openttd.org
|
||||
If the bugs are closed but still listed here it means that the bug is fixed
|
||||
and that the nightlies and next major release will not have that bug.
|
||||
|
||||
- 3194 [OSX] Full screen strobing/flickering
|
||||
- 2782 [OSX] Port hopelessly outdated
|
||||
- 3198 [OSX] "Could not get system colour space" error on some Mac OS X 10.6
|
||||
- 3194 [OSX] Full screen 'strobing' on some Mac OS X 10.6
|
||||
- 3190 [OSX] Compiling fails on some Mac OS X 10.6
|
||||
- 3159 [NewGRF] Autoreplace resets (or does not keep) value of variable F2
|
||||
- 3057 Road vehicle sometimes 'forget' the need for servicing
|
||||
- 3040 Not all alternatives are always shown in the "Join station" list
|
||||
- 2955 With path signals depots are less likely to be visited
|
||||
- 2891 Ignore signal does not keep the train running when in path signalled block till the next signal
|
||||
- 2769 No offer for buying bankrupt AIs
|
||||
- 2616 [NewGRF] Cloning creates vehicles with invalid subcargos
|
||||
- 2613 [NewGRF] House property 15 does not work
|
||||
- 2585 [OSX] OS' mouse pointer showing
|
||||
- 2484 [OSX] Cannot enter CJK characters
|
||||
- 2427 Vehicle owner gets paid for whole cargo feeder share
|
||||
- 1944 Road vehicles not picking empty drivethrough platform
|
||||
- 1762 Strange Autoreplace behaviour
|
||||
- 1495 Long vehicles might block multistop drivethrough stations
|
||||
- 1140 [OSX] Not smooth moving map with touchpad
|
||||
- 1072 Text overflows in several windows
|
||||
|
||||
|
||||
3) Known bugs that will not be solved:
|
||||
@@ -89,17 +103,6 @@ Lost trains ignore (block) exit signals [FS#1473]
|
||||
amount of work needed to write a system that prevents the lost trains
|
||||
from taking the wrong direction.
|
||||
|
||||
Vehicle owner of last transfer leg gets paid for all [FS#2427]
|
||||
When you make a transfer system that switches vehicle owners. This
|
||||
is only possible with 'industry stations', e.g. the oil rig station
|
||||
the owner of the vehicle that does the final delivery gets paid for
|
||||
the whole trip. It is not shared amongst the different vehicle
|
||||
owners that have participated in transporting the cargo.
|
||||
This sharing is not done because it would enormously increase the
|
||||
memory and CPU usage in big games for something that is happening
|
||||
in only one corner case. We think it is not worth the effort until
|
||||
sharing of stations is an official feature.
|
||||
|
||||
Forbid 90 degree turns does not work for crossing PBS paths [FS#2737]
|
||||
When you run a train through itself on a X junction with PBS turned on
|
||||
the train will not obey the 'forbid 90 degree turns' setting. This is
|
||||
|
@@ -1,16 +1,3 @@
|
||||
openttd (1.0~svn-1) UNRELEASED; urgency=low
|
||||
|
||||
* Unreleased SVN version. Versioned to allow normal upgrades to released
|
||||
versions.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:02:03 +0100
|
||||
|
||||
openttd (1.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:01:01 +0100
|
||||
|
||||
openttd (0.7.5) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
@@ -13,7 +13,7 @@
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
Name: openttd
|
||||
Version: 1.0.0
|
||||
Version: 0.7.5
|
||||
Release: 1%{?dist}
|
||||
|
||||
Group: Amusements/Games
|
||||
|
@@ -1,23 +1,12 @@
|
||||
# Version numbers to update
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 0
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 0
|
||||
!define APPV_EXTRA "-beta1"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
!define APPVERSIONINTERNAL "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}.${APPV_BUILD}" ; Define application version in X.X.X.X
|
||||
!define INSTALLERVERSION ${APPV_MAJOR}${APPV_MINOR}${APPV_MAINT}${APPV_BUILD}
|
||||
!define APPVERSION "0.7.5" ; Define application version
|
||||
!define APPVERSIONINTERNAL "0.7.5.0" ; Define application version in X.X.X.X
|
||||
!define INSTALLERVERSION 72 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
|
||||
!include ${VERSION_INCLUDE}
|
||||
|
||||
!define APPURLLINK "http://www.openttd.org"
|
||||
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
|
||||
|
||||
!define OPENGFX_BASE_VERSION "0.7.0"
|
||||
!define OPENSFX_BASE_VERSION "0.8.0"
|
||||
!define NOSOUND_BASE_VERSION "0.8.0"
|
||||
|
||||
!define MUI_ICON "..\..\..\media\openttd.ico"
|
||||
!define MUI_UNICON "..\..\..\media\openttd.ico"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp"
|
||||
@@ -30,7 +19,7 @@ SetCompressor LZMA
|
||||
; Version Info
|
||||
Var AddWinPrePopulate
|
||||
VIProductVersion "${APPVERSIONINTERNAL}"
|
||||
VIAddVersionKey "ProductName" "OpenTTD Installer ${APPBITS} bits for Windows ${EXTRA_VERSION}"
|
||||
VIAddVersionKey "ProductName" "OpenTTD Installer ${APPBITS} bits version ${EXTRA_VERSION}"
|
||||
VIAddVersionKey "Comments" "Installs ${APPNAMEANDVERSION}"
|
||||
VIAddVersionKey "CompanyName" "OpenTTD Developers"
|
||||
VIAddVersionKey "FileDescription" "Installs ${APPNAMEANDVERSION}"
|
||||
@@ -39,7 +28,7 @@ VIAddVersionKey "InternalName" "InstOpenTTD-${APPARCH}"
|
||||
VIAddVersionKey "FileVersion" "${APPVERSION}-${APPARCH}"
|
||||
VIAddVersionKey "LegalCopyright" " "
|
||||
; Main Install settings
|
||||
Name "${APPNAMEANDVERSION} ${APPBITS} bits for Windows ${EXTRA_VERSION}"
|
||||
Name "${APPNAMEANDVERSION} ${APPBITS} bits version ${EXTRA_VERSION}"
|
||||
|
||||
; NOTE: Keep trailing backslash!
|
||||
InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Install Folder"
|
||||
@@ -53,15 +42,17 @@ Var SHORTCUTS
|
||||
Var CDDRIVE
|
||||
|
||||
; Modern interface settings
|
||||
!include "MUI2.nsh"
|
||||
!include "InstallOptions.nsh"
|
||||
!include "MUI.nsh"
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_WELCOMEPAGE_TITLE_3LINES
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||
!insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "I &accept this agreement"
|
||||
!insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "I &do not accept this agreement"
|
||||
!insertmacro MUI_PAGE_LICENSE "..\..\..\COPYING"
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
|
||||
;---------------------------------
|
||||
@@ -110,23 +101,14 @@ Section "!OpenTTD" Section1
|
||||
|
||||
; Copy language files
|
||||
SetOutPath "$INSTDIR\lang\"
|
||||
File ${PATH_ROOT}bin\lang\english.lng
|
||||
|
||||
; Copy AI files
|
||||
SetOutPath "$INSTDIR\ai\"
|
||||
File ${PATH_ROOT}bin\ai\compat_*.nut
|
||||
File ${PATH_ROOT}bin\lang\*.lng
|
||||
|
||||
; Copy data files
|
||||
SetOutPath "$INSTDIR\data\"
|
||||
File ${PATH_ROOT}bin\data\*.grf
|
||||
File ${PATH_ROOT}bin\data\*.obg
|
||||
File ${PATH_ROOT}bin\data\*.obs
|
||||
File ${PATH_ROOT}bin\data\opntitle.dat
|
||||
|
||||
; Copy the music base metadata files
|
||||
SetOutPath "$INSTDIR\gm\"
|
||||
File ${PATH_ROOT}bin\gm\*.obm
|
||||
|
||||
; Copy the scripts
|
||||
SetOutPath "$INSTDIR\scripts\"
|
||||
File ${PATH_ROOT}bin\scripts\*.*
|
||||
@@ -176,84 +158,9 @@ Section "!OpenTTD" Section1
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------------------------------------
|
||||
; OpenTTD translation install section. Copies only translations
|
||||
Section "OpenTTD translations" Section6
|
||||
; Overwrite files by default, but don't complain on failure
|
||||
SetOverwrite try
|
||||
|
||||
; Copy language files
|
||||
SetOutPath "$INSTDIR\lang\"
|
||||
File ${PATH_ROOT}bin\lang\*.lng
|
||||
SectionEnd
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; OpenGFX files install section. Downloads OpenGFX and installs it
|
||||
Section "Download OpenGFX (free graphics set)" Section3
|
||||
SetOverwrite try
|
||||
|
||||
NSISdl::download "http://binaries.openttd.org/installer/opengfx-${OPENGFX_BASE_VERSION}.7z" "$INSTDIR\data\opengfx.7z"
|
||||
Pop $R0 ;Get the return value
|
||||
StrCmp $R0 "success" +3
|
||||
MessageBox MB_OK "Downloading of OpenGFX failed"
|
||||
Goto Done
|
||||
|
||||
; Let's extract the files
|
||||
SetOutPath "$INSTDIR\data\"
|
||||
NSIS7z::Extract "$INSTDIR\data\opengfx.7z"
|
||||
|
||||
Delete "$INSTDIR\data\opengfx.7z"
|
||||
SetOutPath "$INSTDIR\"
|
||||
Done:
|
||||
|
||||
SectionEnd
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; OpenSFX files install section. Downloads OpenSFX and installs it
|
||||
Section "Download OpenSFX (free sound set)" Section4
|
||||
SetOverwrite try
|
||||
|
||||
NSISdl::download "http://binaries.openttd.org/installer/opensfx-${OPENSFX_BASE_VERSION}.7z" "$INSTDIR\data\opensfx.7z"
|
||||
Pop $R0 ;Get the return value
|
||||
StrCmp $R0 "success" +3
|
||||
MessageBox MB_OK "Downloading of OpenSFX failed"
|
||||
Goto Done
|
||||
|
||||
; Let's extract the files
|
||||
SetOutPath "$INSTDIR\data\"
|
||||
NSIS7z::Extract "$INSTDIR\data\opensfx.7z"
|
||||
|
||||
Delete "$INSTDIR\data\opensfx.7z"
|
||||
SetOutPath "$INSTDIR\"
|
||||
Done:
|
||||
|
||||
SectionEnd
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; NoSound files install section. Downloads NoSound and installs it
|
||||
Section "Download NoSound (free sound set)" Section5
|
||||
SetOverwrite try
|
||||
|
||||
NSISdl::download "http://binaries.openttd.org/installer/nosound-${NOSOUND_BASE_VERSION}.7z" "$INSTDIR\data\nosound.7z"
|
||||
Pop $R0 ;Get the return value
|
||||
StrCmp $R0 "success" +3
|
||||
MessageBox MB_OK "Downloading of NoSound failed"
|
||||
Goto Done
|
||||
|
||||
; Let's extract the files
|
||||
SetOutPath "$INSTDIR\data\"
|
||||
NSIS7z::Extract "$INSTDIR\data\nosound.7z"
|
||||
|
||||
Delete "$INSTDIR\data\nosound.7z"
|
||||
SetOutPath "$INSTDIR\"
|
||||
Done:
|
||||
|
||||
SectionEnd
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; TTDLX files install section. Copies all needed TTDLX files from CD or install dir
|
||||
Section /o "Copy data from Transport Tycoon Deluxe CD-ROM" Section2
|
||||
SetOverwrite try
|
||||
Section "Copy Game Graphics" Section2
|
||||
; Let's copy the files with size approximation
|
||||
SetOutPath "$INSTDIR\gm"
|
||||
CopyFiles "$CDDRIVE\gm\*.gm" "$INSTDIR\gm\" 1028
|
||||
@@ -282,12 +189,8 @@ SectionEnd
|
||||
|
||||
; Modern install component descriptions
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Minimal OpenTTD installation in English. You need at least one of the game graphics and sound sets installed."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section6} "Translations of OpenTTD."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Download the free OpenGFX game graphics set. This download is about 3 MiB."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section4} "Download the free OpenSFX game sound set. This download is about 10 MiB."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section5} "Download the free NoSound game sound set. You will not hear anything with this. This download is about 7 KiB."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics and sounds from the Transport Tycoon Deluxe CD."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} "OpenTTD is a fully functional clone of TTD and is very playable."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics. Requires TTD (for Windows)."
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;-----------------------------------------------
|
||||
@@ -346,9 +249,6 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\cached_sprites.*"
|
||||
Delete "$INSTDIR\save\autosave\network*.tmp" ; temporary network file
|
||||
|
||||
; AI files
|
||||
Delete "$INSTDIR\ai\compat_*.nut"
|
||||
|
||||
; Data files
|
||||
Delete "$INSTDIR\data\opntitle.dat"
|
||||
|
||||
@@ -367,8 +267,6 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\data\orig_win.obg"
|
||||
Delete "$INSTDIR\data\orig_dos.obg"
|
||||
Delete "$INSTDIR\data\orig_dos_de.obg"
|
||||
Delete "$INSTDIR\data\orig_win.obs"
|
||||
Delete "$INSTDIR\data\orig_dos.obs"
|
||||
|
||||
Delete "$INSTDIR\data\sample.cat"
|
||||
; Windows Data files
|
||||
@@ -387,32 +285,18 @@ Section "Uninstall"
|
||||
; Music
|
||||
Delete "$INSTDIR\gm\*.gm"
|
||||
|
||||
; Downloaded OpenGFX/OpenSFX/NoSound
|
||||
Delete "$INSTDIR\data\opengfx\*"
|
||||
RMDir "$INSTDIR\data\opengfx"
|
||||
Delete "$INSTDIR\data\opensfx\*"
|
||||
RMDir "$INSTDIR\data\opensfx"
|
||||
Delete "$INSTDIR\data\nosound\*"
|
||||
RMDir "$INSTDIR\data\nosound"
|
||||
|
||||
; Language files
|
||||
Delete "$INSTDIR\lang\*.lng"
|
||||
|
||||
; Scripts
|
||||
Delete "$INSTDIR\scripts\*.*"
|
||||
|
||||
; Base sets for music
|
||||
Delete "$INSTDIR\gm\orig_win.obm"
|
||||
Delete "$INSTDIR\gm\no_music.obm"
|
||||
|
||||
; Remove remaining directories
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
||||
RMDir "$INSTDIR\ai"
|
||||
RMDir "$INSTDIR\data"
|
||||
RMDir "$INSTDIR\gm"
|
||||
RMDir "$INSTDIR\lang"
|
||||
RMDir "$INSTDIR\scripts"
|
||||
RMDir "$INSTDIR\data"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
SectionEnd
|
||||
@@ -431,7 +315,7 @@ NoAbort:
|
||||
|
||||
GetTempFileName $R0
|
||||
!insertmacro MUI_HEADER_TEXT "Locate TTD" "Setup needs the location of Transport Tycoon Deluxe in order to continue."
|
||||
!insertmacro INSTALLOPTIONS_EXTRACT_AS "CDFinder.ini" "CDFinder"
|
||||
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "CDFinder.ini" "CDFinder"
|
||||
|
||||
ClearErrors
|
||||
; Now, let's populate $CDDRIVE
|
||||
@@ -446,18 +330,18 @@ NoTTD:
|
||||
StrCpy $AddWinPrePopulate "Setup couldn't find TTD. Please enter the path where the graphics files from TTD are stored and press Next to continue."
|
||||
TruFinish:
|
||||
ClearErrors
|
||||
!insertmacro INSTALLOPTIONS_WRITE "CDFinder" "Field 2" "State" $CDDRIVE ; TTDLX path
|
||||
!insertmacro INSTALLOPTIONS_WRITE "CDFinder" "Field 3" "Text" $AddWinPrePopulate ; Caption
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "CDFinder" "Field 2" "State" $CDDRIVE ; TTDLX path
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "CDFinder" "Field 3" "Text" $AddWinPrePopulate ; Caption
|
||||
DoneCD:
|
||||
; Initialize the dialog *AFTER* we've changed the text otherwise we won't see the changes
|
||||
!insertmacro INSTALLOPTIONS_INITDIALOG "CDFinder"
|
||||
!insertmacro INSTALLOPTIONS_SHOW
|
||||
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "CDFinder"
|
||||
!insertmacro MUI_INSTALLOPTIONS_SHOW
|
||||
FunctionEnd
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; Custom page function when 'next' is selected for the TTDLX path
|
||||
Function SelectCDExit
|
||||
!insertmacro INSTALLOPTIONS_READ $CDDRIVE "CDFinder" "Field 2" "State"
|
||||
!insertmacro MUI_INSTALLOPTIONS_READ $CDDRIVE "CDFinder" "Field 2" "State"
|
||||
; If trg1r.grf does not exist at the path, retry with DOS version
|
||||
IfFileExists $CDDRIVE\trg1r.grf "" DosCD
|
||||
IfFileExists $CDDRIVE\trgir.grf "" NoCD
|
||||
@@ -472,6 +356,17 @@ NoCD:
|
||||
hasCD:
|
||||
FunctionEnd
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; Disable the "Back" button on finish page if the installer is run on Win9x systems
|
||||
Function DisableBack
|
||||
Call GetWindowsVersion
|
||||
Pop $R0
|
||||
StrCmp $R0 "win9x" 0 WinNT
|
||||
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "BackEnabled" "0"
|
||||
WinNT:
|
||||
ClearErrors
|
||||
FunctionEnd
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; Determine windows version, returns "win9x" if Win9x/Me or "winnt" on the stack
|
||||
Function GetWindowsVersion
|
||||
@@ -531,14 +426,10 @@ Var OLDVERSION
|
||||
Var UninstallString
|
||||
|
||||
;-----------------------------------------------------------------------------------
|
||||
; NSIS Initialize function, determine if we are going to install/upgrade or uninstall
|
||||
; NSIS Initialize function, determin if we are going to install/upgrade or uninstall
|
||||
Function .onInit
|
||||
StrCpy $SHORTCUTS "OpenTTD"
|
||||
|
||||
SectionSetSize ${Section3} 6144
|
||||
SectionSetSize ${Section4} 13312
|
||||
SectionSetSize ${Section5} 30
|
||||
|
||||
SectionSetFlags 0 17
|
||||
|
||||
; Starts Setup - let's look for an older version of OpenTTD
|
||||
@@ -560,9 +451,6 @@ WelcomeToSetup:
|
||||
"Welcome to ${APPNAMEANDVERSION} Setup.$\n \
|
||||
This will allow you to upgrade from version $OLDVERSION."
|
||||
SectionSetFlags ${Section2} 0x80 ; set bit 7
|
||||
SectionSetFlags ${Section3} 0x80 ; set bit 7
|
||||
SectionSetFlags ${Section4} 0x80 ; set bit 7
|
||||
SectionSetFlags ${Section5} 0x80 ; set bit 7
|
||||
Goto FinishCallback
|
||||
|
||||
VersionsAreEqual:
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
@@ -1,5 +1,5 @@
|
||||
!define APPBITS 32 ; Define number of bits for the architecture
|
||||
!define EXTRA_VERSION "2000, XP, Vista and 7"
|
||||
!define EXTRA_VERSION "for Windows 2000, XP and Vista"
|
||||
!define APPARCH "win32" ; Define the application architecture
|
||||
!define BINARY_DIR "${PATH_ROOT}objs\win32\Release"
|
||||
InstallDir "$PROGRAMFILES32\OpenTTD\"
|
@@ -1,5 +1,5 @@
|
||||
!define APPBITS 64 ; Define number of bits for the architecture
|
||||
!define EXTRA_VERSION "XP, Vista and 7"
|
||||
!define EXTRA_VERSION "for Windows XP and Vista"
|
||||
!define APPARCH "win64" ; Define the application architecture
|
||||
!define BINARY_DIR "${PATH_ROOT}objs\x64\Release"
|
||||
InstallDir "$PROGRAMFILES64\OpenTTD\"
|
@@ -1,5 +1,5 @@
|
||||
!define APPBITS 32 ; Define number of bits for the architecture
|
||||
!define EXTRA_VERSION "95, 98 and ME"
|
||||
!define EXTRA_VERSION "for Windows 95, 98 and ME"
|
||||
!define APPARCH "win9x" ; Define the application architecture
|
||||
!define BINARY_DIR "${PATH_ROOT}bin"
|
||||
InstallDir "$PROGRAMFILES32\OpenTTD\"
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
@@ -1,12 +1,5 @@
|
||||
Option Explicit
|
||||
|
||||
' $Id$
|
||||
'
|
||||
' This file is part of OpenTTD.
|
||||
' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
' 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/>.
|
||||
|
||||
Dim FSO
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
@@ -39,13 +32,13 @@ Sub UpdateFiles(version)
|
||||
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
|
||||
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
||||
Else
|
||||
version = "1.0.0-beta1"
|
||||
version = "0.7.5"
|
||||
revision = 0
|
||||
modified = 1
|
||||
End If
|
||||
|
||||
UpdateFile modified, revision, version, cur_date, "../src/rev.cpp"
|
||||
UpdateFile modified, revision, version, cur_date, "../src/os/windows/ottdres.rc"
|
||||
UpdateFile modified, revision, version, cur_date, "../src/ottdres.rc"
|
||||
End Sub
|
||||
|
||||
Function ReadRegistryKey(shive, subkey, valuename, architecture)
|
||||
@@ -287,6 +280,6 @@ End Function
|
||||
|
||||
Dim version
|
||||
version = DetermineSVNVersion
|
||||
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/os/windows/ottdres.rc")) Then
|
||||
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/ottdres.rc")) Then
|
||||
UpdateFiles version
|
||||
End If
|
||||
|
@@ -1,12 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# $Id$
|
||||
|
||||
# This file is part of OpenTTD.
|
||||
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# 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/>.
|
||||
|
||||
# This file generates all project files based on sources.list, so everyone who
|
||||
# can start a bash process, can update the project files.
|
||||
|
||||
|
@@ -1,12 +1,5 @@
|
||||
Option Explicit
|
||||
|
||||
' $Id$
|
||||
'
|
||||
' This file is part of OpenTTD.
|
||||
' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
' 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/>.
|
||||
|
||||
Dim FSO
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
|
@@ -301,21 +301,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\greek.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating greek language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\greek.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hebrew.txt"
|
||||
>
|
||||
@@ -496,6 +481,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\piglatin.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating piglatin language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\piglatin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\polish.txt"
|
||||
>
|
||||
|
@@ -302,21 +302,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\greek.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating greek language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\greek.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hebrew.txt"
|
||||
>
|
||||
@@ -497,6 +482,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\piglatin.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating piglatin language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\piglatin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\polish.txt"
|
||||
>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
<ToolFile
|
||||
RelativePath="..\src\os\windows\masm64.rules"
|
||||
RelativePath="..\src\masm64.rules"
|
||||
/>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
@@ -60,7 +60,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -273,7 +273,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -471,6 +471,10 @@
|
||||
RelativePath=".\..\src\autoreplace.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\aystar.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\bmp.cpp"
|
||||
>
|
||||
@@ -503,10 +507,6 @@
|
||||
RelativePath=".\..\src\console_cmds.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\currency.cpp"
|
||||
>
|
||||
@@ -595,6 +595,14 @@
|
||||
RelativePath=".\..\src\map.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\md5.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\minilzo.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc.cpp"
|
||||
>
|
||||
@@ -607,6 +615,10 @@
|
||||
RelativePath=".\..\src\music.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\namegen.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\network\network.cpp"
|
||||
>
|
||||
@@ -635,6 +647,14 @@
|
||||
RelativePath=".\..\src\network\network_udp.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\npf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\openttd.cpp"
|
||||
>
|
||||
@@ -643,10 +663,22 @@
|
||||
RelativePath=".\..\src\os_timer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ottdres.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfind.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\queue.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\rail.cpp"
|
||||
>
|
||||
@@ -659,10 +691,6 @@
|
||||
RelativePath=".\..\src\road.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadstop.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\screenshot.cpp"
|
||||
>
|
||||
@@ -703,10 +731,6 @@
|
||||
RelativePath=".\..\src\strings.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\texteff.cpp"
|
||||
>
|
||||
@@ -716,11 +740,11 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tile_map.cpp"
|
||||
RelativePath=".\..\src\thread_win32.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname.cpp"
|
||||
RelativePath=".\..\src\tile_map.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -743,6 +767,10 @@
|
||||
RelativePath=".\..\src\widget.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\win32.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\window.cpp"
|
||||
>
|
||||
@@ -792,15 +820,7 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_media_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_media_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_station_base.h"
|
||||
RelativePath=".\..\src\aystar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -883,10 +903,6 @@
|
||||
RelativePath=".\..\src\console_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\currency.h"
|
||||
>
|
||||
@@ -895,10 +911,6 @@
|
||||
RelativePath=".\..\src\date_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_type.h"
|
||||
>
|
||||
@@ -1051,14 +1063,6 @@
|
||||
RelativePath=".\..\src\highscore.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\house.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\house_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\industry.h"
|
||||
>
|
||||
@@ -1067,10 +1071,6 @@
|
||||
RelativePath=".\..\src\industry_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\industrytype.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ini_type.h"
|
||||
>
|
||||
@@ -1087,6 +1087,10 @@
|
||||
RelativePath=".\..\src\livery.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\lzoconf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\map_func.h"
|
||||
>
|
||||
@@ -1095,10 +1099,26 @@
|
||||
RelativePath=".\..\src\map_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\md5.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\minilzo.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\mixer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\namegen_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\network\network.h"
|
||||
>
|
||||
@@ -1187,10 +1207,6 @@
|
||||
RelativePath=".\..\src\newgrf_industrytiles.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\newgrf_properties.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\newgrf_sound.h"
|
||||
>
|
||||
@@ -1231,6 +1247,10 @@
|
||||
RelativePath=".\..\src\news_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\npf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\null_m.h"
|
||||
>
|
||||
@@ -1243,6 +1263,14 @@
|
||||
RelativePath=".\..\src\video\null_v.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\openttd.h"
|
||||
>
|
||||
@@ -1259,6 +1287,10 @@
|
||||
RelativePath=".\..\src\order_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfind.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.h"
|
||||
>
|
||||
@@ -1267,6 +1299,10 @@
|
||||
RelativePath=".\..\src\querystring_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\queue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\rail.h"
|
||||
>
|
||||
@@ -1303,10 +1339,6 @@
|
||||
RelativePath=".\..\src\road_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadstop_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadveh.h"
|
||||
>
|
||||
@@ -1435,18 +1467,6 @@
|
||||
RelativePath=".\..\src\strings_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tar_type.h"
|
||||
>
|
||||
@@ -1467,6 +1487,10 @@
|
||||
RelativePath=".\..\src\tgp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\thread.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tile_cmd.h"
|
||||
>
|
||||
@@ -1499,14 +1523,6 @@
|
||||
RelativePath=".\..\src\town_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\track_func.h"
|
||||
>
|
||||
@@ -1580,11 +1596,11 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_base.h"
|
||||
RelativePath=".\..\src\waypoint.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_func.h"
|
||||
RelativePath=".\..\src\waypoint_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -1592,7 +1608,7 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win32.h"
|
||||
RelativePath=".\..\src\win32.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -1663,22 +1679,10 @@
|
||||
RelativePath=".\..\src\core\enum_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_func.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\math_func.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\math_func.hpp"
|
||||
>
|
||||
@@ -1691,14 +1695,6 @@
|
||||
RelativePath=".\..\src\core\overflowsafe_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\pool_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\pool_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\random_func.cpp"
|
||||
>
|
||||
@@ -1759,10 +1755,6 @@
|
||||
RelativePath=".\..\src\console_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\depot_gui.cpp"
|
||||
>
|
||||
@@ -1911,10 +1903,6 @@
|
||||
RelativePath=".\..\src\vehicle_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_gui.cpp"
|
||||
>
|
||||
@@ -2099,10 +2087,6 @@
|
||||
RelativePath=".\..\src\saveload\industry_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\map_sl.cpp"
|
||||
>
|
||||
@@ -2211,6 +2195,10 @@
|
||||
RelativePath=".\..\src\table\engines.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\files.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\genland.h"
|
||||
>
|
||||
@@ -2223,6 +2211,10 @@
|
||||
RelativePath=".\..\src\table\landscape_sprite.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\namegen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\palette_convert.h"
|
||||
>
|
||||
@@ -2231,10 +2223,6 @@
|
||||
RelativePath=".\..\src\table\palettes.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\pricebase.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\railtypes.h"
|
||||
>
|
||||
@@ -2247,10 +2235,6 @@
|
||||
RelativePath=".\..\src\table\roadveh_movement.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\settings.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\sprites.h"
|
||||
>
|
||||
@@ -2259,10 +2243,6 @@
|
||||
RelativePath=".\..\src\table\station_land.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\strgen_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\..\objs\langs\table\strings.h"
|
||||
>
|
||||
@@ -2271,10 +2251,6 @@
|
||||
RelativePath=".\..\src\table\town_land.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\townname.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\track_land.h"
|
||||
>
|
||||
@@ -2300,57 +2276,9 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MD5"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\md5\md5.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\md5\md5.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MiniLZO"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\lzoconf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\lzodefs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\minilzo.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\minilzo.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Script"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_info.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_info.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_scanner.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_scanner.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\squirrel.cpp"
|
||||
>
|
||||
@@ -2427,10 +2355,6 @@
|
||||
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdaux.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdmath.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqtable.cpp"
|
||||
>
|
||||
@@ -2623,10 +2547,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_base.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_basestation.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_bridge.hpp"
|
||||
>
|
||||
@@ -2635,10 +2555,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_bridgelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_buoylist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_cargo.hpp"
|
||||
>
|
||||
@@ -2847,10 +2763,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_base.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_basestation.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_bridge.cpp"
|
||||
>
|
||||
@@ -2859,10 +2771,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_bridgelist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_buoylist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_cargo.cpp"
|
||||
>
|
||||
@@ -3355,6 +3263,10 @@
|
||||
RelativePath=".\..\src\misc\str.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc\strapi.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Network Core"
|
||||
@@ -3440,127 +3352,71 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Pathfinder"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\follow_track.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pathfinder_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="NPF"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\aystar.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\aystar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\queue.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\queue.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="YAPF"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
||||
RelativePath=".\..\src\yapf\follow_track.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf.h"
|
||||
RelativePath=".\..\src\yapf\nodelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_base.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_cache.h"
|
||||
RelativePath=".\..\src\yapf\yapf_base.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_common.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_common.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costbase.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costbase.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costcache.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costcache.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costrail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costrail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_destrail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_destrail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_rail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node_rail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node_road.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_rail.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_road.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_road.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
@@ -3588,11 +3444,11 @@
|
||||
Name="Music"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\music\dmusic.cpp"
|
||||
RelativePath=".\..\src\music\null_m.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\null_m.cpp"
|
||||
RelativePath=".\..\src\music\dmusic.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -3616,40 +3472,12 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Windows files"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\crashlog_win.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\ottdres.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win32.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Threading"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\thread\thread.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\thread\thread_win32.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="64-bit Specific Files"
|
||||
Filter="asm"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win64.asm"
|
||||
RelativePath=".\..\src\win64.asm"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
<ToolFile
|
||||
RelativePath="..\src\os\windows\masm64.rules"
|
||||
RelativePath="..\src\masm64.rules"
|
||||
/>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
@@ -60,7 +60,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -273,7 +273,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -458,7 +458,7 @@
|
||||
Filter="asm"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win64.asm"
|
||||
RelativePath=".\..\src\win64.asm"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
|
@@ -17,7 +17,7 @@
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
<ToolFile
|
||||
RelativePath="..\src\os\windows\masm64.rules"
|
||||
RelativePath="..\src\masm64.rules"
|
||||
/>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
@@ -61,7 +61,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -271,7 +271,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -468,6 +468,10 @@
|
||||
RelativePath=".\..\src\autoreplace.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\aystar.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\bmp.cpp"
|
||||
>
|
||||
@@ -500,10 +504,6 @@
|
||||
RelativePath=".\..\src\console_cmds.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\currency.cpp"
|
||||
>
|
||||
@@ -592,6 +592,14 @@
|
||||
RelativePath=".\..\src\map.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\md5.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\minilzo.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc.cpp"
|
||||
>
|
||||
@@ -604,6 +612,10 @@
|
||||
RelativePath=".\..\src\music.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\namegen.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\network\network.cpp"
|
||||
>
|
||||
@@ -632,6 +644,14 @@
|
||||
RelativePath=".\..\src\network\network_udp.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\npf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\openttd.cpp"
|
||||
>
|
||||
@@ -640,10 +660,22 @@
|
||||
RelativePath=".\..\src\os_timer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ottdres.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfind.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\queue.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\rail.cpp"
|
||||
>
|
||||
@@ -656,10 +688,6 @@
|
||||
RelativePath=".\..\src\road.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadstop.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\screenshot.cpp"
|
||||
>
|
||||
@@ -700,10 +728,6 @@
|
||||
RelativePath=".\..\src\strings.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\texteff.cpp"
|
||||
>
|
||||
@@ -713,11 +737,11 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tile_map.cpp"
|
||||
RelativePath=".\..\src\thread_win32.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname.cpp"
|
||||
RelativePath=".\..\src\tile_map.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -740,6 +764,10 @@
|
||||
RelativePath=".\..\src\widget.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\win32.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\window.cpp"
|
||||
>
|
||||
@@ -789,15 +817,7 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_media_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_media_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_station_base.h"
|
||||
RelativePath=".\..\src\aystar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -880,10 +900,6 @@
|
||||
RelativePath=".\..\src\console_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\currency.h"
|
||||
>
|
||||
@@ -892,10 +908,6 @@
|
||||
RelativePath=".\..\src\date_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_type.h"
|
||||
>
|
||||
@@ -1048,14 +1060,6 @@
|
||||
RelativePath=".\..\src\highscore.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\house.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\house_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\industry.h"
|
||||
>
|
||||
@@ -1064,10 +1068,6 @@
|
||||
RelativePath=".\..\src\industry_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\industrytype.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ini_type.h"
|
||||
>
|
||||
@@ -1084,6 +1084,10 @@
|
||||
RelativePath=".\..\src\livery.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\lzoconf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\map_func.h"
|
||||
>
|
||||
@@ -1092,10 +1096,26 @@
|
||||
RelativePath=".\..\src\map_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\md5.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\minilzo.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\mixer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\namegen_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\network\network.h"
|
||||
>
|
||||
@@ -1184,10 +1204,6 @@
|
||||
RelativePath=".\..\src\newgrf_industrytiles.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\newgrf_properties.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\newgrf_sound.h"
|
||||
>
|
||||
@@ -1228,6 +1244,10 @@
|
||||
RelativePath=".\..\src\news_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\npf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\null_m.h"
|
||||
>
|
||||
@@ -1240,6 +1260,14 @@
|
||||
RelativePath=".\..\src\video\null_v.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\oldpool_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\openttd.h"
|
||||
>
|
||||
@@ -1256,6 +1284,10 @@
|
||||
RelativePath=".\..\src\order_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfind.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.h"
|
||||
>
|
||||
@@ -1264,6 +1296,10 @@
|
||||
RelativePath=".\..\src\querystring_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\queue.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\rail.h"
|
||||
>
|
||||
@@ -1300,10 +1336,6 @@
|
||||
RelativePath=".\..\src\road_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadstop_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\roadveh.h"
|
||||
>
|
||||
@@ -1432,18 +1464,6 @@
|
||||
RelativePath=".\..\src\strings_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tar_type.h"
|
||||
>
|
||||
@@ -1464,6 +1484,10 @@
|
||||
RelativePath=".\..\src\tgp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\thread.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\tile_cmd.h"
|
||||
>
|
||||
@@ -1496,14 +1520,6 @@
|
||||
RelativePath=".\..\src\town_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\townname_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\track_func.h"
|
||||
>
|
||||
@@ -1577,11 +1593,11 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_base.h"
|
||||
RelativePath=".\..\src\waypoint.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_func.h"
|
||||
RelativePath=".\..\src\waypoint_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -1589,7 +1605,7 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win32.h"
|
||||
RelativePath=".\..\src\win32.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -1660,22 +1676,10 @@
|
||||
RelativePath=".\..\src\core\enum_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_func.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\geometry_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\math_func.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\math_func.hpp"
|
||||
>
|
||||
@@ -1688,14 +1692,6 @@
|
||||
RelativePath=".\..\src\core\overflowsafe_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\pool_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\pool_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\random_func.cpp"
|
||||
>
|
||||
@@ -1756,10 +1752,6 @@
|
||||
RelativePath=".\..\src\console_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\date_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\depot_gui.cpp"
|
||||
>
|
||||
@@ -1908,10 +1900,6 @@
|
||||
RelativePath=".\..\src\vehicle_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint_gui.cpp"
|
||||
>
|
||||
@@ -2096,10 +2084,6 @@
|
||||
RelativePath=".\..\src\saveload\industry_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\map_sl.cpp"
|
||||
>
|
||||
@@ -2208,6 +2192,10 @@
|
||||
RelativePath=".\..\src\table\engines.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\files.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\genland.h"
|
||||
>
|
||||
@@ -2220,6 +2208,10 @@
|
||||
RelativePath=".\..\src\table\landscape_sprite.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\namegen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\palette_convert.h"
|
||||
>
|
||||
@@ -2228,10 +2220,6 @@
|
||||
RelativePath=".\..\src\table\palettes.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\pricebase.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\railtypes.h"
|
||||
>
|
||||
@@ -2244,10 +2232,6 @@
|
||||
RelativePath=".\..\src\table\roadveh_movement.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\settings.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\sprites.h"
|
||||
>
|
||||
@@ -2256,10 +2240,6 @@
|
||||
RelativePath=".\..\src\table\station_land.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\strgen_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\..\objs\langs\table\strings.h"
|
||||
>
|
||||
@@ -2268,10 +2248,6 @@
|
||||
RelativePath=".\..\src\table\town_land.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\townname.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\track_land.h"
|
||||
>
|
||||
@@ -2297,57 +2273,9 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MD5"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\md5\md5.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\md5\md5.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MiniLZO"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\lzoconf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\lzodefs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\minilzo.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\minilzo\minilzo.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Script"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_info.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_info.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_scanner.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\script_scanner.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\squirrel.cpp"
|
||||
>
|
||||
@@ -2424,10 +2352,6 @@
|
||||
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdaux.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdmath.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqtable.cpp"
|
||||
>
|
||||
@@ -2620,10 +2544,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_base.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_basestation.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_bridge.hpp"
|
||||
>
|
||||
@@ -2632,10 +2552,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_bridgelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_buoylist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_cargo.hpp"
|
||||
>
|
||||
@@ -2844,10 +2760,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_base.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_basestation.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_bridge.cpp"
|
||||
>
|
||||
@@ -2856,10 +2768,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_bridgelist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_buoylist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_cargo.cpp"
|
||||
>
|
||||
@@ -3352,6 +3260,10 @@
|
||||
RelativePath=".\..\src\misc\str.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc\strapi.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Network Core"
|
||||
@@ -3437,127 +3349,71 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Pathfinder"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\follow_track.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\opf\opf_ship.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pathfinder_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="NPF"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\aystar.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\aystar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\queue.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\npf\queue.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="YAPF"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
|
||||
RelativePath=".\..\src\yapf\follow_track.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf.h"
|
||||
RelativePath=".\..\src\yapf\nodelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_base.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_cache.h"
|
||||
RelativePath=".\..\src\yapf\yapf_base.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_common.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_common.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costbase.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costbase.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costcache.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costcache.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_costrail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_costrail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_destrail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_destrail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_rail.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node_rail.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
|
||||
RelativePath=".\..\src\yapf\yapf_node_road.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_rail.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_road.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_road.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
|
||||
RelativePath=".\..\src\yapf\yapf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
@@ -3585,11 +3441,11 @@
|
||||
Name="Music"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\music\dmusic.cpp"
|
||||
RelativePath=".\..\src\music\null_m.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\null_m.cpp"
|
||||
RelativePath=".\..\src\music\dmusic.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -3613,40 +3469,12 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Windows files"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\crashlog_win.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\ottdres.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win32.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Threading"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\thread\thread.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\thread\thread_win32.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="64-bit Specific Files"
|
||||
Filter="asm"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win64.asm"
|
||||
RelativePath=".\..\src\win64.asm"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
|
@@ -17,7 +17,7 @@
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
<ToolFile
|
||||
RelativePath="..\src\os\windows\masm64.rules"
|
||||
RelativePath="..\src\masm64.rules"
|
||||
/>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
@@ -61,7 +61,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -271,7 +271,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -455,7 +455,7 @@
|
||||
Filter="asm"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\..\src\os\windows\win64.asm"
|
||||
RelativePath=".\..\src\win64.asm"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
|
@@ -35,7 +35,7 @@
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="..\src\os\windows\ottdres.rc.in"
|
||||
RelativePath="..\src\ottdres.rc.in"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
|
@@ -36,7 +36,7 @@
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="..\src\os\windows\ottdres.rc.in"
|
||||
RelativePath="..\src\ottdres.rc.in"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
|
115
readme.txt
115
readme.txt
@@ -1,6 +1,6 @@
|
||||
OpenTTD README
|
||||
Last updated: 2009-12-24
|
||||
Release version: 1.0.0
|
||||
Last updated: 2009-12-23
|
||||
Release version: 0.7.5
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -19,8 +19,9 @@ Table of Contents:
|
||||
7.0) Compiling
|
||||
* 7.1) Required/optional libraries
|
||||
8.0) Translating
|
||||
* 8.1 Translation
|
||||
* 8.2 Previewing
|
||||
* 8.1 Guidelines
|
||||
* 8.2 Translation
|
||||
* 8.3 Previewing
|
||||
9.0) Troubleshooting
|
||||
X.X) Credits
|
||||
|
||||
@@ -65,10 +66,9 @@ When you are sure it is not already reported you should:
|
||||
* Make sure you are not running a non-official binary, like a patch pack.
|
||||
When you are playing with a patch pack you should report any bugs to the
|
||||
forum thread related to that patch pack.
|
||||
* Make it reproducible for the developers. In other words, create a savegame
|
||||
* Make it reproducable for the developers. In other words, create a savegame
|
||||
in which you can reproduce the issue once loaded. It is very useful to give
|
||||
us the crash.dmp, crash.sav, crash.log and crash screenshot which are
|
||||
created on crashes.
|
||||
us the crash.dmp, crash.sav and crash.log which are created on crashes.
|
||||
* Check whether the bug is already reported on our bug tracker. This includes
|
||||
searching for recently closed bug reports as the bug might already be fixed.
|
||||
|
||||
@@ -87,9 +87,9 @@ following information in your bug report:
|
||||
|
||||
2.2) Reporting Desyncs:
|
||||
---- ------------------
|
||||
As desyncs are hard to make reproducible OpenTTD has the ability to log all
|
||||
As desyncs are hard to make reproducable OpenTTD has the ability to log all
|
||||
actions done by clients so we can replay the whole game in an effort to make
|
||||
desyncs better reproducible. You need to turn this ability on. When turned
|
||||
desyncs better reproducable. You need to turn this ability on. When turned
|
||||
on an automatic savegame will be made once the map has been constructed in
|
||||
the 'save/autosave' directory, see OpenTTD directories to know where to find
|
||||
this directory. Furthermore the log file 'commands-out.log' will be created
|
||||
@@ -187,49 +187,36 @@ an AI a message will be shown that the 'dummy' AI has been started.
|
||||
4.1) (Required) 3rd party files:
|
||||
---- ---------------------------
|
||||
|
||||
Before you run OpenTTD, you need to put the game's data files into a data/
|
||||
Before you run OpenTTD, you need to put the game's datafiles into a data/
|
||||
directory which can be located in various places addressed in the following
|
||||
section.
|
||||
As OpenTTD makes use of the original TTD artwork you will need the files listed
|
||||
below, which you can find on a Transport Tycoon Deluxe CD-ROM.
|
||||
The Windows installer optionally can copy these files from that CD-ROM.
|
||||
|
||||
For OpenTTD you need to acquire some third party data files. For this you have
|
||||
the choice of using the original Transport Tycoon Deluxe data files or a set
|
||||
of free data files.
|
||||
List of the required files:
|
||||
- sample.cat
|
||||
- trg1r.grf
|
||||
- trgcr.grf
|
||||
- trghr.grf
|
||||
- trgir.grf
|
||||
- trgtr.grf
|
||||
|
||||
Alternatively you can use the TTD GRF files from the DOS version:
|
||||
- TRG1.GRF
|
||||
- TRGC.GRF
|
||||
- TRGH.GRF
|
||||
- TRGI.GRF
|
||||
- TRGT.GRF
|
||||
|
||||
If you want the TTD music, copy the gm/ folder from the Windows version
|
||||
of TTD to your OpenTTD folder (not your data folder - also explained in
|
||||
the following sections).
|
||||
|
||||
Do NOT copy files included with OpenTTD into "shared" directories (explained in
|
||||
the following sections) as sooner or later you will run into graphical glitches
|
||||
when using other versions of the game.
|
||||
|
||||
4.1.1) Free graphics and sound files
|
||||
------ -----------------------------
|
||||
The free data files, split into OpenGFX for graphics and OpenSFX for sounds
|
||||
can be found at:
|
||||
- http://bundles.openttdcoop.org/opengfx/releases/ for OpenGFX
|
||||
- http://bundles.openttdcoop.org/opensfx/releases/ for OpenSFX
|
||||
Please follow the readme of these packages about the installation procedure.
|
||||
The Windows installer can optionally download and install these packages.
|
||||
|
||||
4.1.2) Original Transport Tycoon Deluxe graphics and sound files
|
||||
------ ---------------------------------------------------------
|
||||
If you want to play with the original Transport Tycoon Deluxe data files you
|
||||
have to copy the data files from the CD-ROM into the data/ directory. It does
|
||||
not matter whether you copy them from the DOS or Windows version of Transport
|
||||
Tycoon Deluxe. The Windows install can optionally copy these files.
|
||||
You need to copy the following files:
|
||||
- sample.cat
|
||||
- trg1r.grf or TRG1.GRF
|
||||
- trgcr.grf or TRGC.GRF
|
||||
- trghr.grf or TRGH.GRF
|
||||
- trgir.grf or TRGI.GRF
|
||||
- trgtr.grf or TRGT.GRF
|
||||
|
||||
4.1.3) Original Transport Tycoon Deluxe music
|
||||
------ --------------------------------------
|
||||
If you want the TTD music, copy the gm/ folder from the Windows version
|
||||
of TTD to your OpenTTD folder (not your data folder - also explained in
|
||||
the following sections). The music from the DOS version does not work.
|
||||
|
||||
4.1.4) AIs
|
||||
------ ---
|
||||
If you want AIs use the in-game content downloader. If for some reason that is
|
||||
not possible or you want to use an AI that has not been uploaded to the content
|
||||
download system download the tar file and place it in the ai/ directory. If the
|
||||
@@ -263,17 +250,17 @@ can be placed in a few different locations:
|
||||
5. The installation directory (Linux only)
|
||||
Linux: /usr/share/games/openttd
|
||||
6. The application bundle (Mac OSX only)
|
||||
It includes the OpenTTD files (grf+lng) and it will work as long as they aren't touched
|
||||
It includes the OTTD files (grf+lng) and it will work as long as they aren't touched
|
||||
|
||||
Notes:
|
||||
- Linux in the previous list means .deb, but most paths should be similar for others.
|
||||
- The previous search order is also used for NewGRFs and openttd.cfg.
|
||||
- The previous search order is also used for newgrfs and openttd.cfg.
|
||||
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3, 5 order.
|
||||
- Savegames will be relative to the config file only if there is no save/
|
||||
directory in paths with higher priority than the config file path, but
|
||||
autosaves and screenshots will always be relative to the config file.
|
||||
|
||||
The preferred setup:
|
||||
The prefered setup:
|
||||
Place 3rd party files in shared directory (or in personal directory if you don't
|
||||
have write access on shared directory) and have your openttd.cfg config file in
|
||||
personal directory (where the game will then also place savegames and screenshots).
|
||||
@@ -321,7 +308,7 @@ ways to affect game state possibly resulting in program crash or multiplayer
|
||||
desyncs.
|
||||
Easier way would be to forbid all these unsafe actions, but that would affect
|
||||
game usability for many players. We certainly do not want that.
|
||||
However, we receive bug reports because of this. To reduce time spent with
|
||||
However, we receive bugreports because of this. To reduce time spent with
|
||||
solving these problems, these potentially unsafe actions are logged in
|
||||
the savegame (including crash.sav). Log is stored in crash logs, too.
|
||||
|
||||
@@ -330,15 +317,15 @@ Information logged:
|
||||
* Adding / removing / changing order of NewGRFs
|
||||
* Changing NewGRF parameters, loading compatible NewGRF
|
||||
* Changing game mode (scenario editor <-> normal game)
|
||||
* Loading game saved in a different OpenTTD / TTDPatch / TTD version
|
||||
* Running a modified OpenTTD build
|
||||
* Changing settings affecting NewGRF behaviour (non-network-safe settings)
|
||||
* Loading game saved in a different OTTD / TTDPatch / TTD version
|
||||
* Running a modified OTTD build
|
||||
* Changing settings affecting NewGRF behaviour (non-networksafe settings)
|
||||
* Changing landscape (by cheat)
|
||||
* Triggering NewGRF bugs
|
||||
|
||||
No personal information is stored.
|
||||
|
||||
You can show the game log by typing 'gamelog' in the console or by running
|
||||
You can show the gamelog by typing 'gamelog' in the console or by running
|
||||
OpenTTD in debug mode.
|
||||
|
||||
|
||||
@@ -360,9 +347,9 @@ Windows:
|
||||
you need to add WITH_SDL to the project settings.
|
||||
PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these
|
||||
to work you need their development files. For best results, download the
|
||||
openttd-useful.zip file from http://www.openttd.org/download-openttd-useful
|
||||
Put the header files into your compiler's include/ directory and the
|
||||
library (.lib) files into the lib/ directory.
|
||||
openttd-useful.zip file from SourceForge under the Files tab. Put the header
|
||||
files into your compiler's include/ directory and the library (.lib) files
|
||||
into the lib/ directory.
|
||||
For more help with VS see docs/Readme_Windows_MSVC.txt.
|
||||
|
||||
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
|
||||
@@ -431,11 +418,15 @@ simply follow the guidelines in the FAQ of the translator website.
|
||||
If for some reason the website is down for a longer period of time, the
|
||||
information below might be of help.
|
||||
|
||||
Please contact the translations manager (http://www.openttd.org/contact)
|
||||
before beginning the translation process! This avoids double work, as
|
||||
someone else may have already started translating to the same language.
|
||||
8.1) Guidelines:
|
||||
---- -------------------
|
||||
Here are some translation guidelines which you should follow closely.
|
||||
|
||||
8.1) Translation:
|
||||
* Please contact the development team before beginning the translation
|
||||
process! This avoids double work, as someone else may have already
|
||||
started translating to the same language.
|
||||
|
||||
8.2) Translation:
|
||||
---- -------------------
|
||||
So, now that you've notified the development team about your intention to
|
||||
translate (You did, right? Of course you did.) you can pick up english.txt
|
||||
@@ -453,7 +444,7 @@ Note: Do not alter the following parts of the file:
|
||||
* Lines beginning with ## (such as ##id), other than the first two lines of
|
||||
the file
|
||||
|
||||
8.2) Previewing:
|
||||
8.3) Previewing:
|
||||
---- -------------------
|
||||
In order to view the translation in the game, you need to compile your language
|
||||
file with the strgen utility. You can download the precompiled strgen from:
|
||||
@@ -490,7 +481,7 @@ The most frequent problem is missing data files. Don't forget to put all GRF
|
||||
files from TTD into your data/ folder including sample.cat!
|
||||
|
||||
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 OS's are not known
|
||||
for their stability.
|
||||
|
||||
With the added support for font-based text selecting a non-latin language will
|
||||
@@ -499,7 +490,7 @@ file and add a desired font for small/medium/-and large_font. This can be a font
|
||||
name like "Tahoma" or a path to a font.
|
||||
|
||||
Any NewGRF file used in a game is stored inside the savegame and will refuse
|
||||
to load if you don't have that NewGRF file available. A list of missing files
|
||||
to load if you don't have that grf file available. A list of missing files
|
||||
will be output to the console at the moment, so use the '-d' flag (on windows)
|
||||
to see this list. You just have to find the files (http://grfcrawler.tt-forums.net/)
|
||||
put them in the data/ folder and you're set to go.
|
||||
|
201
source.list
201
source.list
@@ -3,6 +3,7 @@ airport.cpp
|
||||
animated_tile.cpp
|
||||
articulated_vehicles.cpp
|
||||
autoreplace.cpp
|
||||
aystar.cpp
|
||||
bmp.cpp
|
||||
callback_table.cpp
|
||||
cargopacket.cpp
|
||||
@@ -11,7 +12,6 @@ cheat.cpp
|
||||
command.cpp
|
||||
console.cpp
|
||||
console_cmds.cpp
|
||||
crashlog.cpp
|
||||
currency.cpp
|
||||
date.cpp
|
||||
debug.cpp
|
||||
@@ -34,9 +34,12 @@ highscore.cpp
|
||||
ini.cpp
|
||||
landscape.cpp
|
||||
map.cpp
|
||||
md5.cpp
|
||||
minilzo.cpp
|
||||
misc.cpp
|
||||
mixer.cpp
|
||||
music.cpp
|
||||
namegen.cpp
|
||||
network/network.cpp
|
||||
network/network_client.cpp
|
||||
network/network_command.cpp
|
||||
@@ -44,13 +47,22 @@ network/network_content.cpp
|
||||
network/network_gamelist.cpp
|
||||
network/network_server.cpp
|
||||
network/network_udp.cpp
|
||||
npf.cpp
|
||||
oldpool.cpp
|
||||
openttd.cpp
|
||||
os_timer.cpp
|
||||
#if WIN32
|
||||
ottdres.rc
|
||||
#end
|
||||
#if WINCE
|
||||
ottdres.rc
|
||||
#end
|
||||
pathfind.cpp
|
||||
pbs.cpp
|
||||
queue.cpp
|
||||
rail.cpp
|
||||
rev.cpp
|
||||
road.cpp
|
||||
roadstop.cpp
|
||||
screenshot.cpp
|
||||
#if SDL
|
||||
sdl.cpp
|
||||
@@ -63,24 +75,35 @@ spritecache.cpp
|
||||
station.cpp
|
||||
string.cpp
|
||||
strings.cpp
|
||||
subsidy.cpp
|
||||
texteff.cpp
|
||||
tgp.cpp
|
||||
#if HAVE_THREAD
|
||||
#if WIN32
|
||||
thread_win32.cpp
|
||||
#else
|
||||
#if OS2
|
||||
thread_os2.cpp
|
||||
#else
|
||||
#if MORPHOS
|
||||
thread_morphos.cpp
|
||||
#else
|
||||
thread_pthread.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
thread_none.cpp
|
||||
#end
|
||||
tile_map.cpp
|
||||
townname.cpp
|
||||
#if WIN32
|
||||
#else
|
||||
#if WINCE
|
||||
win32.cpp
|
||||
#else
|
||||
#if OS2
|
||||
os/os2/os2.cpp
|
||||
os2.cpp
|
||||
#else
|
||||
#if OSX
|
||||
os/macosx/crashlog_osx.cpp
|
||||
#else
|
||||
os/unix/crashlog_unix.cpp
|
||||
#end
|
||||
os/unix/unix.cpp
|
||||
unix.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
@@ -89,6 +112,9 @@ vehiclelist.cpp
|
||||
viewport.cpp
|
||||
waypoint.cpp
|
||||
widget.cpp
|
||||
#if WIN32
|
||||
win32.cpp
|
||||
#end
|
||||
window.cpp
|
||||
|
||||
# Header Files
|
||||
@@ -107,9 +133,7 @@ autoreplace_func.h
|
||||
autoreplace_gui.h
|
||||
autoreplace_type.h
|
||||
autoslope.h
|
||||
base_media_base.h
|
||||
base_media_func.h
|
||||
base_station_base.h
|
||||
aystar.h
|
||||
bmp.h
|
||||
bridge.h
|
||||
callback_table.h
|
||||
@@ -130,10 +154,8 @@ console_func.h
|
||||
console_gui.h
|
||||
console_internal.h
|
||||
console_type.h
|
||||
crashlog.h
|
||||
currency.h
|
||||
date_func.h
|
||||
date_gui.h
|
||||
date_type.h
|
||||
debug.h
|
||||
video/dedicated_v.h
|
||||
@@ -172,18 +194,20 @@ group_type.h
|
||||
gui.h
|
||||
heightmap.h
|
||||
highscore.h
|
||||
house.h
|
||||
house_type.h
|
||||
industry.h
|
||||
industry_type.h
|
||||
industrytype.h
|
||||
ini_type.h
|
||||
landscape.h
|
||||
landscape_type.h
|
||||
livery.h
|
||||
lzoconf.h
|
||||
map_func.h
|
||||
map_type.h
|
||||
md5.h
|
||||
minilzo.h
|
||||
mixer.h
|
||||
music.h
|
||||
namegen_func.h
|
||||
network/network.h
|
||||
network/network_base.h
|
||||
network/network_client.h
|
||||
@@ -206,7 +230,6 @@ newgrf_generic.h
|
||||
newgrf_house.h
|
||||
newgrf_industries.h
|
||||
newgrf_industrytiles.h
|
||||
newgrf_properties.h
|
||||
newgrf_sound.h
|
||||
newgrf_spritegroup.h
|
||||
newgrf_station.h
|
||||
@@ -217,15 +240,20 @@ newgrf_townname.h
|
||||
news_func.h
|
||||
news_gui.h
|
||||
news_type.h
|
||||
npf.h
|
||||
music/null_m.h
|
||||
sound/null_s.h
|
||||
video/null_v.h
|
||||
oldpool.h
|
||||
oldpool_func.h
|
||||
openttd.h
|
||||
order_base.h
|
||||
order_func.h
|
||||
order_type.h
|
||||
pathfind.h
|
||||
pbs.h
|
||||
querystring_gui.h
|
||||
queue.h
|
||||
rail.h
|
||||
rail_gui.h
|
||||
rail_type.h
|
||||
@@ -235,7 +263,6 @@ road_func.h
|
||||
road_gui.h
|
||||
road_internal.h
|
||||
road_type.h
|
||||
roadstop_base.h
|
||||
roadveh.h
|
||||
screenshot.h
|
||||
sdl.h
|
||||
@@ -268,14 +295,12 @@ string_func.h
|
||||
string_type.h
|
||||
strings_func.h
|
||||
strings_type.h
|
||||
subsidy_base.h
|
||||
subsidy_func.h
|
||||
subsidy_type.h
|
||||
tar_type.h
|
||||
terraform_gui.h
|
||||
textbuf_gui.h
|
||||
texteff.hpp
|
||||
tgp.h
|
||||
thread.h
|
||||
tile_cmd.h
|
||||
tile_type.h
|
||||
tilehighlight_func.h
|
||||
@@ -284,8 +309,6 @@ timetable.h
|
||||
toolbar_gui.h
|
||||
town.h
|
||||
town_type.h
|
||||
townname_func.h
|
||||
townname_type.h
|
||||
track_func.h
|
||||
track_type.h
|
||||
train.h
|
||||
@@ -304,10 +327,10 @@ vehiclelist.h
|
||||
viewport_func.h
|
||||
viewport_type.h
|
||||
water.h
|
||||
waypoint_base.h
|
||||
waypoint_func.h
|
||||
waypoint.h
|
||||
waypoint_type.h
|
||||
widget_type.h
|
||||
os/windows/win32.h
|
||||
win32.h
|
||||
music/win32_m.h
|
||||
sound/win32_s.h
|
||||
video/win32_v.h
|
||||
@@ -319,7 +342,6 @@ zoom_type.h
|
||||
#if WIN32
|
||||
#else
|
||||
music/bemidi.h
|
||||
music/cocoa_m.h
|
||||
music/extmidi.h
|
||||
music/libtimidity.h
|
||||
music/os2_m.h
|
||||
@@ -341,15 +363,10 @@ core/bitmath_func.hpp
|
||||
core/endian_func.hpp
|
||||
core/endian_type.hpp
|
||||
core/enum_type.hpp
|
||||
core/geometry_func.cpp
|
||||
core/geometry_func.hpp
|
||||
core/geometry_type.hpp
|
||||
core/math_func.cpp
|
||||
core/math_func.hpp
|
||||
core/mem_func.hpp
|
||||
core/overflowsafe_type.hpp
|
||||
core/pool_func.hpp
|
||||
core/pool_type.hpp
|
||||
core/random_func.cpp
|
||||
core/random_func.hpp
|
||||
core/smallmap_type.hpp
|
||||
@@ -366,7 +383,6 @@ build_vehicle_gui.cpp
|
||||
cheat_gui.cpp
|
||||
company_gui.cpp
|
||||
console_gui.cpp
|
||||
date_gui.cpp
|
||||
depot_gui.cpp
|
||||
dock_gui.cpp
|
||||
engine_gui.cpp
|
||||
@@ -404,7 +420,6 @@ train_gui.cpp
|
||||
transparency_gui.cpp
|
||||
tree_gui.cpp
|
||||
vehicle_gui.cpp
|
||||
viewport_gui.cpp
|
||||
waypoint_gui.cpp
|
||||
|
||||
# Widgets
|
||||
@@ -454,7 +469,6 @@ saveload/engine_sl.cpp
|
||||
saveload/gamelog_sl.cpp
|
||||
saveload/group_sl.cpp
|
||||
saveload/industry_sl.cpp
|
||||
saveload/labelmaps_sl.cpp
|
||||
saveload/map_sl.cpp
|
||||
saveload/misc_sl.cpp
|
||||
saveload/newgrf_sl.cpp
|
||||
@@ -483,22 +497,20 @@ table/clear_land.h
|
||||
table/control_codes.h
|
||||
table/elrail_data.h
|
||||
table/engines.h
|
||||
table/files.h
|
||||
table/genland.h
|
||||
table/industry_land.h
|
||||
table/landscape_sprite.h
|
||||
table/namegen.h
|
||||
table/palette_convert.h
|
||||
table/palettes.h
|
||||
table/pricebase.h
|
||||
table/railtypes.h
|
||||
table/road_land.h
|
||||
table/roadveh_movement.h
|
||||
table/settings.h
|
||||
table/sprites.h
|
||||
table/station_land.h
|
||||
table/strgen_tables.h
|
||||
../objs/langs/table/strings.h
|
||||
table/town_land.h
|
||||
table/townname.h
|
||||
table/track_land.h
|
||||
table/train_cmd.h
|
||||
table/tree_land.h
|
||||
@@ -506,21 +518,7 @@ table/unicode.h
|
||||
table/unmovable_land.h
|
||||
table/water_land.h
|
||||
|
||||
# MD5
|
||||
3rdparty/md5/md5.cpp
|
||||
3rdparty/md5/md5.h
|
||||
|
||||
# MiniLZO
|
||||
3rdparty/minilzo/lzoconf.h
|
||||
3rdparty/minilzo/lzodefs.h
|
||||
3rdparty/minilzo/minilzo.c
|
||||
3rdparty/minilzo/minilzo.h
|
||||
|
||||
# Script
|
||||
script/script_info.cpp
|
||||
script/script_info.hpp
|
||||
script/script_scanner.cpp
|
||||
script/script_scanner.hpp
|
||||
script/squirrel.cpp
|
||||
script/squirrel.hpp
|
||||
script/squirrel_class.hpp
|
||||
@@ -541,7 +539,6 @@ script/squirrel_std.hpp
|
||||
3rdparty/squirrel/squirrel/sqobject.cpp
|
||||
3rdparty/squirrel/squirrel/sqstate.cpp
|
||||
3rdparty/squirrel/sqstdlib/sqstdaux.cpp
|
||||
3rdparty/squirrel/sqstdlib/sqstdmath.cpp
|
||||
3rdparty/squirrel/squirrel/sqtable.cpp
|
||||
3rdparty/squirrel/squirrel/sqvm.cpp
|
||||
|
||||
@@ -593,10 +590,8 @@ ai/api/ai_abstractlist.hpp
|
||||
ai/api/ai_accounting.hpp
|
||||
ai/api/ai_airport.hpp
|
||||
ai/api/ai_base.hpp
|
||||
ai/api/ai_basestation.hpp
|
||||
ai/api/ai_bridge.hpp
|
||||
ai/api/ai_bridgelist.hpp
|
||||
ai/api/ai_buoylist.hpp
|
||||
ai/api/ai_cargo.hpp
|
||||
ai/api/ai_cargolist.hpp
|
||||
ai/api/ai_changelog.hpp
|
||||
@@ -650,10 +645,8 @@ ai/api/ai_abstractlist.cpp
|
||||
ai/api/ai_accounting.cpp
|
||||
ai/api/ai_airport.cpp
|
||||
ai/api/ai_base.cpp
|
||||
ai/api/ai_basestation.cpp
|
||||
ai/api/ai_bridge.cpp
|
||||
ai/api/ai_bridgelist.cpp
|
||||
ai/api/ai_buoylist.cpp
|
||||
ai/api/ai_cargo.cpp
|
||||
ai/api/ai_cargolist.cpp
|
||||
ai/api/ai_company.cpp
|
||||
@@ -788,6 +781,7 @@ misc/dbg_helpers.h
|
||||
misc/fixedsizearray.hpp
|
||||
misc/hashtable.hpp
|
||||
misc/str.hpp
|
||||
misc/strapi.hpp
|
||||
|
||||
# Network Core
|
||||
network/core/address.cpp
|
||||
@@ -811,39 +805,23 @@ network/core/tcp_game.h
|
||||
network/core/udp.cpp
|
||||
network/core/udp.h
|
||||
|
||||
# Pathfinder
|
||||
pathfinder/follow_track.hpp
|
||||
pathfinder/opf/opf_ship.cpp
|
||||
pathfinder/opf/opf_ship.h
|
||||
pathfinder/pathfinder_func.h
|
||||
pathfinder/pathfinder_type.h
|
||||
pathfinder/pf_performance_timer.hpp
|
||||
|
||||
# NPF
|
||||
pathfinder/npf/aystar.cpp
|
||||
pathfinder/npf/aystar.h
|
||||
pathfinder/npf/npf.cpp
|
||||
pathfinder/npf/npf_func.h
|
||||
pathfinder/npf/queue.cpp
|
||||
pathfinder/npf/queue.h
|
||||
|
||||
# YAPF
|
||||
pathfinder/yapf/nodelist.hpp
|
||||
pathfinder/yapf/yapf.h
|
||||
pathfinder/yapf/yapf.hpp
|
||||
pathfinder/yapf/yapf_base.hpp
|
||||
pathfinder/yapf/yapf_cache.h
|
||||
pathfinder/yapf/yapf_common.hpp
|
||||
pathfinder/yapf/yapf_costbase.hpp
|
||||
pathfinder/yapf/yapf_costcache.hpp
|
||||
pathfinder/yapf/yapf_costrail.hpp
|
||||
pathfinder/yapf/yapf_destrail.hpp
|
||||
pathfinder/yapf/yapf_node.hpp
|
||||
pathfinder/yapf/yapf_node_rail.hpp
|
||||
pathfinder/yapf/yapf_node_road.hpp
|
||||
pathfinder/yapf/yapf_rail.cpp
|
||||
pathfinder/yapf/yapf_road.cpp
|
||||
pathfinder/yapf/yapf_ship.cpp
|
||||
yapf/follow_track.hpp
|
||||
yapf/nodelist.hpp
|
||||
yapf/yapf.h
|
||||
yapf/yapf.hpp
|
||||
yapf/yapf_base.hpp
|
||||
yapf/yapf_common.hpp
|
||||
yapf/yapf_costbase.hpp
|
||||
yapf/yapf_costcache.hpp
|
||||
yapf/yapf_costrail.hpp
|
||||
yapf/yapf_destrail.hpp
|
||||
yapf/yapf_node.hpp
|
||||
yapf/yapf_node_rail.hpp
|
||||
yapf/yapf_node_road.hpp
|
||||
yapf/yapf_rail.cpp
|
||||
yapf/yapf_road.cpp
|
||||
yapf/yapf_ship.cpp
|
||||
|
||||
# Video
|
||||
video/dedicated_v.cpp
|
||||
@@ -865,6 +843,7 @@ video/null_v.cpp
|
||||
#end
|
||||
|
||||
# Music
|
||||
music/null_m.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if ALLEGRO
|
||||
@@ -873,10 +852,6 @@ video/null_v.cpp
|
||||
#if DIRECTMUSIC
|
||||
music/dmusic.cpp
|
||||
#end
|
||||
#end
|
||||
music/null_m.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if WIN32
|
||||
music/win32_m.cpp
|
||||
#else
|
||||
@@ -929,39 +904,7 @@ sound/null_s.cpp
|
||||
video/cocoa/fullscreen.mm
|
||||
video/cocoa/wnd_quartz.mm
|
||||
video/cocoa/wnd_quickdraw.mm
|
||||
music/cocoa_m.cpp
|
||||
sound/cocoa_s.cpp
|
||||
os/macosx/splash.cpp
|
||||
#end
|
||||
#end
|
||||
|
||||
# Windows files
|
||||
#if WIN32
|
||||
os/windows/crashlog_win.cpp
|
||||
os/windows/ottdres.rc
|
||||
os/windows/win32.cpp
|
||||
#end
|
||||
#if WINCE
|
||||
os/windows/ottdres.rc
|
||||
os/windows/win32.cpp
|
||||
#end
|
||||
|
||||
# Threading
|
||||
thread/thread.h
|
||||
#if HAVE_THREAD
|
||||
#if WIN32
|
||||
thread/thread_win32.cpp
|
||||
#else
|
||||
#if OS2
|
||||
thread/thread_os2.cpp
|
||||
#else
|
||||
#if MORPHOS
|
||||
thread/thread_morphos.cpp
|
||||
#else
|
||||
thread/thread_pthread.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
thread/thread_none.cpp
|
||||
#end
|
||||
|
340
src/3rdparty/minilzo/COPYING
vendored
340
src/3rdparty/minilzo/COPYING
vendored
@@ -1,340 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
113
src/3rdparty/minilzo/Makefile
vendored
113
src/3rdparty/minilzo/Makefile
vendored
@@ -1,113 +0,0 @@
|
||||
#
|
||||
# a very simple Makefile for miniLZO
|
||||
#
|
||||
# Copyright (C) 1996-2008 Markus F.X.J. Oberhumer
|
||||
#
|
||||
|
||||
PROGRAM = testmini
|
||||
SOURCES = testmini.c minilzo.c
|
||||
|
||||
default:
|
||||
@echo "Please choose one of the following targets:"
|
||||
@echo " gcc: gcc"
|
||||
@echo " unix: hpux hpux9"
|
||||
@echo " win32: win32-bc win32-cygwin win32-dm win32-lccwin32"
|
||||
@echo " win32-intelc win32-mingw win32-vc win32-watcomc"
|
||||
@echo " dos16: dos16-bc dos16-mc dos16-wc"
|
||||
@echo " dos32: dos32-djgpp2 dos32-wc"
|
||||
|
||||
|
||||
# Make sure that minilzo.h, lzoconf.h and lzodefs.h are in the
|
||||
# current dircectory. Otherwise you may want to adjust CPPFLAGS.
|
||||
##CPPFLAGS = -I../include/lzo -I.
|
||||
|
||||
GCC_CFLAGS = -s -Wall -O2 -fomit-frame-pointer
|
||||
|
||||
|
||||
#
|
||||
# gcc (generic)
|
||||
#
|
||||
|
||||
gcc:
|
||||
gcc $(CPPFLAGS) $(GCC_CFLAGS) -o $(PROGRAM) $(SOURCES)
|
||||
|
||||
cc:
|
||||
cc $(CPPFLAGS) -o $(PROGRAM) $(SOURCES)
|
||||
|
||||
|
||||
#
|
||||
# UNIX
|
||||
#
|
||||
|
||||
hpux:
|
||||
cc -Ae $(CPPFLAGS) -o $(PROGRAM) $(SOURCES)
|
||||
|
||||
hpux9:
|
||||
cc -Aa -D_HPUX_SOURCE $(CPPFLAGS) -o $(PROGRAM) $(SOURCES)
|
||||
|
||||
|
||||
#
|
||||
# Windows (32-bit)
|
||||
#
|
||||
|
||||
win32-borlandc win32-bc:
|
||||
bcc32 -O2 -d -w -w-aus $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
win32-cygwin32 win32-cygwin:
|
||||
gcc -mcygwin $(CPPFLAGS) $(GCC_CFLAGS) -o $(PROGRAM).exe $(SOURCES)
|
||||
|
||||
win32-digitalmars win32-dm:
|
||||
dmc -mn -o -w- $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
win32-intelc win32-ic:
|
||||
icl -nologo -MD -W3 -O2 -GF $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
win32-lccwin32:
|
||||
@echo "NOTE: need lcc 2002-07-25 or newer, older versions have bugs"
|
||||
lc -A -unused -O $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
win32-mingw32 win32-mingw:
|
||||
gcc -mno-cygwin $(CPPFLAGS) $(GCC_CFLAGS) -o $(PROGRAM).exe $(SOURCES)
|
||||
|
||||
win32-visualc win32-vc:
|
||||
cl -nologo -MD -W3 -O2 -GF $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
win32-watcomc win32-wc:
|
||||
wcl386 -bt=nt -zq -mf -5r -zc -w5 -oneatx $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
|
||||
#
|
||||
# DOS (16-bit)
|
||||
#
|
||||
|
||||
dos16-borlandc dos16-bc:
|
||||
bcc -ml -w -d -O -4 $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
dos16-microsoftc dos16-msc dos16-mc:
|
||||
cl -nologo -f- -AL -O -G2 -W3 $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
dos16-watcomc dos16-wc:
|
||||
wcl -zq -ml -bt=dos -l=dos -ox -w5 $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
|
||||
#
|
||||
# DOS (32-bit)
|
||||
#
|
||||
|
||||
dos32-djgpp2 dos32-dj2:
|
||||
gcc $(CPPFLAGS) $(GCC_CFLAGS) -o $(PROGRAM).exe $(SOURCES)
|
||||
|
||||
dos32-watcomc dos32-wc:
|
||||
wcl386 -zq -mf -bt=dos -l=dos4g -5r -ox -zc $(CPPFLAGS) $(SOURCES)
|
||||
|
||||
|
||||
#
|
||||
# other targets
|
||||
#
|
||||
|
||||
clean:
|
||||
rm -f $(PROGRAM) $(PROGRAM).exe $(PROGRAM).map $(PROGRAM).tds
|
||||
rm -f *.err *.o *.obj
|
||||
|
||||
.PHONY: default clean
|
||||
|
123
src/3rdparty/minilzo/README.LZO
vendored
123
src/3rdparty/minilzo/README.LZO
vendored
@@ -1,123 +0,0 @@
|
||||
|
||||
============================================================================
|
||||
miniLZO -- mini subset of the LZO real-time data compression library
|
||||
============================================================================
|
||||
|
||||
Author : Markus Franz Xaver Johannes Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
Version : 2.03
|
||||
Date : 30 Apr 2008
|
||||
|
||||
I've created miniLZO for projects where it is inconvenient to
|
||||
include (or require) the full LZO source code just because you
|
||||
want to add a little bit of data compression to your application.
|
||||
|
||||
miniLZO implements the LZO1X-1 compressor and both the standard and
|
||||
safe LZO1X decompressor. Apart from fast compression it also useful
|
||||
for situations where you want to use pre-compressed data files (which
|
||||
must have been compressed with LZO1X-999).
|
||||
|
||||
miniLZO consists of one C source file and three header files:
|
||||
minilzo.c
|
||||
minilzo.h, lzoconf.h, lzodefs.h
|
||||
|
||||
To use miniLZO just copy these files into your source directory, add
|
||||
minilzo.c to your Makefile and #include minilzo.h from your program.
|
||||
Note: you also must distribute this file (`README.LZO') with your project.
|
||||
|
||||
minilzo.o compiles to about 6 kB (using gcc or Visual C on a i386), and
|
||||
the sources are about 30 kB when packed with zip - so there's no more
|
||||
excuse that your application doesn't support data compression :-)
|
||||
|
||||
For more information, documentation, example programs and other support
|
||||
files (like Makefiles and build scripts) please download the full LZO
|
||||
package from
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
|
||||
Have fun,
|
||||
Markus
|
||||
|
||||
|
||||
P.S. minilzo.c is generated automatically from the LZO sources and
|
||||
therefore functionality is completely identical
|
||||
|
||||
|
||||
Appendix A: building miniLZO
|
||||
----------------------------
|
||||
miniLZO is written such a way that it should compile and run
|
||||
out-of-the-box on most machines.
|
||||
|
||||
If you are running on a very unusual architecture and lzo_init() fails then
|
||||
you should first recompile with `-DLZO_DEBUG' to see what causes the failure.
|
||||
The most probable case is something like `sizeof(char *) != sizeof(long)'.
|
||||
After identifying the problem you can compile by adding some defines
|
||||
like `-DSIZEOF_CHAR_P=8' to your Makefile.
|
||||
|
||||
The best solution is (of course) using Autoconf - if your project uses
|
||||
Autoconf anyway just add `-DMINILZO_HAVE_CONFIG_H' to your compiler
|
||||
flags when compiling minilzo.c. See the LZO distribution for an example
|
||||
how to set up configure.in.
|
||||
|
||||
|
||||
Appendix B: list of public functions available in miniLZO
|
||||
---------------------------------------------------------
|
||||
Library initialization
|
||||
lzo_init()
|
||||
|
||||
Compression
|
||||
lzo1x_1_compress()
|
||||
|
||||
Decompression
|
||||
lzo1x_decompress()
|
||||
lzo1x_decompress_safe()
|
||||
|
||||
Checksum functions
|
||||
lzo_adler32()
|
||||
|
||||
Version functions
|
||||
lzo_version()
|
||||
lzo_version_string()
|
||||
lzo_version_date()
|
||||
|
||||
Portable (but slow) string functions
|
||||
lzo_memcmp()
|
||||
lzo_memcpy()
|
||||
lzo_memmove()
|
||||
lzo_memset()
|
||||
|
||||
|
||||
Appendix C: suggested macros for `configure.in' when using Autoconf
|
||||
-------------------------------------------------------------------
|
||||
Checks for typedefs and structures
|
||||
AC_CHECK_TYPE(ptrdiff_t,long)
|
||||
AC_TYPE_SIZE_T
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(long long)
|
||||
AC_CHECK_SIZEOF(__int64)
|
||||
AC_CHECK_SIZEOF(void *)
|
||||
AC_CHECK_SIZEOF(size_t)
|
||||
AC_CHECK_SIZEOF(ptrdiff_t)
|
||||
|
||||
Checks for compiler characteristics
|
||||
AC_C_CONST
|
||||
|
||||
Checks for library functions
|
||||
AC_CHECK_FUNCS(memcmp memcpy memmove memset)
|
||||
|
||||
|
||||
Appendix D: Copyright
|
||||
---------------------
|
||||
LZO and miniLZO are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
2003, 2004, 2005, 2006, 2007, 2008 Markus Franz Xaver Johannes Oberhumer
|
||||
|
||||
LZO and miniLZO are distributed under the terms of the GNU General
|
||||
Public License (GPL). See the file COPYING.
|
||||
|
||||
Special licenses for commercial and other applications which
|
||||
are not willing to accept the GNU General Public License
|
||||
are available by contacting the author.
|
||||
|
||||
|
417
src/3rdparty/minilzo/lzoconf.h
vendored
417
src/3rdparty/minilzo/lzoconf.h
vendored
@@ -1,417 +0,0 @@
|
||||
/* lzoconf.h -- configuration for the LZO real-time data compression library
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __LZOCONF_H_INCLUDED
|
||||
#define __LZOCONF_H_INCLUDED
|
||||
|
||||
#define LZO_VERSION 0x2030
|
||||
#define LZO_VERSION_STRING "2.03"
|
||||
#define LZO_VERSION_DATE "Apr 30 2008"
|
||||
|
||||
/* internal Autoconf configuration file - only used when building LZO */
|
||||
#if defined(LZO_HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// LZO requires a conforming <limits.h>
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
|
||||
# error "invalid CHAR_BIT"
|
||||
#endif
|
||||
#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX)
|
||||
# error "check your compiler installation"
|
||||
#endif
|
||||
#if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1)
|
||||
# error "your limits.h macros are broken"
|
||||
#endif
|
||||
|
||||
/* get OS and architecture defines */
|
||||
#ifndef __LZODEFS_H_INCLUDED
|
||||
#include "lzodefs.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// some core defines
|
||||
************************************************************************/
|
||||
|
||||
#if !defined(LZO_UINT32_C)
|
||||
# if (UINT_MAX < LZO_0xffffffffL)
|
||||
# define LZO_UINT32_C(c) c ## UL
|
||||
# else
|
||||
# define LZO_UINT32_C(c) ((c) + 0U)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* memory checkers */
|
||||
#if !defined(__LZO_CHECKER)
|
||||
# if defined(__BOUNDS_CHECKING_ON)
|
||||
# define __LZO_CHECKER 1
|
||||
# elif defined(__CHECKER__)
|
||||
# define __LZO_CHECKER 1
|
||||
# elif defined(__INSURE__)
|
||||
# define __LZO_CHECKER 1
|
||||
# elif defined(__PURIFY__)
|
||||
# define __LZO_CHECKER 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// integral and pointer types
|
||||
************************************************************************/
|
||||
|
||||
/* lzo_uint should match size_t */
|
||||
#if !defined(LZO_UINT_MAX)
|
||||
# if defined(LZO_ABI_LLP64) /* WIN64 */
|
||||
# if defined(LZO_OS_WIN64)
|
||||
typedef unsigned __int64 lzo_uint;
|
||||
typedef __int64 lzo_int;
|
||||
# else
|
||||
typedef unsigned long long lzo_uint;
|
||||
typedef long long lzo_int;
|
||||
# endif
|
||||
# define LZO_UINT_MAX 0xffffffffffffffffull
|
||||
# define LZO_INT_MAX 9223372036854775807LL
|
||||
# define LZO_INT_MIN (-1LL - LZO_INT_MAX)
|
||||
# elif defined(LZO_ABI_IP32L64) /* MIPS R5900 */
|
||||
typedef unsigned int lzo_uint;
|
||||
typedef int lzo_int;
|
||||
# define LZO_UINT_MAX UINT_MAX
|
||||
# define LZO_INT_MAX INT_MAX
|
||||
# define LZO_INT_MIN INT_MIN
|
||||
# elif (ULONG_MAX >= LZO_0xffffffffL)
|
||||
typedef unsigned long lzo_uint;
|
||||
typedef long lzo_int;
|
||||
# define LZO_UINT_MAX ULONG_MAX
|
||||
# define LZO_INT_MAX LONG_MAX
|
||||
# define LZO_INT_MIN LONG_MIN
|
||||
# else
|
||||
# error "lzo_uint"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Integral types with 32 bits or more. */
|
||||
#if !defined(LZO_UINT32_MAX)
|
||||
# if (UINT_MAX >= LZO_0xffffffffL)
|
||||
typedef unsigned int lzo_uint32;
|
||||
typedef int lzo_int32;
|
||||
# define LZO_UINT32_MAX UINT_MAX
|
||||
# define LZO_INT32_MAX INT_MAX
|
||||
# define LZO_INT32_MIN INT_MIN
|
||||
# elif (ULONG_MAX >= LZO_0xffffffffL)
|
||||
typedef unsigned long lzo_uint32;
|
||||
typedef long lzo_int32;
|
||||
# define LZO_UINT32_MAX ULONG_MAX
|
||||
# define LZO_INT32_MAX LONG_MAX
|
||||
# define LZO_INT32_MIN LONG_MIN
|
||||
# else
|
||||
# error "lzo_uint32"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The larger type of lzo_uint and lzo_uint32. */
|
||||
#if (LZO_UINT_MAX >= LZO_UINT32_MAX)
|
||||
# define lzo_xint lzo_uint
|
||||
#else
|
||||
# define lzo_xint lzo_uint32
|
||||
#endif
|
||||
|
||||
/* Memory model that allows to access memory at offsets of lzo_uint. */
|
||||
#if !defined(__LZO_MMODEL)
|
||||
# if (LZO_UINT_MAX <= UINT_MAX)
|
||||
# define __LZO_MMODEL
|
||||
# elif defined(LZO_HAVE_MM_HUGE_PTR)
|
||||
# define __LZO_MMODEL_HUGE 1
|
||||
# define __LZO_MMODEL __huge
|
||||
# else
|
||||
# define __LZO_MMODEL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* no typedef here because of const-pointer issues */
|
||||
#define lzo_bytep unsigned char __LZO_MMODEL *
|
||||
#define lzo_charp char __LZO_MMODEL *
|
||||
#define lzo_voidp void __LZO_MMODEL *
|
||||
#define lzo_shortp short __LZO_MMODEL *
|
||||
#define lzo_ushortp unsigned short __LZO_MMODEL *
|
||||
#define lzo_uint32p lzo_uint32 __LZO_MMODEL *
|
||||
#define lzo_int32p lzo_int32 __LZO_MMODEL *
|
||||
#define lzo_uintp lzo_uint __LZO_MMODEL *
|
||||
#define lzo_intp lzo_int __LZO_MMODEL *
|
||||
#define lzo_xintp lzo_xint __LZO_MMODEL *
|
||||
#define lzo_voidpp lzo_voidp __LZO_MMODEL *
|
||||
#define lzo_bytepp lzo_bytep __LZO_MMODEL *
|
||||
/* deprecated - use `lzo_bytep' instead of `lzo_byte *' */
|
||||
#define lzo_byte unsigned char __LZO_MMODEL
|
||||
|
||||
typedef int lzo_bool;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// function types
|
||||
************************************************************************/
|
||||
|
||||
/* name mangling */
|
||||
#if !defined(__LZO_EXTERN_C)
|
||||
# ifdef __cplusplus
|
||||
# define __LZO_EXTERN_C extern "C"
|
||||
# else
|
||||
# define __LZO_EXTERN_C extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* calling convention */
|
||||
#if !defined(__LZO_CDECL)
|
||||
# define __LZO_CDECL __lzo_cdecl
|
||||
#endif
|
||||
|
||||
/* DLL export information */
|
||||
#if !defined(__LZO_EXPORT1)
|
||||
# define __LZO_EXPORT1
|
||||
#endif
|
||||
#if !defined(__LZO_EXPORT2)
|
||||
# define __LZO_EXPORT2
|
||||
#endif
|
||||
|
||||
/* __cdecl calling convention for public C and assembly functions */
|
||||
#if !defined(LZO_PUBLIC)
|
||||
# define LZO_PUBLIC(_rettype) __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_CDECL
|
||||
#endif
|
||||
#if !defined(LZO_EXTERN)
|
||||
# define LZO_EXTERN(_rettype) __LZO_EXTERN_C LZO_PUBLIC(_rettype)
|
||||
#endif
|
||||
#if !defined(LZO_PRIVATE)
|
||||
# define LZO_PRIVATE(_rettype) static _rettype __LZO_CDECL
|
||||
#endif
|
||||
|
||||
/* function types */
|
||||
typedef int
|
||||
(__LZO_CDECL *lzo_compress_t) ( const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
typedef int
|
||||
(__LZO_CDECL *lzo_decompress_t) ( const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
typedef int
|
||||
(__LZO_CDECL *lzo_optimize_t) ( lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
typedef int
|
||||
(__LZO_CDECL *lzo_compress_dict_t)(const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem,
|
||||
const lzo_bytep dict, lzo_uint dict_len );
|
||||
|
||||
typedef int
|
||||
(__LZO_CDECL *lzo_decompress_dict_t)(const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem,
|
||||
const lzo_bytep dict, lzo_uint dict_len );
|
||||
|
||||
|
||||
/* Callback interface. Currently only the progress indicator ("nprogress")
|
||||
* is used, but this may change in a future release. */
|
||||
|
||||
struct lzo_callback_t;
|
||||
typedef struct lzo_callback_t lzo_callback_t;
|
||||
#define lzo_callback_p lzo_callback_t __LZO_MMODEL *
|
||||
|
||||
/* malloc & free function types */
|
||||
typedef lzo_voidp (__LZO_CDECL *lzo_alloc_func_t)
|
||||
(lzo_callback_p self, lzo_uint items, lzo_uint size);
|
||||
typedef void (__LZO_CDECL *lzo_free_func_t)
|
||||
(lzo_callback_p self, lzo_voidp ptr);
|
||||
|
||||
/* a progress indicator callback function */
|
||||
typedef void (__LZO_CDECL *lzo_progress_func_t)
|
||||
(lzo_callback_p, lzo_uint, lzo_uint, int);
|
||||
|
||||
struct lzo_callback_t
|
||||
{
|
||||
/* custom allocators (set to 0 to disable) */
|
||||
lzo_alloc_func_t nalloc; /* [not used right now] */
|
||||
lzo_free_func_t nfree; /* [not used right now] */
|
||||
|
||||
/* a progress indicator callback function (set to 0 to disable) */
|
||||
lzo_progress_func_t nprogress;
|
||||
|
||||
/* NOTE: the first parameter "self" of the nalloc/nfree/nprogress
|
||||
* callbacks points back to this struct, so you are free to store
|
||||
* some extra info in the following variables. */
|
||||
lzo_voidp user1;
|
||||
lzo_xint user2;
|
||||
lzo_xint user3;
|
||||
};
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// error codes and prototypes
|
||||
************************************************************************/
|
||||
|
||||
/* Error codes for the compression/decompression functions. Negative
|
||||
* values are errors, positive values will be used for special but
|
||||
* normal events.
|
||||
*/
|
||||
#define LZO_E_OK 0
|
||||
#define LZO_E_ERROR (-1)
|
||||
#define LZO_E_OUT_OF_MEMORY (-2) /* [not used right now] */
|
||||
#define LZO_E_NOT_COMPRESSIBLE (-3) /* [not used right now] */
|
||||
#define LZO_E_INPUT_OVERRUN (-4)
|
||||
#define LZO_E_OUTPUT_OVERRUN (-5)
|
||||
#define LZO_E_LOOKBEHIND_OVERRUN (-6)
|
||||
#define LZO_E_EOF_NOT_FOUND (-7)
|
||||
#define LZO_E_INPUT_NOT_CONSUMED (-8)
|
||||
#define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */
|
||||
|
||||
|
||||
#ifndef lzo_sizeof_dict_t
|
||||
# define lzo_sizeof_dict_t ((unsigned)sizeof(lzo_bytep))
|
||||
#endif
|
||||
|
||||
/* lzo_init() should be the first function you call.
|
||||
* Check the return code !
|
||||
*
|
||||
* lzo_init() is a macro to allow checking that the library and the
|
||||
* compiler's view of various types are consistent.
|
||||
*/
|
||||
#define lzo_init() __lzo_init_v2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\
|
||||
(int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\
|
||||
(int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\
|
||||
(int)sizeof(lzo_callback_t))
|
||||
LZO_EXTERN(int) __lzo_init_v2(unsigned,int,int,int,int,int,int,int,int,int);
|
||||
|
||||
/* version functions (useful for shared libraries) */
|
||||
LZO_EXTERN(unsigned) lzo_version(void);
|
||||
LZO_EXTERN(const char *) lzo_version_string(void);
|
||||
LZO_EXTERN(const char *) lzo_version_date(void);
|
||||
LZO_EXTERN(const lzo_charp) _lzo_version_string(void);
|
||||
LZO_EXTERN(const lzo_charp) _lzo_version_date(void);
|
||||
|
||||
/* string functions */
|
||||
LZO_EXTERN(int)
|
||||
lzo_memcmp(const lzo_voidp _s1, const lzo_voidp _s2, lzo_uint _len);
|
||||
LZO_EXTERN(lzo_voidp)
|
||||
lzo_memcpy(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
|
||||
LZO_EXTERN(lzo_voidp)
|
||||
lzo_memmove(lzo_voidp _dest, const lzo_voidp _src, lzo_uint _len);
|
||||
LZO_EXTERN(lzo_voidp)
|
||||
lzo_memset(lzo_voidp _s, int _c, lzo_uint _len);
|
||||
|
||||
/* checksum functions */
|
||||
LZO_EXTERN(lzo_uint32)
|
||||
lzo_adler32(lzo_uint32 _adler, const lzo_bytep _buf, lzo_uint _len);
|
||||
LZO_EXTERN(lzo_uint32)
|
||||
lzo_crc32(lzo_uint32 _c, const lzo_bytep _buf, lzo_uint _len);
|
||||
LZO_EXTERN(const lzo_uint32p)
|
||||
lzo_get_crc32_table(void);
|
||||
|
||||
/* misc. */
|
||||
LZO_EXTERN(int) _lzo_config_check(void);
|
||||
typedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u;
|
||||
typedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u;
|
||||
typedef union { void *vp; lzo_bytep bp; lzo_uint32 u32; long l; } lzo_align_t;
|
||||
|
||||
/* align a char pointer on a boundary that is a multiple of `size' */
|
||||
LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp _ptr, lzo_uint _size);
|
||||
#define LZO_PTR_ALIGN_UP(_ptr,_size) \
|
||||
((_ptr) + (lzo_uint) __lzo_align_gap((const lzo_voidp)(_ptr),(lzo_uint)(_size)))
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
// deprecated macros - only for backward compatibility with LZO v1.xx
|
||||
************************************************************************/
|
||||
|
||||
#if defined(LZO_CFG_COMPAT)
|
||||
|
||||
#define __LZOCONF_H 1
|
||||
|
||||
#if defined(LZO_ARCH_I086)
|
||||
# define __LZO_i386 1
|
||||
#elif defined(LZO_ARCH_I386)
|
||||
# define __LZO_i386 1
|
||||
#endif
|
||||
|
||||
#if defined(LZO_OS_DOS16)
|
||||
# define __LZO_DOS 1
|
||||
# define __LZO_DOS16 1
|
||||
#elif defined(LZO_OS_DOS32)
|
||||
# define __LZO_DOS 1
|
||||
#elif defined(LZO_OS_WIN16)
|
||||
# define __LZO_WIN 1
|
||||
# define __LZO_WIN16 1
|
||||
#elif defined(LZO_OS_WIN32)
|
||||
# define __LZO_WIN 1
|
||||
#endif
|
||||
|
||||
#define __LZO_CMODEL
|
||||
#define __LZO_DMODEL
|
||||
#define __LZO_ENTRY __LZO_CDECL
|
||||
#define LZO_EXTERN_CDECL LZO_EXTERN
|
||||
#define LZO_ALIGN LZO_PTR_ALIGN_UP
|
||||
|
||||
#define lzo_compress_asm_t lzo_compress_t
|
||||
#define lzo_decompress_asm_t lzo_decompress_t
|
||||
|
||||
#endif /* LZO_CFG_COMPAT */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
|
||||
/* vim:set ts=4 et: */
|
1807
src/3rdparty/minilzo/lzodefs.h
vendored
1807
src/3rdparty/minilzo/lzodefs.h
vendored
File diff suppressed because it is too large
Load Diff
4112
src/3rdparty/minilzo/minilzo.c
vendored
4112
src/3rdparty/minilzo/minilzo.c
vendored
File diff suppressed because it is too large
Load Diff
106
src/3rdparty/minilzo/minilzo.h
vendored
106
src/3rdparty/minilzo/minilzo.h
vendored
@@ -1,106 +0,0 @@
|
||||
/* minilzo.h -- mini subset of the LZO real-time data compression library
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
* the full LZO package can be found at
|
||||
* http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __MINILZO_H
|
||||
#define __MINILZO_H
|
||||
|
||||
#define MINILZO_VERSION 0x2030
|
||||
|
||||
#ifdef __LZOCONF_H
|
||||
# error "you cannot use both LZO and miniLZO"
|
||||
#endif
|
||||
|
||||
#undef LZO_HAVE_CONFIG_H
|
||||
#include "lzoconf.h"
|
||||
|
||||
#if !defined(LZO_VERSION) || (LZO_VERSION != MINILZO_VERSION)
|
||||
# error "version mismatch in header files"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
//
|
||||
************************************************************************/
|
||||
|
||||
/* Memory required for the wrkmem parameter.
|
||||
* When the required size is 0, you can also pass a NULL pointer.
|
||||
*/
|
||||
|
||||
#define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS
|
||||
#define LZO1X_1_MEM_COMPRESS ((lzo_uint32) (16384L * lzo_sizeof_dict_t))
|
||||
#define LZO1X_MEM_DECOMPRESS (0)
|
||||
|
||||
|
||||
/* compression */
|
||||
LZO_EXTERN(int)
|
||||
lzo1x_1_compress ( const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem );
|
||||
|
||||
/* decompression */
|
||||
LZO_EXTERN(int)
|
||||
lzo1x_decompress ( const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
/* safe decompression with overrun testing */
|
||||
LZO_EXTERN(int)
|
||||
lzo1x_decompress_safe ( const lzo_bytep src, lzo_uint src_len,
|
||||
lzo_bytep dst, lzo_uintp dst_len,
|
||||
lzo_voidp wrkmem /* NOT USED */ );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* already included */
|
||||
|
168
src/3rdparty/minilzo/testmini.c
vendored
168
src/3rdparty/minilzo/testmini.c
vendored
@@ -1,168 +0,0 @@
|
||||
/* testmini.c -- very simple test program for the miniLZO library
|
||||
|
||||
This file is part of the LZO real-time data compression library.
|
||||
|
||||
Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
|
||||
All Rights Reserved.
|
||||
|
||||
The LZO library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
The LZO library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the LZO library; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer
|
||||
<markus@oberhumer.com>
|
||||
http://www.oberhumer.com/opensource/lzo/
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// This program shows the basic usage of the LZO library.
|
||||
// We will compress a block of data and decompress again.
|
||||
//
|
||||
// For more information, documentation, example programs and other support
|
||||
// files (like Makefiles and build scripts) please download the full LZO
|
||||
// package from
|
||||
// http://www.oberhumer.com/opensource/lzo/
|
||||
**************************************************************************/
|
||||
|
||||
/* First let's include "minizo.h". */
|
||||
|
||||
#include "minilzo.h"
|
||||
|
||||
|
||||
/* We want to compress the data block at `in' with length `IN_LEN' to
|
||||
* the block at `out'. Because the input block may be incompressible,
|
||||
* we must provide a little more output space in case that compression
|
||||
* is not possible.
|
||||
*/
|
||||
|
||||
#if defined(__LZO_STRICT_16BIT)
|
||||
#define IN_LEN (8*1024u)
|
||||
#elif defined(LZO_ARCH_I086) && !defined(LZO_HAVE_MM_HUGE_ARRAY)
|
||||
#define IN_LEN (60*1024u)
|
||||
#else
|
||||
#define IN_LEN (128*1024ul)
|
||||
#endif
|
||||
#define OUT_LEN (IN_LEN + IN_LEN / 16 + 64 + 3)
|
||||
|
||||
static unsigned char __LZO_MMODEL in [ IN_LEN ];
|
||||
static unsigned char __LZO_MMODEL out [ OUT_LEN ];
|
||||
|
||||
|
||||
/* Work-memory needed for compression. Allocate memory in units
|
||||
* of `lzo_align_t' (instead of `char') to make sure it is properly aligned.
|
||||
*/
|
||||
|
||||
#define HEAP_ALLOC(var,size) \
|
||||
lzo_align_t __LZO_MMODEL var [ ((size) + (sizeof(lzo_align_t) - 1)) / sizeof(lzo_align_t) ]
|
||||
|
||||
static HEAP_ALLOC(wrkmem,LZO1X_1_MEM_COMPRESS);
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
//
|
||||
**************************************************************************/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int r;
|
||||
lzo_uint in_len;
|
||||
lzo_uint out_len;
|
||||
lzo_uint new_len;
|
||||
|
||||
if (argc < 0 && argv == NULL) /* avoid warning about unused args */
|
||||
return 0;
|
||||
|
||||
printf("\nLZO real-time data compression library (v%s, %s).\n",
|
||||
lzo_version_string(), lzo_version_date());
|
||||
printf("Copyright (C) 1996-2008 Markus Franz Xaver Johannes Oberhumer\nAll Rights Reserved.\n\n");
|
||||
|
||||
|
||||
/*
|
||||
* Step 1: initialize the LZO library
|
||||
*/
|
||||
if (lzo_init() != LZO_E_OK)
|
||||
{
|
||||
printf("internal error - lzo_init() failed !!!\n");
|
||||
printf("(this usually indicates a compiler bug - try recompiling\nwithout optimizations, and enable `-DLZO_DEBUG' for diagnostics)\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
/*
|
||||
* Step 2: prepare the input block that will get compressed.
|
||||
* We just fill it with zeros in this example program,
|
||||
* but you would use your real-world data here.
|
||||
*/
|
||||
in_len = IN_LEN;
|
||||
lzo_memset(in,0,in_len);
|
||||
|
||||
/*
|
||||
* Step 3: compress from `in' to `out' with LZO1X-1
|
||||
*/
|
||||
r = lzo1x_1_compress(in,in_len,out,&out_len,wrkmem);
|
||||
if (r == LZO_E_OK)
|
||||
printf("compressed %lu bytes into %lu bytes\n",
|
||||
(unsigned long) in_len, (unsigned long) out_len);
|
||||
else
|
||||
{
|
||||
/* this should NEVER happen */
|
||||
printf("internal error - compression failed: %d\n", r);
|
||||
return 2;
|
||||
}
|
||||
/* check for an incompressible block */
|
||||
if (out_len >= in_len)
|
||||
{
|
||||
printf("This block contains incompressible data.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Step 4: decompress again, now going from `out' to `in'
|
||||
*/
|
||||
new_len = in_len;
|
||||
r = lzo1x_decompress(out,out_len,in,&new_len,NULL);
|
||||
if (r == LZO_E_OK && new_len == in_len)
|
||||
printf("decompressed %lu bytes back into %lu bytes\n",
|
||||
(unsigned long) out_len, (unsigned long) in_len);
|
||||
else
|
||||
{
|
||||
/* this should NEVER happen */
|
||||
printf("internal error - decompression failed: %d\n", r);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("\nminiLZO simple compression test passed.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
|
2
src/3rdparty/squirrel/COMPILE
vendored
2
src/3rdparty/squirrel/COMPILE
vendored
@@ -1,4 +1,4 @@
|
||||
Squirrel 2.2.3 stable
|
||||
Squirrel 2.2.1 stable
|
||||
--------------------------------------------------------
|
||||
What is in this distribution?
|
||||
|
||||
|
2
src/3rdparty/squirrel/COPYRIGHT
vendored
2
src/3rdparty/squirrel/COPYRIGHT
vendored
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2003-2009 Alberto Demichelis
|
||||
Copyright (c) 2003-2008 Alberto Demichelis
|
||||
|
||||
This software is provided 'as-is', without any
|
||||
express or implied warranty. In no event will the
|
||||
|
14
src/3rdparty/squirrel/HISTORY
vendored
14
src/3rdparty/squirrel/HISTORY
vendored
@@ -1,17 +1,3 @@
|
||||
***version 2.2.3 stable***
|
||||
-added sq_getfunctioninfo
|
||||
-added compile time flag SQUSEDOUBLE to use double precision floats
|
||||
-added global slot _floatsize_ int the base lib to recognize single precision and double precision builds
|
||||
-sq_wakeupvm can now resume the vm with an exception
|
||||
-added sqstd_format
|
||||
-generators can now be instantiated by calling sq_call() or closure.call()
|
||||
-fixed a bug in sqstd_printcallstack(thx takayuki_h)
|
||||
-fixed modulo by zero(thx jup)
|
||||
-fixed negative enums and constants
|
||||
-fixed generator crash bug if invoked as tail call (thx Mr.Accident)
|
||||
-fixed some minor bug
|
||||
|
||||
***2008-09-24 ***
|
||||
***version 2.2.2 stable***
|
||||
-fixed some behaviour inconsistencies in thread.call() and thread.wakeup() (thx Mr.Accident)
|
||||
-fixed coroutine error propagation
|
||||
|
2
src/3rdparty/squirrel/README
vendored
2
src/3rdparty/squirrel/README
vendored
@@ -1,4 +1,4 @@
|
||||
The programming language SQUIRREL 2.2.3 stable
|
||||
The programming language SQUIRREL 2.2.1 stable
|
||||
|
||||
--------------------------------------------------
|
||||
The project has been compiled and run on Windows(Windows XP/2000 on Intel x86 Windows XP Pro on AMD x64) and
|
||||
|
BIN
src/3rdparty/squirrel/doc/sqstdlib2.chm
vendored
BIN
src/3rdparty/squirrel/doc/sqstdlib2.chm
vendored
Binary file not shown.
1714
src/3rdparty/squirrel/doc/sqstdlib2.pdf
vendored
1714
src/3rdparty/squirrel/doc/sqstdlib2.pdf
vendored
File diff suppressed because it is too large
Load Diff
BIN
src/3rdparty/squirrel/doc/squirrel2.chm
vendored
BIN
src/3rdparty/squirrel/doc/squirrel2.chm
vendored
Binary file not shown.
6409
src/3rdparty/squirrel/doc/squirrel2.pdf
vendored
6409
src/3rdparty/squirrel/doc/squirrel2.pdf
vendored
File diff suppressed because it is too large
Load Diff
2
src/3rdparty/squirrel/include/sqstdstring.h
vendored
2
src/3rdparty/squirrel/include/sqstdstring.h
vendored
@@ -22,8 +22,6 @@ SQUIRREL_API SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,co
|
||||
SQUIRREL_API SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
|
||||
SQUIRREL_API SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
35
src/3rdparty/squirrel/include/squirrel.h
vendored
35
src/3rdparty/squirrel/include/squirrel.h
vendored
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009 Alberto Demichelis
|
||||
Copyright (c) 2003-2008 Alberto Demichelis
|
||||
|
||||
This software is provided 'as-is', without any
|
||||
express or implied warranty. In no event will the
|
||||
@@ -68,24 +68,7 @@ typedef unsigned int SQHash; /*should be the same size of a pointer*/
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef SQUSEDOUBLE
|
||||
typedef double SQFloat;
|
||||
#else
|
||||
typedef float SQFloat;
|
||||
#endif
|
||||
|
||||
#if defined(SQUSEDOUBLE) && !defined(_SQ64)
|
||||
#ifdef _MSC_VER
|
||||
typedef __int64 SQRawObjectVal; //must be 64bits
|
||||
#else
|
||||
typedef long SQRawObjectVal; //must be 64bits
|
||||
#endif
|
||||
#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; }
|
||||
#else
|
||||
typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise
|
||||
#define SQ_OBJECT_RAWINIT()
|
||||
#endif
|
||||
|
||||
typedef void* SQUserPointer;
|
||||
typedef SQUnsignedInteger SQBool;
|
||||
typedef SQInteger SQRESULT;
|
||||
@@ -176,8 +159,8 @@ typedef char SQChar;
|
||||
#define MAX_CHAR 0xFF
|
||||
#endif
|
||||
|
||||
#define SQUIRREL_VERSION _SC("Squirrel 2.2.3 stable - With custom OpenTTD modifications")
|
||||
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2009 Alberto Demichelis")
|
||||
#define SQUIRREL_VERSION _SC("Squirrel 2.2.2 stable - With custom OpenTTD modifications")
|
||||
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2008 Alberto Demichelis")
|
||||
#define SQUIRREL_AUTHOR _SC("Alberto Demichelis")
|
||||
|
||||
#define SQ_VMSTATE_IDLE 0
|
||||
@@ -257,7 +240,6 @@ typedef union tagSQObjectValue
|
||||
struct SQClass *pClass;
|
||||
struct SQInstance *pInstance;
|
||||
struct SQWeakRef *pWeakRef;
|
||||
SQRawObjectVal raw;
|
||||
}SQObjectValue;
|
||||
|
||||
|
||||
@@ -292,13 +274,6 @@ typedef struct tagSQRegFunction{
|
||||
const SQChar *typemask;
|
||||
}SQRegFunction;
|
||||
|
||||
typedef struct tagSQFunctionInfo {
|
||||
SQUserPointer funcid;
|
||||
const SQChar *name;
|
||||
const SQChar *source;
|
||||
}SQFunctionInfo;
|
||||
|
||||
|
||||
/*vm*/
|
||||
SQUIRREL_API bool sq_can_suspend(HSQUIRRELVM v);
|
||||
SQUIRREL_API HSQUIRRELVM sq_open(SQInteger initialstacksize);
|
||||
@@ -312,9 +287,8 @@ SQUIRREL_API SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_suspendvm(HSQUIRRELVM v);
|
||||
SQUIRREL_API bool sq_resumecatch(HSQUIRRELVM v, int suspend = -1);
|
||||
SQUIRREL_API bool sq_resumeerror(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
|
||||
SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror);
|
||||
SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_decreaseops(HSQUIRRELVM v, int amount);
|
||||
|
||||
/*compiler*/
|
||||
SQUIRREL_API SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
|
||||
@@ -364,7 +338,6 @@ SQUIRREL_API SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer ty
|
||||
SQUIRREL_API SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
|
||||
SQUIRREL_API void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
|
||||
SQUIRREL_API SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize);
|
||||
SQUIRREL_API SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger idx,SQFunctionInfo *fi);
|
||||
SQUIRREL_API SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
|
||||
SQUIRREL_API SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
|
||||
SQUIRREL_API SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
|
||||
|
1
src/3rdparty/squirrel/samples/ackermann.nut
vendored
1
src/3rdparty/squirrel/samples/ackermann.nut
vendored
@@ -20,4 +20,3 @@ if(ARGS.len()!=0) {
|
||||
}
|
||||
print("n="+n+"\n");
|
||||
print("Ack(3,"+ n+ "):"+ Ack(3, n));
|
||||
|
||||
|
3
src/3rdparty/squirrel/sq/sq.c
vendored
3
src/3rdparty/squirrel/sq/sq.c
vendored
@@ -59,9 +59,6 @@ void printfunc(HSQUIRRELVM v,const SQChar *s,...)
|
||||
void PrintVersionInfos()
|
||||
{
|
||||
scfprintf(stdout,_SC("%s %s (%d bits)\n"),SQUIRREL_VERSION,SQUIRREL_COPYRIGHT,sizeof(SQInteger)*8);
|
||||
if(sizeof(SQFloat) != sizeof(float)) {
|
||||
scfprintf(stdout,_SC("[%d bits floats]\n"),sizeof(SQFloat)*8);
|
||||
}
|
||||
}
|
||||
|
||||
void PrintUsage()
|
||||
|
5
src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
vendored
5
src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
vendored
@@ -9,7 +9,6 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
||||
if(pf) {
|
||||
SQStackInfos si;
|
||||
SQInteger i;
|
||||
SQBool b;
|
||||
SQFloat f;
|
||||
const SQChar *s;
|
||||
SQInteger level=1; //1 is to skip this function that is level 0
|
||||
@@ -84,8 +83,8 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
||||
pf(v,_SC("[%s] WEAKREF\n"),name);
|
||||
break;
|
||||
case OT_BOOL:{
|
||||
sq_getbool(v,-1,&b);
|
||||
pf(v,_SC("[%s] %s\n"),name,b?_SC("true"):_SC("false"));
|
||||
sq_getinteger(v,-1,&i);
|
||||
pf(v,_SC("[%s] %s\n"),name,i?_SC("true"):_SC("false"));
|
||||
}
|
||||
break;
|
||||
default: assert(0); break;
|
||||
|
42
src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp
vendored
42
src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp
vendored
@@ -4,24 +4,21 @@
|
||||
#include <stdlib.h>
|
||||
#include <sqstdmath.h>
|
||||
|
||||
#define SINGLE_ARG_FUNC(_funcname, num_ops) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
|
||||
#define SINGLE_ARG_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
|
||||
SQFloat f; \
|
||||
sq_decreaseops(v,num_ops); \
|
||||
sq_getfloat(v,2,&f); \
|
||||
sq_pushfloat(v,(SQFloat)_funcname(f)); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
#define TWO_ARGS_FUNC(_funcname, num_ops) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
|
||||
#define TWO_ARGS_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
|
||||
SQFloat p1,p2; \
|
||||
sq_decreaseops(v,num_ops); \
|
||||
sq_getfloat(v,2,&p1); \
|
||||
sq_getfloat(v,3,&p2); \
|
||||
sq_pushfloat(v,(SQFloat)_funcname(p1,p2)); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
static SQInteger math_srand(HSQUIRRELVM v)
|
||||
{
|
||||
SQInteger i;
|
||||
@@ -36,7 +33,6 @@ static SQInteger math_rand(HSQUIRRELVM v)
|
||||
sq_pushinteger(v,rand());
|
||||
return 1;
|
||||
}
|
||||
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
|
||||
|
||||
static SQInteger math_abs(HSQUIRRELVM v)
|
||||
{
|
||||
@@ -46,21 +42,21 @@ static SQInteger math_abs(HSQUIRRELVM v)
|
||||
return 1;
|
||||
}
|
||||
|
||||
SINGLE_ARG_FUNC(sqrt, 100)
|
||||
SINGLE_ARG_FUNC(fabs, 1)
|
||||
SINGLE_ARG_FUNC(sin, 100)
|
||||
SINGLE_ARG_FUNC(cos, 100)
|
||||
SINGLE_ARG_FUNC(asin, 100)
|
||||
SINGLE_ARG_FUNC(acos, 100)
|
||||
SINGLE_ARG_FUNC(log, 100)
|
||||
SINGLE_ARG_FUNC(log10, 100)
|
||||
SINGLE_ARG_FUNC(tan, 100)
|
||||
SINGLE_ARG_FUNC(atan, 100)
|
||||
TWO_ARGS_FUNC(atan2, 100)
|
||||
TWO_ARGS_FUNC(pow, 100)
|
||||
SINGLE_ARG_FUNC(floor, 1)
|
||||
SINGLE_ARG_FUNC(ceil, 1)
|
||||
SINGLE_ARG_FUNC(exp, 100)
|
||||
SINGLE_ARG_FUNC(sqrt)
|
||||
SINGLE_ARG_FUNC(fabs)
|
||||
SINGLE_ARG_FUNC(sin)
|
||||
SINGLE_ARG_FUNC(cos)
|
||||
SINGLE_ARG_FUNC(asin)
|
||||
SINGLE_ARG_FUNC(acos)
|
||||
SINGLE_ARG_FUNC(log)
|
||||
SINGLE_ARG_FUNC(log10)
|
||||
SINGLE_ARG_FUNC(tan)
|
||||
SINGLE_ARG_FUNC(atan)
|
||||
TWO_ARGS_FUNC(atan2)
|
||||
TWO_ARGS_FUNC(pow)
|
||||
SINGLE_ARG_FUNC(floor)
|
||||
SINGLE_ARG_FUNC(ceil)
|
||||
SINGLE_ARG_FUNC(exp)
|
||||
|
||||
#define _DECL_FUNC(name,nparams,tycheck) {_SC(#name),math_##name,nparams,tycheck}
|
||||
static SQRegFunction mathlib_funcs[] = {
|
||||
@@ -78,10 +74,8 @@ static SQRegFunction mathlib_funcs[] = {
|
||||
_DECL_FUNC(floor,2,_SC(".n")),
|
||||
_DECL_FUNC(ceil,2,_SC(".n")),
|
||||
_DECL_FUNC(exp,2,_SC(".n")),
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
_DECL_FUNC(srand,2,_SC(".n")),
|
||||
_DECL_FUNC(rand,1,NULL),
|
||||
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
|
||||
_DECL_FUNC(fabs,2,_SC(".n")),
|
||||
_DECL_FUNC(abs,2,_SC(".n")),
|
||||
{0,0,0,0},
|
||||
@@ -102,11 +96,9 @@ SQRESULT sqstd_register_mathlib(HSQUIRRELVM v)
|
||||
sq_createslot(v,-3);
|
||||
i++;
|
||||
}
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
sq_pushstring(v,_SC("RAND_MAX"),-1);
|
||||
sq_pushinteger(v,RAND_MAX);
|
||||
sq_createslot(v,-3);
|
||||
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
|
||||
sq_pushstring(v,_SC("PI"),-1);
|
||||
sq_pushfloat(v,(SQFloat)M_PI);
|
||||
sq_createslot(v,-3);
|
||||
|
2
src/3rdparty/squirrel/sqstdlib/sqstdrex.cpp
vendored
2
src/3rdparty/squirrel/sqstdlib/sqstdrex.cpp
vendored
@@ -558,12 +558,12 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
|
||||
#endif
|
||||
exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch));
|
||||
memset(exp->_matches,0,exp->_nsubexpr * sizeof(SQRexMatch));
|
||||
return exp;
|
||||
}
|
||||
catch (...) {
|
||||
sqstd_rex_free(exp);
|
||||
return NULL;
|
||||
}
|
||||
return exp;
|
||||
}
|
||||
|
||||
void sqstd_rex_free(SQRex *exp)
|
||||
|
25
src/3rdparty/squirrel/sqstdlib/sqstdstring.cpp
vendored
25
src/3rdparty/squirrel/sqstdlib/sqstdstring.cpp
vendored
@@ -79,16 +79,15 @@ static void _append_string(SQInteger &i, SQChar *dest, SQInteger allocated, cons
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
|
||||
SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output)
|
||||
static SQInteger _string_format(HSQUIRRELVM v)
|
||||
{
|
||||
const SQChar *format;
|
||||
SQChar *dest;
|
||||
SQChar fmt[MAX_FORMAT_LEN];
|
||||
sq_getstring(v,nformatstringidx,&format);
|
||||
SQInteger allocated = (sq_getsize(v,nformatstringidx)+2)*sizeof(SQChar);
|
||||
sq_getstring(v,2,&format);
|
||||
SQInteger allocated = (sq_getsize(v,2)+1)*sizeof(SQChar);
|
||||
dest = sq_getscratchpad(v,allocated);
|
||||
SQInteger n = 0,i = 0, nparam = nformatstringidx+1, w = 0;
|
||||
SQInteger n = 0,i = 0, nparam = 3, w = 0;
|
||||
while(format[n] != '\0') {
|
||||
if(format[n] != '%') {
|
||||
assert(i < allocated);
|
||||
@@ -133,7 +132,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
|
||||
return sq_throwerror(v,_SC("invalid format"));
|
||||
}
|
||||
n++;
|
||||
allocated += addlen + sizeof(SQChar);
|
||||
allocated += addlen;
|
||||
dest = sq_getscratchpad(v,allocated);
|
||||
switch(valtype) {
|
||||
case 's': _append_string(i,dest,allocated,fmt,ts); break;
|
||||
@@ -143,19 +142,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
|
||||
nparam ++;
|
||||
}
|
||||
}
|
||||
*outlen = i;
|
||||
dest[i] = '\0';
|
||||
*output = dest;
|
||||
return SQ_OK;
|
||||
}
|
||||
|
||||
static SQInteger _string_format(HSQUIRRELVM v)
|
||||
{
|
||||
SQChar *dest = NULL;
|
||||
SQInteger length = 0;
|
||||
if(SQ_FAILED(sqstd_format(v,2,&length,&dest)))
|
||||
return -1;
|
||||
sq_pushstring(v,dest,length);
|
||||
sq_pushstring(v,dest,i);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
11
src/3rdparty/squirrel/squirrel/sqapi.cpp
vendored
11
src/3rdparty/squirrel/squirrel/sqapi.cpp
vendored
@@ -90,11 +90,6 @@ SQInteger sq_getvmstate(HSQUIRRELVM v)
|
||||
}
|
||||
}
|
||||
|
||||
void sq_decreaseops(HSQUIRRELVM v, int amount)
|
||||
{
|
||||
v->DecreaseOps(amount);
|
||||
}
|
||||
|
||||
bool sq_can_suspend(HSQUIRRELVM v)
|
||||
{
|
||||
return v->_nnativecalls <= 2;
|
||||
@@ -989,7 +984,7 @@ SQRESULT sq_suspendvm(HSQUIRRELVM v)
|
||||
return v->Suspend();
|
||||
}
|
||||
|
||||
SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseerror,SQBool throwerror)
|
||||
SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseerror)
|
||||
{
|
||||
SQObjectPtr ret;
|
||||
if(!v->_suspended)
|
||||
@@ -999,10 +994,8 @@ SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseer
|
||||
v->Pop();
|
||||
} else v->GetAt(v->_stackbase+v->_suspended_target)=_null_;
|
||||
v->_can_suspend = false;
|
||||
if(!v->Execute(_null_,v->_top,-1,-1,ret,raiseerror,throwerror?SQVM::ET_RESUME_THROW_VM : SQVM::ET_RESUME_VM))
|
||||
if(!v->Execute(_null_,v->_top,-1,-1,ret,raiseerror,SQVM::ET_RESUME_VM)) {
|
||||
return SQ_ERROR;
|
||||
if(sq_getvmstate(v) == SQ_VMSTATE_IDLE) {
|
||||
while (v->_top > 1) v->_stack[--v->_top] = _null_;
|
||||
}
|
||||
if(retval)
|
||||
v->Push(ret);
|
||||
|
5
src/3rdparty/squirrel/squirrel/sqbaselib.cpp
vendored
5
src/3rdparty/squirrel/squirrel/sqbaselib.cpp
vendored
@@ -277,9 +277,6 @@ void sq_base_register(HSQUIRRELVM v)
|
||||
sq_pushstring(v,_SC("_intsize_"),-1);
|
||||
sq_pushinteger(v,sizeof(SQInteger));
|
||||
sq_createslot(v,-3);
|
||||
sq_pushstring(v,_SC("_floatsize_"),-1);
|
||||
sq_pushinteger(v,sizeof(SQFloat));
|
||||
sq_createslot(v,-3);
|
||||
sq_pop(v,1);
|
||||
}
|
||||
|
||||
@@ -818,7 +815,7 @@ static SQInteger thread_wakeup(HSQUIRRELVM v)
|
||||
if(wakeupret) {
|
||||
sq_move(thread,v,2);
|
||||
}
|
||||
if(SQ_SUCCEEDED(sq_wakeupvm(thread,wakeupret,SQTrue,SQTrue,SQFalse))) {
|
||||
if(SQ_SUCCEEDED(sq_wakeupvm(thread,wakeupret,SQTrue,SQFalse))) {
|
||||
sq_move(v,thread,-1);
|
||||
sq_pop(thread,1); //pop retval
|
||||
if(sq_getvmstate(thread) == SQ_VMSTATE_IDLE) {
|
||||
|
17
src/3rdparty/squirrel/squirrel/sqdebug.cpp
vendored
17
src/3rdparty/squirrel/squirrel/sqdebug.cpp
vendored
@@ -9,23 +9,6 @@
|
||||
#include "sqclosure.h"
|
||||
#include "sqstring.h"
|
||||
|
||||
SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi)
|
||||
{
|
||||
SQInteger cssize = v->_callsstacksize;
|
||||
if (cssize > level) {
|
||||
SQVM::CallInfo &ci = v->_callsstack[cssize-level-1];
|
||||
if(sq_isclosure(ci._closure)) {
|
||||
SQClosure *c = _closure(ci._closure);
|
||||
SQFunctionProto *proto = _funcproto(c->_function);
|
||||
fi->funcid = proto;
|
||||
fi->name = type(proto->_name) == OT_STRING?_stringval(proto->_name):_SC("unknown");
|
||||
fi->source = type(proto->_name) == OT_STRING?_stringval(proto->_sourcename):_SC("unknown");
|
||||
return SQ_OK;
|
||||
}
|
||||
}
|
||||
return sq_throwerror(v,_SC("the object is not a closure"));
|
||||
}
|
||||
|
||||
SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si)
|
||||
{
|
||||
SQInteger cssize = v->_callsstacksize;
|
||||
|
@@ -86,7 +86,7 @@ void DumpLiteral(SQObjectPtr &o)
|
||||
case OT_INTEGER: scprintf(_SC("{%d}"),_integer(o));break;
|
||||
#endif
|
||||
case OT_BOOL: scprintf(_SC("%s"),_integer(o)?_SC("true"):_SC("false"));break;
|
||||
default: scprintf(_SC("(%s %p)"),GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler
|
||||
default: scprintf(_SC("(%s %p)"),GetTypeName(o),_rawval(o));break; break; //shut up compiler
|
||||
}
|
||||
}
|
||||
|
||||
|
24
src/3rdparty/squirrel/squirrel/sqobject.h
vendored
24
src/3rdparty/squirrel/squirrel/sqobject.h
vendored
@@ -117,7 +117,7 @@ struct SQObjectPtr;
|
||||
#define _delegable(obj) ((SQDelegable *)(obj)._unVal.pDelegable)
|
||||
#define _weakref(obj) ((obj)._unVal.pWeakRef)
|
||||
#define _refcounted(obj) ((obj)._unVal.pRefCounted)
|
||||
#define _rawval(obj) ((obj)._unVal.raw)
|
||||
#define _rawval(obj) ((obj)._unVal.pRefCounted)
|
||||
|
||||
#define _stringval(obj) (obj)._unVal.pString->_val
|
||||
#define _userdataval(obj) (obj)._unVal.pUserData->_val
|
||||
@@ -130,27 +130,23 @@ struct SQObjectPtr : public SQObject
|
||||
{
|
||||
SQObjectPtr()
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_NULL;
|
||||
_unVal.pUserPointer=NULL;
|
||||
}
|
||||
SQObjectPtr(const SQObjectPtr &o)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=o._type;
|
||||
_unVal=o._unVal;
|
||||
__AddRef(_type,_unVal);
|
||||
}
|
||||
SQObjectPtr(const SQObject &o)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=o._type;
|
||||
_unVal=o._unVal;
|
||||
__AddRef(_type,_unVal);
|
||||
}
|
||||
SQObjectPtr(SQTable *pTable)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_TABLE;
|
||||
_unVal.pTable=pTable;
|
||||
assert(_unVal.pTable);
|
||||
@@ -158,7 +154,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQClass *pClass)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_CLASS;
|
||||
_unVal.pClass=pClass;
|
||||
assert(_unVal.pClass);
|
||||
@@ -166,7 +161,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQInstance *pInstance)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_INSTANCE;
|
||||
_unVal.pInstance=pInstance;
|
||||
assert(_unVal.pInstance);
|
||||
@@ -174,7 +168,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQArray *pArray)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_ARRAY;
|
||||
_unVal.pArray=pArray;
|
||||
assert(_unVal.pArray);
|
||||
@@ -182,7 +175,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQClosure *pClosure)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_CLOSURE;
|
||||
_unVal.pClosure=pClosure;
|
||||
assert(_unVal.pClosure);
|
||||
@@ -190,7 +182,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQGenerator *pGenerator)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_GENERATOR;
|
||||
_unVal.pGenerator=pGenerator;
|
||||
assert(_unVal.pGenerator);
|
||||
@@ -198,7 +189,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQNativeClosure *pNativeClosure)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_NATIVECLOSURE;
|
||||
_unVal.pNativeClosure=pNativeClosure;
|
||||
assert(_unVal.pNativeClosure);
|
||||
@@ -206,7 +196,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQString *pString)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_STRING;
|
||||
_unVal.pString=pString;
|
||||
assert(_unVal.pString);
|
||||
@@ -214,7 +203,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQUserData *pUserData)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_USERDATA;
|
||||
_unVal.pUserData=pUserData;
|
||||
assert(_unVal.pUserData);
|
||||
@@ -222,7 +210,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQVM *pThread)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_THREAD;
|
||||
_unVal.pThread=pThread;
|
||||
assert(_unVal.pThread);
|
||||
@@ -230,7 +217,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQWeakRef *pWeakRef)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_WEAKREF;
|
||||
_unVal.pWeakRef=pWeakRef;
|
||||
assert(_unVal.pWeakRef);
|
||||
@@ -238,7 +224,6 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQFunctionProto *pFunctionProto)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_FUNCPROTO;
|
||||
_unVal.pFunctionProto=pFunctionProto;
|
||||
assert(_unVal.pFunctionProto);
|
||||
@@ -246,25 +231,24 @@ struct SQObjectPtr : public SQObject
|
||||
}
|
||||
SQObjectPtr(SQInteger nInteger)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_unVal.pUserPointer=NULL;
|
||||
_type=OT_INTEGER;
|
||||
_unVal.nInteger=nInteger;
|
||||
}
|
||||
SQObjectPtr(SQFloat fFloat)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_unVal.pUserPointer=NULL;
|
||||
_type=OT_FLOAT;
|
||||
_unVal.fFloat=fFloat;
|
||||
}
|
||||
SQObjectPtr(bool bBool)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_unVal.pUserPointer=NULL;
|
||||
_type = OT_BOOL;
|
||||
_unVal.nInteger = bBool?1:0;
|
||||
}
|
||||
SQObjectPtr(SQUserPointer pUserPointer)
|
||||
{
|
||||
SQ_OBJECT_RAWINIT()
|
||||
_type=OT_USERPOINTER;
|
||||
_unVal.pUserPointer=pUserPointer;
|
||||
}
|
||||
|
45
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
45
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
@@ -17,21 +17,6 @@
|
||||
|
||||
#define TOP() (_stack._vals[_top-1])
|
||||
|
||||
#define CLEARSTACK(_last_top) { if((_last_top) >= _top) ClearStack(_last_top); }
|
||||
void SQVM::ClearStack(SQInteger last_top)
|
||||
{
|
||||
SQObjectType tOldType;
|
||||
SQObjectValue unOldVal;
|
||||
while (last_top >= _top) {
|
||||
SQObjectPtr &o = _stack._vals[last_top--];
|
||||
tOldType = o._type;
|
||||
unOldVal = o._unVal;
|
||||
o._type = OT_NULL;
|
||||
o._unVal.pUserPointer = NULL;
|
||||
__Release(tOldType,unOldVal);
|
||||
}
|
||||
}
|
||||
|
||||
bool SQVM::BW_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2)
|
||||
{
|
||||
SQInteger res;
|
||||
@@ -305,10 +290,12 @@ void SQVM::TypeOf(const SQObjectPtr &obj1,SQObjectPtr &dest)
|
||||
bool SQVM::Init(SQVM *friendvm, SQInteger stacksize)
|
||||
{
|
||||
_stack.resize(stacksize);
|
||||
//_callsstack.reserve(4);
|
||||
_alloccallsstacksize = 4;
|
||||
_callstackdata.resize(_alloccallsstacksize);
|
||||
_callsstacksize = 0;
|
||||
_callsstack = &_callstackdata[0];
|
||||
//_callsstack = (CallInfo*)sq_malloc(_alloccallsstacksize*sizeof(CallInfo));
|
||||
_stackbase = 0;
|
||||
_top = 0;
|
||||
if(!friendvm)
|
||||
@@ -459,7 +446,7 @@ bool SQVM::DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjec
|
||||
|
||||
#define arg0 (_i_._arg0)
|
||||
#define arg1 (_i_._arg1)
|
||||
#define sarg1 (*(const_cast<SQInt32 *>(&_i_._arg1)))
|
||||
#define sarg1 (*((SQInt32 *)&_i_._arg1))
|
||||
#define arg2 (_i_._arg2)
|
||||
#define arg3 (_i_._arg3)
|
||||
#define sarg3 ((SQInteger)*((signed char *)&_i_._arg3))
|
||||
@@ -691,25 +678,13 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger target, SQInteger nargs, SQIn
|
||||
bool ct_tailcall;
|
||||
|
||||
switch(et) {
|
||||
case ET_CALL: {
|
||||
SQInteger last_top = _top;
|
||||
temp_reg = closure;
|
||||
if(!StartCall(_closure(temp_reg), _top - nargs, nargs, stackbase, false)) {
|
||||
case ET_CALL:
|
||||
if(!StartCall(_closure(closure), _top - nargs, nargs, stackbase, false)) {
|
||||
//call the handler if there are no calls in the stack, if not relies on the previous node
|
||||
if(ci == NULL) CallErrorHandler(_lasterror);
|
||||
return false;
|
||||
}
|
||||
if (_funcproto(_closure(temp_reg)->_function)->_bgenerator) {
|
||||
//SQFunctionProto *f = _funcproto(_closure(temp_reg)->_function);
|
||||
SQGenerator *gen = SQGenerator::Create(_ss(this), _closure(temp_reg));
|
||||
_GUARD(gen->Yield(this));
|
||||
Return(1, ci->_target, temp_reg);
|
||||
outres = gen;
|
||||
CLEARSTACK(last_top);
|
||||
return true;
|
||||
}
|
||||
ci->_root = SQTrue;
|
||||
}
|
||||
break;
|
||||
case ET_RESUME_GENERATOR: _generator(closure)->Resume(this, target); ci->_root = SQTrue; traps += ci->_etraps; break;
|
||||
case ET_RESUME_VM:
|
||||
@@ -749,7 +724,7 @@ exception_restore:
|
||||
case _OP_DLOAD: TARGET = ci->_literals[arg1]; STK(arg2) = ci->_literals[arg3];continue;
|
||||
case _OP_TAILCALL:
|
||||
temp_reg = STK(arg1);
|
||||
if (type(temp_reg) == OT_CLOSURE && !_funcproto(_closure(temp_reg)->_function)->_bgenerator){
|
||||
if (type(temp_reg) == OT_CLOSURE){
|
||||
ct_tailcall = true;
|
||||
if(ci->_vargs.size) PopVarArgs(ci->_vargs);
|
||||
for (SQInteger i = 0; i < arg3; i++) STK(i) = STK(arg2 + i);
|
||||
@@ -775,7 +750,7 @@ common_call:
|
||||
Return(1, ct_target, clo);
|
||||
STK(ct_target) = gen;
|
||||
}
|
||||
CLEARSTACK(last_top);
|
||||
while (last_top >= _top) _stack._vals[last_top--].Null();
|
||||
}
|
||||
continue;
|
||||
case OT_NATIVECLOSURE: {
|
||||
@@ -1054,7 +1029,7 @@ exception_trap:
|
||||
_stackbase = et._stackbase;
|
||||
_stack._vals[_stackbase+et._extarget] = currerror;
|
||||
_etraps.pop_back(); traps--; ci->_etraps--;
|
||||
CLEARSTACK(last_top);
|
||||
while(last_top >= _top) _stack._vals[last_top--].Null();
|
||||
goto exception_restore;
|
||||
}
|
||||
//if is a native closure
|
||||
@@ -1082,7 +1057,7 @@ exception_trap:
|
||||
if( (ci && type(ci->_closure) != OT_CLOSURE) || exitafterthisone) break;
|
||||
} while(_callsstacksize);
|
||||
|
||||
CLEARSTACK(last_top);
|
||||
while(last_top >= _top) _stack._vals[last_top--].Null();
|
||||
}
|
||||
_lasterror = currerror;
|
||||
return false;
|
||||
@@ -1094,6 +1069,8 @@ bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr
|
||||
{
|
||||
inst = theclass->CreateInstance();
|
||||
if(!theclass->Get(_ss(this)->_constructoridx,constructor)) {
|
||||
//if(!Call(constr,nargs,stackbase,constr,false))
|
||||
// return false;
|
||||
constructor = _null_;
|
||||
}
|
||||
return true;
|
||||
|
1
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
1
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
@@ -108,7 +108,6 @@ public:
|
||||
_INLINE bool PLOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr);
|
||||
_INLINE bool DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjectPtr &key, SQObjectPtr &incr, bool postfix);
|
||||
void PopVarArgs(VarArgs &vargs);
|
||||
void ClearStack(SQInteger last_top);
|
||||
#ifdef _DEBUG_DUMP
|
||||
void dumpstack(SQInteger stackbase=-1, bool dumpall = false);
|
||||
#endif
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai.hpp Base functions for all AIs. */
|
||||
|
||||
#ifndef AI_HPP
|
||||
@@ -15,7 +8,6 @@
|
||||
#include "api/ai_event_types.hpp"
|
||||
#include "../date_type.h"
|
||||
#include "../core/string_compare_type.hpp"
|
||||
#include <map>
|
||||
|
||||
typedef std::map<const char *, class AIInfo *, StringCompare> AIInfoList;
|
||||
|
||||
@@ -61,7 +53,7 @@ public:
|
||||
/**
|
||||
* Stop a company to be controlled by an AI.
|
||||
* @param company The company from which the AI needs to detach.
|
||||
* @pre Company::IsValidAiID(company)
|
||||
* @pre !IsHumanCompany(company).
|
||||
*/
|
||||
static void Stop(CompanyID company);
|
||||
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_config.cpp Implementation of AIConfig. */
|
||||
|
||||
#include "../stdafx.h"
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_config.hpp AIConfig stores the configuration settings of every AI. */
|
||||
|
||||
#ifndef AI_CONFIG_HPP
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_core.cpp Implementation of AI. */
|
||||
|
||||
#include "../stdafx.h"
|
||||
@@ -15,13 +8,13 @@
|
||||
#include "../company_func.h"
|
||||
#include "../debug.h"
|
||||
#include "../network/network.h"
|
||||
#include "../settings_type.h"
|
||||
#include "../window_func.h"
|
||||
#include "../command_func.h"
|
||||
#include "ai.hpp"
|
||||
#include "ai_scanner.hpp"
|
||||
#include "ai_instance.hpp"
|
||||
#include "ai_config.hpp"
|
||||
#include "api/ai_error.hpp"
|
||||
|
||||
/* static */ uint AI::frame_counter = 0;
|
||||
/* static */ AIScanner *AI::ai_scanner = NULL;
|
||||
@@ -34,7 +27,7 @@
|
||||
|
||||
/* static */ void AI::StartNew(CompanyID company)
|
||||
{
|
||||
assert(Company::IsValidID(company));
|
||||
assert(IsValidCompanyID(company));
|
||||
|
||||
/* Clients shouldn't start AIs */
|
||||
if (_networking && !_network_server) return;
|
||||
@@ -48,7 +41,7 @@
|
||||
}
|
||||
|
||||
_current_company = company;
|
||||
Company *c = Company::Get(company);
|
||||
Company *c = GetCompany(company);
|
||||
|
||||
c->ai_info = info;
|
||||
assert(c->ai_instance == NULL);
|
||||
@@ -70,7 +63,7 @@
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) {
|
||||
if (!IsHumanCompany(c->index)) {
|
||||
_current_company = c->index;
|
||||
c->ai_instance->GameLoop();
|
||||
}
|
||||
@@ -80,7 +73,7 @@
|
||||
* Effectively collecting garbage once every two months per AI. */
|
||||
if ((AI::frame_counter & 255) == 0) {
|
||||
CompanyID cid = (CompanyID)GB(AI::frame_counter, 8, 4);
|
||||
if (Company::IsValidAiID(cid)) Company::Get(cid)->ai_instance->CollectGarbage();
|
||||
if (IsValidCompanyID(cid) && !IsHumanCompany(cid)) GetCompany(cid)->ai_instance->CollectGarbage();
|
||||
}
|
||||
|
||||
_current_company = OWNER_NONE;
|
||||
@@ -97,7 +90,7 @@
|
||||
|
||||
CompanyID old_company = _current_company;
|
||||
_current_company = company;
|
||||
Company *c = Company::Get(company);
|
||||
Company *c = GetCompany(company);
|
||||
|
||||
delete c->ai_instance;
|
||||
c->ai_instance = NULL;
|
||||
@@ -110,11 +103,11 @@
|
||||
/* static */ void AI::KillAll()
|
||||
{
|
||||
/* It might happen there are no companies .. than we have nothing to loop */
|
||||
if (Company::GetPoolSize() == 0) return;
|
||||
if (GetCompanyPoolSize() == 0) return;
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) AI::Stop(c->index);
|
||||
if (!IsHumanCompany(c->index)) AI::Stop(c->index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,7 +177,7 @@
|
||||
}
|
||||
|
||||
/* Only AIs can have an event-queue */
|
||||
if (!Company::IsValidAiID(company)) {
|
||||
if (!IsValidCompanyID(company) || IsHumanCompany(company)) {
|
||||
event->Release();
|
||||
return;
|
||||
}
|
||||
@@ -227,18 +220,18 @@ void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||
AIObject::IncreaseDoCommandCosts(AIObject::GetLastCost());
|
||||
}
|
||||
|
||||
Company::Get(_current_company)->ai_instance->Continue();
|
||||
GetCompany(_current_company)->ai_instance->Continue();
|
||||
}
|
||||
|
||||
/* static */ void AI::Save(CompanyID company)
|
||||
{
|
||||
if (!_networking || _network_server) {
|
||||
Company *c = Company::GetIfValid(company);
|
||||
assert(c != NULL && c->ai_instance != NULL);
|
||||
assert(IsValidCompanyID(company));
|
||||
assert(GetCompany(company)->ai_instance != NULL);
|
||||
|
||||
CompanyID old_company = _current_company;
|
||||
_current_company = company;
|
||||
c->ai_instance->Save();
|
||||
GetCompany(company)->ai_instance->Save();
|
||||
_current_company = old_company;
|
||||
} else {
|
||||
AIInstance::SaveEmpty();
|
||||
@@ -248,12 +241,12 @@ void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||
/* static */ void AI::Load(CompanyID company, int version)
|
||||
{
|
||||
if (!_networking || _network_server) {
|
||||
Company *c = Company::GetIfValid(company);
|
||||
assert(c != NULL && c->ai_instance != NULL);
|
||||
assert(IsValidCompanyID(company));
|
||||
assert(GetCompany(company)->ai_instance != NULL);
|
||||
|
||||
CompanyID old_company = _current_company;
|
||||
_current_company = company;
|
||||
c->ai_instance->Load(version);
|
||||
GetCompany(company)->ai_instance->Load(version);
|
||||
_current_company = old_company;
|
||||
} else {
|
||||
/* Read, but ignore, the load data */
|
||||
@@ -265,7 +258,7 @@ void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||
{
|
||||
/* Find the first company which doesn't exist yet */
|
||||
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
|
||||
if (!Company::IsValidID(c)) return AIConfig::GetConfig(c)->GetSetting("start_date");
|
||||
if (!IsValidCompanyID(c)) return AIConfig::GetConfig(c)->GetSetting("start_date");
|
||||
}
|
||||
|
||||
/* Currently no AI can be started, check again in a year. */
|
||||
@@ -294,7 +287,7 @@ void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2)
|
||||
|
||||
/* static */ bool AI::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm)
|
||||
{
|
||||
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, Company::Get(_current_company)->ai_instance->GetController());
|
||||
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, GetCompany(_current_company)->ai_instance->GetController());
|
||||
}
|
||||
|
||||
/* static */ void AI::Rescan()
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_gui.hpp Window for configuring the AIs */
|
||||
|
||||
#ifndef AI_GUI_HPP
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_info.cpp Implementation of AIFileInfo */
|
||||
|
||||
#include "../stdafx.h"
|
||||
@@ -19,8 +12,6 @@
|
||||
#include "ai_scanner.hpp"
|
||||
#include "../settings_type.h"
|
||||
#include "../openttd.h"
|
||||
#include "../debug.h"
|
||||
#include "../rev.h"
|
||||
|
||||
AIConfigItem _start_date_config = {
|
||||
"start_date",
|
||||
@@ -37,23 +28,83 @@ AIConfigItem _start_date_config = {
|
||||
NULL
|
||||
};
|
||||
|
||||
AIFileInfo::~AIFileInfo()
|
||||
{
|
||||
free((void *)this->author);
|
||||
free((void *)this->name);
|
||||
free((void *)this->short_name);
|
||||
free((void *)this->description);
|
||||
free((void *)this->date);
|
||||
free((void *)this->instance_name);
|
||||
free((void *)this->url);
|
||||
free(this->main_script);
|
||||
free(this->SQ_instance);
|
||||
}
|
||||
|
||||
AILibrary::~AILibrary()
|
||||
{
|
||||
free((void *)this->category);
|
||||
}
|
||||
|
||||
/* static */ SQInteger AIFileInfo::Constructor(HSQUIRRELVM vm, AIFileInfo *info)
|
||||
bool AIFileInfo::GetSettings()
|
||||
{
|
||||
SQInteger res = ScriptFileInfo::Constructor(vm, info);
|
||||
if (res != 0) return res;
|
||||
info->base = ((AIScanner *)Squirrel::GetGlobalPointer(vm));
|
||||
|
||||
return 0;
|
||||
return this->engine->CallMethod(*this->SQ_instance, "GetSettings", NULL, -1);
|
||||
}
|
||||
|
||||
static bool CheckAPIVersion(const char *api_version)
|
||||
bool AIFileInfo::CheckMethod(const char *name) const
|
||||
{
|
||||
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0;
|
||||
if (!this->engine->MethodExists(*this->SQ_instance, name)) {
|
||||
char error[1024];
|
||||
snprintf(error, sizeof(error), "your info.nut/library.nut doesn't have the method '%s'", name);
|
||||
this->engine->ThrowError(error);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* static */ SQInteger AIFileInfo::Constructor(HSQUIRRELVM vm, AIFileInfo *info, bool library)
|
||||
{
|
||||
/* Set some basic info from the parent */
|
||||
info->SQ_instance = MallocT<SQObject>(1);
|
||||
Squirrel::GetInstance(vm, info->SQ_instance, 2);
|
||||
/* Make sure the instance stays alive over time */
|
||||
sq_addref(vm, info->SQ_instance);
|
||||
info->base = ((AIScanner *)Squirrel::GetGlobalPointer(vm));
|
||||
info->engine = info->base->GetEngine();
|
||||
|
||||
static const char * const required_functions[] = {
|
||||
"GetAuthor",
|
||||
"GetName",
|
||||
"GetShortName",
|
||||
"GetDescription",
|
||||
"GetVersion",
|
||||
"GetDate",
|
||||
"CreateInstance",
|
||||
};
|
||||
for (size_t i = 0; i < lengthof(required_functions); i++) {
|
||||
if (!info->CheckMethod(required_functions[i])) return SQ_ERROR;
|
||||
}
|
||||
if (library) {
|
||||
if (!info->CheckMethod("GetCategory")) return SQ_ERROR;
|
||||
}
|
||||
|
||||
info->main_script = strdup(info->base->GetMainScript());
|
||||
|
||||
/* Cache the data the info file gives us. */
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetAuthor", &info->author)) return SQ_ERROR;
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetName", &info->name)) return SQ_ERROR;
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetShortName", &info->short_name)) return SQ_ERROR;
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetDescription", &info->description)) return SQ_ERROR;
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetDate", &info->date)) return SQ_ERROR;
|
||||
if (!info->engine->CallIntegerMethod(*info->SQ_instance, "GetVersion", &info->version)) return SQ_ERROR;
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "CreateInstance", &info->instance_name)) return SQ_ERROR;
|
||||
|
||||
/* The GetURL function is optional. */
|
||||
if (info->engine->MethodExists(*info->SQ_instance, "GetURL")) {
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetURL", &info->url)) return SQ_ERROR;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* static */ SQInteger AIInfo::Constructor(HSQUIRRELVM vm)
|
||||
@@ -63,7 +114,7 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
if (SQ_FAILED(sq_getinstanceup(vm, 2, &instance, 0)) || instance == NULL) return sq_throwerror(vm, _SC("Pass an instance of a child class of AIInfo to RegisterAI"));
|
||||
AIInfo *info = (AIInfo *)instance;
|
||||
|
||||
SQInteger res = AIFileInfo::Constructor(vm, info);
|
||||
SQInteger res = AIFileInfo::Constructor(vm, info, false);
|
||||
if (res != 0) return res;
|
||||
|
||||
AIConfigItem config = _start_date_config;
|
||||
@@ -86,16 +137,6 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
} else {
|
||||
info->use_as_random = true;
|
||||
}
|
||||
/* Try to get the API version the AI is written for. */
|
||||
if (info->engine->MethodExists(*info->SQ_instance, "GetAPIVersion")) {
|
||||
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetAPIVersion", &info->api_version)) return SQ_ERROR;
|
||||
if (!CheckAPIVersion(info->api_version)) {
|
||||
DEBUG(ai, 1, "Loading info.nut from (%s.%d): GetAPIVersion returned invalid version", info->GetName(), info->GetVersion());
|
||||
return SQ_ERROR;
|
||||
}
|
||||
} else {
|
||||
info->api_version = strdup("0.7");
|
||||
}
|
||||
|
||||
/* Remove the link to the real instance, else it might get deleted by RegisterAI() */
|
||||
sq_setinstanceup(vm, 2, NULL);
|
||||
@@ -110,15 +151,10 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
SQUserPointer instance;
|
||||
sq_getinstanceup(vm, 2, &instance, 0);
|
||||
AIInfo *info = (AIInfo *)instance;
|
||||
info->api_version = NULL;
|
||||
|
||||
SQInteger res = AIFileInfo::Constructor(vm, info);
|
||||
SQInteger res = AIFileInfo::Constructor(vm, info, false);
|
||||
if (res != 0) return res;
|
||||
|
||||
char buf[8];
|
||||
seprintf(buf, lastof(buf), "%d.%d", GB(_openttd_newgrf_version, 28, 4), GB(_openttd_newgrf_version, 24, 4));
|
||||
info->api_version = strdup(buf);
|
||||
|
||||
/* Remove the link to the real instance, else it might get deleted by RegisterAI() */
|
||||
sq_setinstanceup(vm, 2, NULL);
|
||||
/* Register the AI to the base system */
|
||||
@@ -126,15 +162,9 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool AIInfo::GetSettings()
|
||||
{
|
||||
return this->engine->CallMethod(*this->SQ_instance, "GetSettings", NULL, -1);
|
||||
}
|
||||
|
||||
AIInfo::AIInfo() :
|
||||
min_loadable_version(0),
|
||||
use_as_random(false),
|
||||
api_version(NULL)
|
||||
use_as_random(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -142,8 +172,8 @@ AIInfo::~AIInfo()
|
||||
{
|
||||
/* Free all allocated strings */
|
||||
for (AIConfigItemList::iterator it = this->config_list.begin(); it != this->config_list.end(); it++) {
|
||||
free((void*)(*it).name);
|
||||
free((void*)(*it).description);
|
||||
free((char *)(*it).name);
|
||||
free((char *)(*it).description);
|
||||
if (it->labels != NULL) {
|
||||
for (LabelMapping::iterator it2 = (*it).labels->Begin(); it2 != (*it).labels->End(); it2++) {
|
||||
free(it2->second);
|
||||
@@ -152,7 +182,6 @@ AIInfo::~AIInfo()
|
||||
}
|
||||
}
|
||||
this->config_list.clear();
|
||||
free((void*)this->api_version);
|
||||
}
|
||||
|
||||
bool AIInfo::CanLoadFromVersion(int version) const
|
||||
@@ -179,13 +208,12 @@ SQInteger AIInfo::AddSetting(HSQUIRRELVM vm)
|
||||
if (strcmp(key, "name") == 0) {
|
||||
const SQChar *sqvalue;
|
||||
if (SQ_FAILED(sq_getstring(vm, -1, &sqvalue))) return SQ_ERROR;
|
||||
char *name = strdup(FS2OTTD(sqvalue));
|
||||
config.name = strdup(FS2OTTD(sqvalue));
|
||||
char *s;
|
||||
/* Don't allow '=' and ',' in configure setting names, as we need those
|
||||
* 2 chars to nicely store the settings as a string. */
|
||||
while ((s = strchr(name, '=')) != NULL) *s = '_';
|
||||
while ((s = strchr(name, ',')) != NULL) *s = '_';
|
||||
config.name = name;
|
||||
while ((s = (char *)strchr(config.name, '=')) != NULL) *s = '_';
|
||||
while ((s = (char *)strchr(config.name, ',')) != NULL) *s = '_';
|
||||
items |= 0x001;
|
||||
} else if (strcmp(key, "description") == 0) {
|
||||
const SQChar *sqdescription;
|
||||
@@ -217,7 +245,7 @@ SQInteger AIInfo::AddSetting(HSQUIRRELVM vm)
|
||||
if (SQ_FAILED(sq_getinteger(vm, -1, &res))) return SQ_ERROR;
|
||||
config.hard_value = res;
|
||||
items |= 0x040;
|
||||
} else if (strcmp(key, "random_deviation") == 0) {
|
||||
} else if (strcmp(key, "random_deviation") == 0) {
|
||||
SQInteger res;
|
||||
if (SQ_FAILED(sq_getinteger(vm, -1, &res))) return SQ_ERROR;
|
||||
config.random_deviation = res;
|
||||
@@ -350,14 +378,14 @@ int AIInfo::GetSettingDefaultValue(const char *name) const
|
||||
/* Create a new AIFileInfo */
|
||||
AILibrary *library = new AILibrary();
|
||||
|
||||
SQInteger res = AIFileInfo::Constructor(vm, library);
|
||||
SQInteger res = AIFileInfo::Constructor(vm, library, true);
|
||||
if (res != 0) {
|
||||
delete library;
|
||||
return res;
|
||||
}
|
||||
|
||||
/* Cache the category */
|
||||
if (!library->CheckMethod("GetCategory") || !library->engine->CallStringMethodStrdup(*library->SQ_instance, "GetCategory", &library->category)) {
|
||||
if (!library->engine->CallStringMethodStrdup(*library->SQ_instance, "GetCategory", &library->category)) {
|
||||
delete library;
|
||||
return SQ_ERROR;
|
||||
}
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_info.hpp AIInfo keeps track of all information of an AI, like Author, Description, ... */
|
||||
|
||||
#ifndef AI_INFO
|
||||
@@ -14,7 +7,7 @@
|
||||
|
||||
#include <list>
|
||||
#include "../core/smallmap_type.hpp"
|
||||
#include "../script/script_info.hpp"
|
||||
#include "api/ai_object.hpp"
|
||||
|
||||
enum AIConfigFlags {
|
||||
AICONFIG_NONE = 0x0,
|
||||
@@ -43,15 +36,87 @@ extern AIConfigItem _start_date_config;
|
||||
|
||||
typedef std::list<AIConfigItem> AIConfigItemList;
|
||||
|
||||
class AIFileInfo : public ScriptFileInfo {
|
||||
class AIFileInfo : public AIObject {
|
||||
public:
|
||||
friend class AIInfo;
|
||||
friend class AILibrary;
|
||||
|
||||
AIFileInfo() : SQ_instance(NULL), main_script(NULL), author(NULL), name(NULL), short_name(NULL), description(NULL), date(NULL), instance_name(NULL), version(0), url(NULL) {};
|
||||
~AIFileInfo();
|
||||
|
||||
/**
|
||||
* Get the Author of the AI.
|
||||
*/
|
||||
const char *GetAuthor() const { return this->author; }
|
||||
|
||||
/**
|
||||
* Get the Name of the AI.
|
||||
*/
|
||||
const char *GetName() const { return this->name; }
|
||||
|
||||
/**
|
||||
* Get the 4 character long short name of the AI.
|
||||
*/
|
||||
const char *GetShortName() const { return this->short_name; }
|
||||
|
||||
/**
|
||||
* Get the description of the AI.
|
||||
*/
|
||||
const char *GetDescription() const { return this->description; }
|
||||
|
||||
/**
|
||||
* Get the version of the AI.
|
||||
*/
|
||||
int GetVersion() const { return this->version; }
|
||||
|
||||
/**
|
||||
* Get the settings of the AI.
|
||||
*/
|
||||
bool GetSettings();
|
||||
|
||||
/**
|
||||
* Get the date of the AI.
|
||||
*/
|
||||
const char *GetDate() const { return this->date; }
|
||||
|
||||
/**
|
||||
* Get the name of the instance of the AI to create.
|
||||
*/
|
||||
const char *GetInstanceName() const { return this->instance_name; }
|
||||
|
||||
/**
|
||||
* Get the website for this script.
|
||||
*/
|
||||
const char *GetURL() const { return this->url; }
|
||||
|
||||
/**
|
||||
* Get the filename of the main.nut script.
|
||||
*/
|
||||
const char *GetMainScript() const { return this->main_script; }
|
||||
|
||||
/**
|
||||
* Check if a given method exists.
|
||||
*/
|
||||
bool CheckMethod(const char *name) const;
|
||||
|
||||
/**
|
||||
* Process the creation of a FileInfo object.
|
||||
*/
|
||||
static SQInteger Constructor(HSQUIRRELVM vm, AIFileInfo *info);
|
||||
static SQInteger Constructor(HSQUIRRELVM vm, AIFileInfo *info, bool library);
|
||||
|
||||
protected:
|
||||
private:
|
||||
class Squirrel *engine;
|
||||
HSQOBJECT *SQ_instance;
|
||||
char *main_script;
|
||||
class AIScanner *base;
|
||||
const char *author;
|
||||
const char *name;
|
||||
const char *short_name;
|
||||
const char *description;
|
||||
const char *date;
|
||||
const char *instance_name;
|
||||
int version;
|
||||
const char *url;
|
||||
};
|
||||
|
||||
class AIInfo : public AIFileInfo {
|
||||
@@ -67,11 +132,6 @@ public:
|
||||
static SQInteger Constructor(HSQUIRRELVM vm);
|
||||
static SQInteger DummyConstructor(HSQUIRRELVM vm);
|
||||
|
||||
/**
|
||||
* Get the settings of the AI.
|
||||
*/
|
||||
bool GetSettings();
|
||||
|
||||
/**
|
||||
* Get the config list for this AI.
|
||||
*/
|
||||
@@ -107,16 +167,10 @@ public:
|
||||
*/
|
||||
bool UseAsRandomAI() const { return this->use_as_random; }
|
||||
|
||||
/**
|
||||
* Get the API version this AI is written for.
|
||||
*/
|
||||
const char *GetAPIVersion() const { return this->api_version; }
|
||||
|
||||
private:
|
||||
AIConfigItemList config_list;
|
||||
int min_loadable_version;
|
||||
bool use_as_random;
|
||||
const char *api_version;
|
||||
};
|
||||
|
||||
class AILibrary : public AIFileInfo {
|
||||
|
@@ -1,21 +1,8 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_info_dummy.cpp Implementation of a dummy AI. */
|
||||
|
||||
#include <squirrel.h>
|
||||
#include "../stdafx.h"
|
||||
|
||||
#include "../string_func.h"
|
||||
#include "../strings_func.h"
|
||||
#include "table/strings.h"
|
||||
|
||||
/* The reason this exists in C++, is that a user can trash his ai/ dir,
|
||||
* leaving no AIs available. The complexity to solve this is insane, and
|
||||
* therefor the alternative is used, and make sure there is always an AI
|
||||
@@ -25,7 +12,7 @@
|
||||
* to select manual. It is a fail-over in case no AIs are available.
|
||||
*/
|
||||
|
||||
const SQChar _dummy_script_info[] = _SC(" \n\
|
||||
const SQChar dummy_script_info[] = _SC(" \n\
|
||||
class DummyAI extends AIInfo { \n\
|
||||
function GetAuthor() { return \"OpenTTD NoAI Developers Team\"; } \n\
|
||||
function GetName() { return \"DummyAI\"; } \n\
|
||||
@@ -39,12 +26,22 @@ class DummyAI extends AIInfo {
|
||||
RegisterDummyAI(DummyAI()); \n\
|
||||
");
|
||||
|
||||
const SQChar dummy_script[] = _SC(" \n\
|
||||
class DummyAI extends AIController { \n\
|
||||
function Start() { \n\
|
||||
AILog.Error(\"No suitable AI found to load.\"); \n\
|
||||
AILog.Error(\"This AI is a dummy AI and won't do anything.\"); \n\
|
||||
AILog.Error(\"You can download several AIs via the 'Online Content' system.\"); \n\
|
||||
} \n\
|
||||
} \n\
|
||||
");
|
||||
|
||||
void AI_CreateAIInfoDummy(HSQUIRRELVM vm)
|
||||
{
|
||||
sq_pushroottable(vm);
|
||||
|
||||
/* Load and run the script */
|
||||
if (SQ_SUCCEEDED(sq_compilebuffer(vm, _dummy_script_info, scstrlen(_dummy_script_info), _SC("dummy"), SQTrue))) {
|
||||
if (SQ_SUCCEEDED(sq_compilebuffer(vm, dummy_script_info, scstrlen(dummy_script_info), _SC("dummy"), SQTrue))) {
|
||||
sq_push(vm, -2);
|
||||
if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
|
||||
sq_pop(vm, 1);
|
||||
@@ -56,49 +53,10 @@ void AI_CreateAIInfoDummy(HSQUIRRELVM vm)
|
||||
|
||||
void AI_CreateAIDummy(HSQUIRRELVM vm)
|
||||
{
|
||||
/* We want to translate the error message.
|
||||
* We do this in three steps:
|
||||
* 1) We get the error message
|
||||
*/
|
||||
char error_message[1024];
|
||||
GetString(error_message, STR_ERROR_AI_NO_AI_FOUND, lastof(error_message));
|
||||
|
||||
/* Make escapes for all quotes and slashes. */
|
||||
char safe_error_message[1024];
|
||||
char *q = safe_error_message;
|
||||
for (const char *p = error_message; *p != '\0' && q < lastof(safe_error_message) - 2; p++, q++) {
|
||||
if (*p == '"' || *p == '\\') *q++ = '\\';
|
||||
*q = *p;
|
||||
}
|
||||
*q = '\0';
|
||||
|
||||
/* 2) We construct the AI's code. This is done by merging a header, body and footer */
|
||||
char dummy_script[4096];
|
||||
char *dp = dummy_script;
|
||||
dp = strecpy(dp, "class DummyAI extends AIController {\n function Start()\n {\n", lastof(dummy_script));
|
||||
|
||||
/* As special trick we need to split the error message on newlines and
|
||||
* emit each newline as a separate error printing string. */
|
||||
char *newline;
|
||||
char *p = safe_error_message;
|
||||
do {
|
||||
newline = strchr(p, '\n');
|
||||
if (newline != NULL) *newline = '\0';
|
||||
|
||||
dp += seprintf(dp, lastof(dummy_script), " AILog.Error(\"%s\");\n", p);
|
||||
p = newline + 1;
|
||||
} while (newline != NULL);
|
||||
|
||||
dp = strecpy(dp, " }\n}\n", lastof(dummy_script));
|
||||
|
||||
/* 3) We translate the error message in the character format that Squirrel wants.
|
||||
* We can use the fact that the wchar string printing also uses %s to print
|
||||
* old style char strings, which is what was generated during the script generation. */
|
||||
const SQChar *sq_dummy_script = OTTD2FS(dummy_script);
|
||||
|
||||
/* And finally we load and run the script */
|
||||
sq_pushroottable(vm);
|
||||
if (SQ_SUCCEEDED(sq_compilebuffer(vm, sq_dummy_script, scstrlen(sq_dummy_script), _SC("dummy"), SQTrue))) {
|
||||
|
||||
/* Load and run the script */
|
||||
if (SQ_SUCCEEDED(sq_compilebuffer(vm, dummy_script, scstrlen(dummy_script), _SC("dummy"), SQTrue))) {
|
||||
sq_push(vm, -2);
|
||||
if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
|
||||
sq_pop(vm, 1);
|
||||
|
@@ -1,16 +1,10 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_instance.cpp Implementation of AIInstance. */
|
||||
|
||||
#include "../stdafx.h"
|
||||
#include "../debug.h"
|
||||
#include "../settings_type.h"
|
||||
#include "../vehicle_base.h"
|
||||
#include "../saveload/saveload.h"
|
||||
#include "../gui.h"
|
||||
@@ -20,7 +14,11 @@
|
||||
#include "../script/squirrel.hpp"
|
||||
#include "../script/squirrel_helper.hpp"
|
||||
#include "../script/squirrel_class.hpp"
|
||||
#include "../script/squirrel_std.hpp"
|
||||
|
||||
#define DEFINE_SCRIPT_FILES
|
||||
|
||||
#include "ai_info.hpp"
|
||||
#include "ai_config.hpp"
|
||||
#include "ai_storage.hpp"
|
||||
#include "ai_instance.hpp"
|
||||
@@ -32,10 +30,8 @@
|
||||
#include "api/ai_accounting.hpp.sq"
|
||||
#include "api/ai_airport.hpp.sq"
|
||||
#include "api/ai_base.hpp.sq"
|
||||
#include "api/ai_basestation.hpp.sq"
|
||||
#include "api/ai_bridge.hpp.sq"
|
||||
#include "api/ai_bridgelist.hpp.sq"
|
||||
#include "api/ai_buoylist.hpp.sq"
|
||||
#include "api/ai_cargo.hpp.sq"
|
||||
#include "api/ai_cargolist.hpp.sq"
|
||||
#include "api/ai_company.hpp.sq"
|
||||
@@ -80,7 +76,9 @@
|
||||
#include "api/ai_waypoint.hpp.sq"
|
||||
#include "api/ai_waypointlist.hpp.sq"
|
||||
|
||||
#include "../fileio_func.h"
|
||||
#undef DEFINE_SCRIPT_FILES
|
||||
|
||||
/* static */ AIInstance *AIInstance::current_instance = NULL;
|
||||
|
||||
AIStorage::~AIStorage()
|
||||
{
|
||||
@@ -107,7 +105,8 @@ AIInstance::AIInstance(AIInfo *info) :
|
||||
callback(NULL)
|
||||
{
|
||||
/* Set the instance already, so we can use AIObject::Set commands */
|
||||
Company::Get(_current_company)->ai_instance = this;
|
||||
GetCompany(_current_company)->ai_instance = this;
|
||||
AIInstance::current_instance = this;
|
||||
|
||||
this->controller = new AIController();
|
||||
this->storage = new AIStorage();
|
||||
@@ -123,11 +122,6 @@ AIInstance::AIInstance(AIInfo *info) :
|
||||
/* Register the API functions and classes */
|
||||
this->RegisterAPI();
|
||||
|
||||
if (!this->LoadCompatibilityScripts(info->GetAPIVersion())) {
|
||||
this->Died();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
AIObject::SetAllowDoCommand(false);
|
||||
/* Load and execute the script for this AI */
|
||||
@@ -173,11 +167,9 @@ void AIInstance::RegisterAPI()
|
||||
SQAIAccounting_Register(this->engine);
|
||||
SQAIAirport_Register(this->engine);
|
||||
SQAIBase_Register(this->engine);
|
||||
SQAIBaseStation_Register(this->engine);
|
||||
SQAIBridge_Register(this->engine);
|
||||
SQAIBridgeList_Register(this->engine);
|
||||
SQAIBridgeList_Length_Register(this->engine);
|
||||
SQAIBuoyList_Register(this->engine);
|
||||
SQAICargo_Register(this->engine);
|
||||
SQAICargoList_Register(this->engine);
|
||||
SQAICargoList_IndustryAccepting_Register(this->engine);
|
||||
@@ -189,7 +181,6 @@ void AIInstance::RegisterAPI()
|
||||
SQAIEngineList_Register(this->engine);
|
||||
SQAIError_Register(this->engine);
|
||||
SQAIEvent_Register(this->engine);
|
||||
SQAIEventCompanyAskMerger_Register(this->engine);
|
||||
SQAIEventCompanyBankrupt_Register(this->engine);
|
||||
SQAIEventCompanyInTrouble_Register(this->engine);
|
||||
SQAIEventCompanyMerger_Register(this->engine);
|
||||
@@ -247,7 +238,6 @@ void AIInstance::RegisterAPI()
|
||||
SQAIVehicle_Register(this->engine);
|
||||
SQAIVehicleList_Register(this->engine);
|
||||
SQAIVehicleList_DefaultGroup_Register(this->engine);
|
||||
SQAIVehicleList_Depot_Register(this->engine);
|
||||
SQAIVehicleList_Group_Register(this->engine);
|
||||
SQAIVehicleList_SharedOrders_Register(this->engine);
|
||||
SQAIVehicleList_Station_Register(this->engine);
|
||||
@@ -258,28 +248,6 @@ void AIInstance::RegisterAPI()
|
||||
this->engine->SetGlobalPointer(this->engine);
|
||||
}
|
||||
|
||||
bool AIInstance::LoadCompatibilityScripts(const char *api_version)
|
||||
{
|
||||
char script_name[32];
|
||||
seprintf(script_name, lastof(script_name), "compat_%s.nut", api_version);
|
||||
char buf[MAX_PATH];
|
||||
Searchpath sp;
|
||||
FOR_ALL_SEARCHPATHS(sp) {
|
||||
FioAppendDirectory(buf, MAX_PATH, sp, AI_DIR);
|
||||
ttd_strlcat(buf, script_name, MAX_PATH);
|
||||
if (!FileExists(buf)) continue;
|
||||
|
||||
if (this->engine->LoadScript(buf)) return true;
|
||||
|
||||
AILog::Error("Failed to load API compatibility script");
|
||||
DEBUG(ai, 0, "Error compiling / running API compatibility script: %s", buf);
|
||||
return false;
|
||||
}
|
||||
|
||||
AILog::Warning("API compatibility script not found");
|
||||
return true;
|
||||
}
|
||||
|
||||
void AIInstance::Continue()
|
||||
{
|
||||
assert(this->suspend < 0);
|
||||
@@ -300,7 +268,7 @@ void AIInstance::Died()
|
||||
|
||||
const AIInfo *info = AIConfig::GetConfig(_current_company)->GetInfo();
|
||||
if (info != NULL) {
|
||||
ShowErrorMessage(STR_ERROR_AI_PLEASE_REPORT_CRASH, INVALID_STRING_ID, 0, 0);
|
||||
ShowErrorMessage(INVALID_STRING_ID, STR_AI_PLEASE_REPORT_CRASH, 0, 0);
|
||||
|
||||
if (info->GetURL() != NULL) {
|
||||
AILog::Info("Please report the error to the following URL:");
|
||||
@@ -420,8 +388,8 @@ void AIInstance::CollectGarbage()
|
||||
|
||||
/* static */ AIStorage *AIInstance::GetStorage()
|
||||
{
|
||||
assert(Company::IsValidAiID(_current_company));
|
||||
return Company::Get(_current_company)->ai_instance->storage;
|
||||
assert(IsValidCompanyID(_current_company) && !IsHumanCompany(_current_company));
|
||||
return GetCompany(_current_company)->ai_instance->storage;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_instance.hpp The AIInstance tracks an AI. */
|
||||
|
||||
#ifndef AI_INSTANCE_HPP
|
||||
@@ -136,6 +129,8 @@ public:
|
||||
static void LoadEmpty();
|
||||
|
||||
private:
|
||||
static class AIInstance *current_instance; //!< Static current AIInstance, so we can register AIs.
|
||||
|
||||
class AIController *controller;
|
||||
class AIStorage *storage;
|
||||
class Squirrel *engine;
|
||||
@@ -152,11 +147,6 @@ private:
|
||||
*/
|
||||
void RegisterAPI();
|
||||
|
||||
/**
|
||||
* Load squirrel scipts to emulate an older API.
|
||||
*/
|
||||
bool LoadCompatibilityScripts(const char *api_version);
|
||||
|
||||
/**
|
||||
* Tell the AI it died.
|
||||
*/
|
||||
@@ -164,7 +154,6 @@ private:
|
||||
|
||||
/**
|
||||
* Save one object (int / string / arrray / table) to the savegame.
|
||||
* @param vm The virtual machine to get all the data from.
|
||||
* @param index The index on the squirrel stack of the element to save.
|
||||
* @param max_depth The maximum depth recursive arrays / tables will be stored
|
||||
* with before an error is returned.
|
||||
|
@@ -1,19 +1,15 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_scanner.cpp allows scanning AI scripts */
|
||||
|
||||
#include "../stdafx.h"
|
||||
#include "../debug.h"
|
||||
#include "../string_func.h"
|
||||
#include "../fileio_func.h"
|
||||
#include "../fios.h"
|
||||
#include "../network/network.h"
|
||||
#include "../core/random_func.hpp"
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <squirrel.h>
|
||||
#include "../script/squirrel.hpp"
|
||||
@@ -24,16 +20,114 @@
|
||||
#include "ai_scanner.hpp"
|
||||
#include "api/ai_controller.hpp"
|
||||
|
||||
void AIScanner::ScanDir(const char *dirname, bool library_scan)
|
||||
{
|
||||
extern bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb);
|
||||
extern bool FiosIsHiddenFile(const struct dirent *ent);
|
||||
|
||||
char d_name[MAX_PATH];
|
||||
char temp_script[1024];
|
||||
struct stat sb;
|
||||
struct dirent *dirent;
|
||||
DIR *dir;
|
||||
|
||||
dir = ttd_opendir(dirname);
|
||||
/* Dir not found, so do nothing */
|
||||
if (dir == NULL) return;
|
||||
|
||||
/* Walk all dirs trying to find a dir in which 'main.nut' exists */
|
||||
while ((dirent = readdir(dir)) != NULL) {
|
||||
ttd_strlcpy(d_name, FS2OTTD(dirent->d_name), sizeof(d_name));
|
||||
|
||||
/* Valid file, not '.' or '..', not hidden */
|
||||
if (!FiosIsValidFile(dirname, dirent, &sb)) continue;
|
||||
if (strcmp(d_name, ".") == 0 || strcmp(d_name, "..") == 0) continue;
|
||||
if (FiosIsHiddenFile(dirent) && strncasecmp(d_name, PERSONAL_DIR, strlen(d_name)) != 0) continue;
|
||||
|
||||
/* Create the full length dirname */
|
||||
ttd_strlcpy(temp_script, dirname, sizeof(temp_script));
|
||||
ttd_strlcat(temp_script, d_name, sizeof(temp_script));
|
||||
|
||||
if (S_ISREG(sb.st_mode)) {
|
||||
/* Only .tar files are allowed */
|
||||
char *ext = strrchr(d_name, '.');
|
||||
if (ext == NULL || strcasecmp(ext, ".tar") != 0) continue;
|
||||
|
||||
/* We always expect a directory in the TAR */
|
||||
const char *first_dir = FioTarFirstDir(temp_script);
|
||||
if (first_dir == NULL) continue;
|
||||
|
||||
ttd_strlcat(temp_script, PATHSEP, sizeof(temp_script));
|
||||
ttd_strlcat(temp_script, first_dir, sizeof(temp_script));
|
||||
FioTarAddLink(temp_script, first_dir);
|
||||
} else if (!S_ISDIR(sb.st_mode)) {
|
||||
/* Skip any other type of file */
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Add an additional / where needed */
|
||||
if (temp_script[strlen(temp_script) - 1] != PATHSEPCHAR) ttd_strlcat(temp_script, PATHSEP, sizeof(temp_script));
|
||||
|
||||
if (!library_scan) {
|
||||
char info_script[MAX_PATH];
|
||||
ttd_strlcpy(info_script, temp_script, sizeof(info_script));
|
||||
ttd_strlcpy(main_script, temp_script, sizeof(main_script));
|
||||
|
||||
/* Every AI should contain an 'info.nut' and 'main.nut' file; else it is not a valid AI */
|
||||
ttd_strlcat(info_script, "info.nut", sizeof(info_script));
|
||||
ttd_strlcat(main_script, "main.nut", sizeof(main_script));
|
||||
if (!FioCheckFileExists(info_script, AI_DIR) || !FioCheckFileExists(main_script, AI_DIR)) continue;
|
||||
|
||||
DEBUG(ai, 6, "Loading AI at location '%s'", main_script);
|
||||
/* We don't care if one of the other scripts failed to load. */
|
||||
this->engine->ResetCrashed();
|
||||
this->engine->LoadScript(info_script);
|
||||
} else {
|
||||
char library_script[MAX_PATH];
|
||||
ttd_strlcpy(library_script, temp_script, sizeof(library_script));
|
||||
ttd_strlcpy(main_script, temp_script, sizeof(main_script));
|
||||
|
||||
/* Every library should contain an 'library.nut' and 'main.nut' file; else it is not a valid library */
|
||||
ttd_strlcat(library_script, "library.nut", sizeof(library_script));
|
||||
ttd_strlcat(main_script, "main.nut", sizeof(main_script));
|
||||
if (!FioCheckFileExists(library_script, AI_LIBRARY_DIR) || !FioCheckFileExists(main_script, AI_LIBRARY_DIR)) continue;
|
||||
|
||||
DEBUG(ai, 6, "Loading AI Library at location '%s'", main_script);
|
||||
/* We don't care if one of the other scripst failed to load. */
|
||||
this->engine->ResetCrashed();
|
||||
this->engine->LoadScript(library_script);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
|
||||
void AIScanner::ScanAIDir()
|
||||
{
|
||||
char buf[MAX_PATH];
|
||||
Searchpath sp;
|
||||
|
||||
extern void ScanForTarFiles();
|
||||
ScanForTarFiles();
|
||||
|
||||
FOR_ALL_SEARCHPATHS(sp) {
|
||||
FioAppendDirectory(buf, MAX_PATH, sp, AI_DIR);
|
||||
if (FileExists(buf)) this->ScanDir(buf, false);
|
||||
FioAppendDirectory(buf, MAX_PATH, sp, AI_LIBRARY_DIR);
|
||||
if (FileExists(buf)) this->ScanDir(buf, true);
|
||||
}
|
||||
}
|
||||
|
||||
void AIScanner::RescanAIDir()
|
||||
{
|
||||
this->ScanScriptDir("info.nut", AI_DIR);
|
||||
this->ScanScriptDir("library.nut", AI_LIBRARY_DIR);
|
||||
this->ScanAIDir();
|
||||
}
|
||||
|
||||
AIScanner::AIScanner() :
|
||||
ScriptScanner(),
|
||||
info_dummy(NULL)
|
||||
{
|
||||
this->engine = new Squirrel();
|
||||
this->main_script[0] = '\0';
|
||||
|
||||
/* Create the AIInfo class, and add the RegisterAI function */
|
||||
DefSQClass <AIInfo> SQAIInfo("AIInfo");
|
||||
SQAIInfo.PreRegister(engine);
|
||||
@@ -51,8 +145,11 @@ AIScanner::AIScanner() :
|
||||
this->engine->AddClassEnd();
|
||||
this->engine->AddMethod("RegisterLibrary", &AILibrary::Constructor, 2, "tx");
|
||||
|
||||
/* Mark this class as global pointer */
|
||||
this->engine->SetGlobalPointer(this);
|
||||
|
||||
/* Scan the AI dir for scripts */
|
||||
this->RescanAIDir();
|
||||
this->ScanAIDir();
|
||||
|
||||
/* Create the dummy AI */
|
||||
this->engine->ResetCrashed();
|
||||
@@ -79,6 +176,7 @@ AIScanner::~AIScanner()
|
||||
}
|
||||
|
||||
delete this->info_dummy;
|
||||
delete this->engine;
|
||||
}
|
||||
|
||||
bool AIScanner::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm, AIController *controller)
|
||||
@@ -338,7 +436,7 @@ char *AIScanner::GetAIConsoleList(char *p, const char *last)
|
||||
|
||||
#if defined(ENABLE_NETWORK)
|
||||
#include "../network/network_content.h"
|
||||
#include "../3rdparty/md5/md5.h"
|
||||
#include "../md5.h"
|
||||
#include "../tar_type.h"
|
||||
|
||||
/** Helper for creating a MD5sum of all files within of an AI. */
|
||||
|
@@ -1,22 +1,14 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_scanner.hpp declarations of the class for AI scanner */
|
||||
|
||||
#ifndef AI_SCANNER_HPP
|
||||
#define AI_SCANNER_HPP
|
||||
|
||||
#include "../script/script_scanner.hpp"
|
||||
#include "../core/string_compare_type.hpp"
|
||||
#include <map>
|
||||
|
||||
class AIScanner : public ScriptScanner {
|
||||
class AIScanner {
|
||||
public:
|
||||
AIScanner();
|
||||
~AIScanner();
|
||||
@@ -63,13 +55,23 @@ public:
|
||||
*/
|
||||
const AIInfoList *GetUniqueAIInfoList() { return &this->info_single_list; }
|
||||
|
||||
/**
|
||||
* Get the engine of the main squirrel handler (it indexes all available scripts).
|
||||
*/
|
||||
class Squirrel *GetEngine() { return this->engine; }
|
||||
|
||||
/**
|
||||
* Get the current main script the ScanDir is currently tracking.
|
||||
*/
|
||||
const char *GetMainScript() { return this->main_script; }
|
||||
|
||||
/**
|
||||
* Rescan the AI dir for scripts.
|
||||
*/
|
||||
void RescanAIDir();
|
||||
|
||||
#if defined(ENABLE_NETWORK)
|
||||
bool HasAI(const struct ContentInfo *ci, bool md5sum);
|
||||
bool HasAI(const struct ContentInfo *ci, bool md5sum);
|
||||
#endif
|
||||
private:
|
||||
typedef std::map<const char *, class AILibrary *, StringCompare> AILibraryList;
|
||||
@@ -79,10 +81,21 @@ private:
|
||||
*/
|
||||
void ScanAIDir();
|
||||
|
||||
/**
|
||||
* Scan a dir for AIs.
|
||||
* For non-library-scan, if an AI is found, AIInfo is created, and the AI
|
||||
* is registered to the central system.
|
||||
* For library-scan, if a library is found, AILibrary is created, and the
|
||||
* library is registered to the central system.
|
||||
*/
|
||||
void ScanDir(const char *dirname, bool library_dir);
|
||||
|
||||
AIInfo *info_dummy;
|
||||
AIInfoList info_list;
|
||||
AIInfoList info_single_list;
|
||||
AILibraryList library_list;
|
||||
class Squirrel *engine;
|
||||
char main_script[1024];
|
||||
};
|
||||
|
||||
#endif /* AI_SCANNER_HPP */
|
||||
|
@@ -1,12 +1,5 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/** @file ai_storage.hpp Defines AIStorage and includes all files required for it. */
|
||||
|
||||
#ifndef AI_STORAGE_HPP
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user