mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-14 18:19:11 +00:00
Compare commits
54 Commits
1.0.0-beta
...
0.7.2
Author | SHA1 | Date | |
---|---|---|---|
|
5a5c02f55d | ||
|
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/>.
|
||||
*/
|
@@ -58,7 +58,7 @@ function Regression::TestInit()
|
||||
}
|
||||
|
||||
list = AIList();
|
||||
list.Sort(AIAbstractList.SORT_BY_VALUE, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_VALUE, true);
|
||||
print("");
|
||||
print(" Value Ascending");
|
||||
list.AddItem( 5, 10);
|
||||
@@ -93,7 +93,7 @@ function Regression::TestInit()
|
||||
}
|
||||
|
||||
list = AIList();
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_DESCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, false);
|
||||
print("");
|
||||
print(" Item Descending");
|
||||
list.AddItem( 5, 10);
|
||||
@@ -128,7 +128,7 @@ function Regression::TestInit()
|
||||
}
|
||||
|
||||
list = AIList();
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, true);
|
||||
print("");
|
||||
print(" Item Ascending");
|
||||
list.AddItem( 5, 10);
|
||||
@@ -213,11 +213,10 @@ function Regression::Airport()
|
||||
print(" GetAirportType(): " + AIAirport.GetAirportType(32116));
|
||||
|
||||
for (local i = -1; i < 10; i++) {
|
||||
print(" IsAirportInformationAvailable(" + i + "): " + AIAirport.IsAirportInformationAvailable(i));
|
||||
print(" IsValidAirportType(" + i + "): " + AIAirport.IsValidAirportType(i));
|
||||
print(" GetAirportWidth(" + i + "): " + AIAirport.GetAirportWidth(i));
|
||||
print(" GetAirportHeight(" + i + "): " + AIAirport.GetAirportHeight(i));
|
||||
print(" GetAirportCoverageRadius(" + i + "): " + AIAirport.GetAirportCoverageRadius(i));
|
||||
print(" IsValidAirportType(" + i + "): " + AIAirport.IsValidAirportType(i));
|
||||
print(" GetAirportWidth(" + i + "): " + AIAirport.GetAirportWidth(i));
|
||||
print(" GetAirportHeight(" + i + "): " + AIAirport.GetAirportHeight(i));
|
||||
print(" GetAirportCoverageRadius(" + i + "): " + AIAirport.GetAirportCoverageRadius(i));
|
||||
}
|
||||
|
||||
print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.COMPANY_SELF));
|
||||
@@ -546,7 +545,7 @@ function Regression::Industry()
|
||||
print("--Industry--");
|
||||
print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount());
|
||||
local list = AIIndustryList();
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, true);
|
||||
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
|
||||
if (AIIndustry.IsValidIndustry(i)) j++;
|
||||
print(" Industry " + i);
|
||||
@@ -668,7 +667,7 @@ function Regression::List()
|
||||
print(" HasItem(1050): " + list.HasItem(1050));
|
||||
print(" HasItem(1051): " + list.HasItem(1051));
|
||||
print(" IsEmpty(): " + list.IsEmpty());
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, true);
|
||||
print(" List Dump:");
|
||||
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
@@ -805,16 +804,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 +827,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 +954,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));
|
||||
@@ -1112,7 +1078,7 @@ function Regression::Sign()
|
||||
print(" RemoveSign(" + sign_id + "): " + AISign.RemoveSign(sign_id));
|
||||
print("");
|
||||
local list = AISignList();
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, true);
|
||||
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
|
||||
j++;
|
||||
print(" Sign " + i);
|
||||
@@ -1228,7 +1194,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:");
|
||||
@@ -1381,7 +1347,7 @@ function Regression::Town()
|
||||
print("--Town--");
|
||||
print(" GetTownCount(): " + AITown.GetTownCount());
|
||||
local list = AITownList();
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
|
||||
list.Sort(AIAbstractList.SORT_BY_ITEM, true);
|
||||
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
|
||||
if (AITown.IsValidTown(i)) j++;
|
||||
print(" Town " + i);
|
||||
@@ -1660,15 +1626,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 +1644,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 = c886c7d5b38a93f2cb1cdc0d33472eb8
|
||||
|
||||
[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 = c886c7d5b38a93f2cb1cdc0d33472eb8
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -1,7 +1,7 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
; Tycoon Deluxe for Windows.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
@@ -24,7 +24,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTDW.GRF = 80346ea80de167068cfb975f93963941
|
||||
OPENTTDW.GRF = b6689105405fa3ea34cb8a5543633d29
|
||||
|
||||
[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.
|
506
changelog.txt
506
changelog.txt
@@ -1,302 +1,6 @@
|
||||
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)
|
||||
|
||||
|
||||
0.7.5-RC1 (2009-12-14)
|
||||
------------------------------------------------------------------------
|
||||
- Add: Some missing latin-ish characters from the OpenGFX set (r18431)
|
||||
- Change: Recolour the bubble generator just like any other industry [FS#3349] (r18409)
|
||||
- Fix: Read after free in case no network connection could be made with the content server (r18493)
|
||||
- Fix: [NewGRF] Initialisation of cargo payment was broken for NewGRF cargos [FS#3344] (r18475)
|
||||
- Fix: [NoAI] AIOrder::SkipToOrder did not properly resolve ORDER_CURRENT (r18471)
|
||||
- Fix: When moving a wagon and only the last part of a dual headed engine you could split the dual headed engine over two vehicles. This could be used to crash servers [CVE-2009-4007] (r18462)
|
||||
- Fix: [Windows] Forgot to load the symbol from SDL.dll (r18439)
|
||||
- Fix: Do not run the 'jam protection' for vehicles in a depot [FS#3360] (r18428)
|
||||
- Fix: [Windows] the help window would be too large in some cases [FS#3327] (r18424)
|
||||
- Fix: Under some circumstances a pointer could be left untouched and then freed. Make sure this does not happen by ensuring it starts out as NULL instead of 'garbage' [FS#3298] (r18418)
|
||||
- Fix: On slopes the original and better road layouts did not check their minimum distance requirements [FS#3332] (r18415)
|
||||
- Fix: Aqueducts were not influenced by the 'long bridges' setting [FS#3338] (r18407)
|
||||
- Fix: Drive through road stops did not get flooded (r18401)
|
||||
- Fix: [YAPP] Trains on bridges were not found, when searching for the origin of a reservation [FS#3345] (r18392)
|
||||
- Fix: (Invalid) GRFs could trigger invalid reads (r18391)
|
||||
- Fix: One could not share orders between buses carrying different cargos (r18380)
|
||||
- Fix: Off-by-one in the preconfigured music lists [FS#3339] (r18369)
|
||||
|
||||
|
||||
0.7.4 (2009-12-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Endianness issue with saving the zoom level [FS#3333] (r18351)
|
||||
- Fix: [NewGRF] When starting a new game the values of action D variable 13 were incorrect [FS#3324] (r18207)
|
||||
|
||||
|
||||
0.7.4-RC1 (2009-11-15)
|
||||
------------------------------------------------------------------------
|
||||
- Change: Prefer extmidi over allegro midi and allegro over null driver [FS#3272] (r17875)
|
||||
- Change: [NewGRF] Apply default refitmasks only when the NewGRF did not set any of the three refittability properties (xor mask, positive classes, negative classes) (r17663)
|
||||
- Fix: Crash when an articulated RV is turning on a drive through road station that gets forcefully (bankrupt) removed [FS#3310] (r18049)
|
||||
- Fix: GCC 4.5 compiling (r18045)
|
||||
- Fix: AIs failed to load their data from savegames by crashing them when they tried [FS#3290] (r18038)
|
||||
- Fix: Screen jumped a bit for at least SDL and Allegro when right-click-dragging (r18030)
|
||||
- Fix: [NewGRF] Improve parsing of RIFF data. Skip unknown chunks and check chunk sizes (r17999)
|
||||
- Fix: When you start giving money (input window for amount), then get moved to spectators and you click 'Ok' a crash would occur (r17953)
|
||||
- Fix: Use 24bpp BMP format instead of 32bpp for screenshots. Saves space and is supported by more image viewers (r17943)
|
||||
- Fix: Close BMP file when making screenshot fails (r17941)
|
||||
- Fix: Deadlock when trying to create screenshot with too long name (including path) (r17936)
|
||||
- Fix: Crash when closing NewGRF parameter window with no NewGRF selected [FS#3291] (r17922)
|
||||
- Fix: 32bpp BMP screenshots were in wrong colours on big endian machines and broken when screen width was not a multiple of 4 (r17910, r17909)
|
||||
- Fix: Uninitialised values in some paths of loading TTO savegames [FS#3288] (r17908)
|
||||
- Fix: Make the plane speed setting unchangeable in network games because it can be read by NewGRFs on game load and thus if it changes cause desyncs (r17902)
|
||||
- Fix: [NewGRF] 'subtract-in' is also signed for production callback version 0 (r17857)
|
||||
- Fix: [NewGRF] _date_fract runs from 0 to 73 since r2041. Variable 0x09 should not (r17824)
|
||||
- Fix: Do not fail hard when no soundcard could be detected; just fall back on the null-driver [FS#3268] (r17788)
|
||||
- Fix: CJK languages do not have spaces, so for adding newlines (multi line strings) we need to (properly) handle the case when there are no spaces instead of truncating the string [FS#3264] (r17772)
|
||||
- Fix: Powernaut Helicopter got wrong 'load amount' (r17758)
|
||||
- Fix: [NewGRF] 'last_value' and 'reseed' are shared between procedure and main chain, 'scope' and 'count' are not (r17672)
|
||||
- Fix: Count only active clients (not those waiting for map download) when checking min_active_clients limit (r16506)
|
||||
|
||||
|
||||
0.7.3 (2009-10-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: [NewGRF] Crash when trying to build an industry that has no industry layout defined [FS#3233] (r17638, r17633)
|
||||
|
||||
|
||||
0.7.3-RC2 (2009-09-24)
|
||||
------------------------------------------------------------------------
|
||||
- Update: Documentation about bug reporting and known bugs (r17554)
|
||||
- Fix: When a command did not fail in test run and failed in execution run, error message was not set. Affects only few commands (r17607)
|
||||
- Fix: [NewGRF] Crash when defining the same tile in a tile layout twice [FS#3218] (r17605)
|
||||
- Fix: Vehicle image was not always updated when needed (r17594)
|
||||
- Fix: [NoAI] Could not query the size of small airports when they could not be build anymore [FS#3212] (r17591)
|
||||
- Fix: Erroneous message about changing the difficulty level [FS#3220] (r17588)
|
||||
- Fix: Assertion triggered when the second vehicle in a 101+ (or 11+ if mammoth trains is disabled) vehicle free wagon chain is an engine and the first vehicle is moved to another chain [FS#3208] (r17576)
|
||||
- Fix: [NewGRF] Memory leak when viewing the NewGRF settings of a server (r17563)
|
||||
- Fix: [NewGRF] The NewGRF settings of (remote) network games did not get properly updated when the NewGRFs were rescanned causing reading of freed data [FS#2972] (r17562)
|
||||
- Fix: [NewGRF] Close the 'Add NewGRF' window when you close the 'NewGRF Settings' window. The add window has a pointer to the settings which means that not deleting it would cause dereferencing an already freed pointer [FS#3206] (r17559)
|
||||
- Fix: Vehicles waiting for their time table did not load anymore after their initial load was completed [FS#3201] (r17551)
|
||||
- Fix: Aircraft were given an unfair advantage in station rating calculations (r17550)
|
||||
- Fix: [NewGRF] Sign extending of profit calculation did not work (r17546)
|
||||
- Fix: [NoAI] AIs had 'infinite' time when running code from the global scope [FS#3202] (r17545)
|
||||
- Fix: [NoAI] Crash when doing commands in the 'global' scope [FS#3202] (r17544)
|
||||
|
||||
|
||||
0.7.3-RC1 (2009-09-13)
|
||||
------------------------------------------------------------------------
|
||||
- Add: [NoAI] AITown::GetLastMonthTransportedPercentage and AIIndustry::GetLastMonthTransportedPercentage (r17294)
|
||||
- Add: [NoAI] AICompany::Get/Set PresidentGender (r17016)
|
||||
- Add: [NoAI] AIEngine::GetDesignDate (r17014)
|
||||
- Add: [NoAI] AIStation::GetConstructionDate (r17012)
|
||||
- Add: [NoAI] AIAbstractList::SORT_ASCENDING / SORT_DESCENDING (r17005)
|
||||
- Change: [NoAI] AITown::GetLastMonthProduction now returns the same value as AITown::GetMaxProduction (r17293)
|
||||
- Change: Mention the MD5 checksum of the original NewGRF in the 'saveload failed horribly'-error message and make it more clear that the filename is of the current NewGRF [FS#3139] (r17267)
|
||||
- Change: Make overbuilding the front tile of a road station/depot with road consistent with overbuilding the front tile of tunnels/bridges [FS#2802] (r17239)
|
||||
- Change: Improve error output on missing or corrupt files (r17238)
|
||||
- Change: [Unix] Only use colorized error output on interactive terminals (r17227)
|
||||
- Change: [NoAI] Crash an AI when it uses a DoCommand / Sleep instead of just printing an error message in the AI Debug Window [FS#2980] (r17223)
|
||||
- Change: [NoAI] When the API requests a string as parameter allow every squirrel type and convert to a string [FS#3101] (r17221)
|
||||
- Change: Make strgen warn if the translation uses STRINGn or RAW_STRING instead of STRING (r17137, r17129)
|
||||
- Change: [NoAI] Load the API before compiling an AI script so AIs can subclass API classes and use API constants as part of their own constants (r17043)
|
||||
- Change: Add notion of Ctrl+Click in the tooltip for Loan borrow/repay buttons [FS#3066] (r16979)
|
||||
- Change: [MSVC] Make all language files depend on english.txt (r16975)
|
||||
- Change: There is no point in not randomising engine introduction-date before 1922. Instead disable the randomisation for the first two years after game-start, so you do not have to wait for the first engine (r16929)
|
||||
- Fix: [Squirrel] In some cases the call stack would not be cleaned up properly during crash handling. Occasionally this causes asserts to be triggered or crashes [FS#3189] (r17515)
|
||||
- Fix: When loading GRFConfigs from ini file, validate them wrt. duplicate GRF IDs [FS#3197] (r17510)
|
||||
- Fix: When building a part fails during cloning, sell what was already cloned instead of leaving it 'for free'. Also make cloning multiheaded trains possible with with 'max - 1' vehicles existing [FS#3196] (r17509)
|
||||
- Fix: [NoAI] The wrong value was restored to SetAllowDoCommand possible resulting in an AI that was not allowed to do any actions (r17500)
|
||||
- Fix: Road vehicles could get lost when the prelimiary destination (for the pathfinder heuristics) is unreachable [FS#3188] (r17491)
|
||||
- Fix: When building roads is not allowed for town, then do not build the initial piece either [FS#3173] (r17444)
|
||||
- Fix: Destruction of depots did not remove any vehicle lists related to the depot, causing windows pointing to deleted depots and (thus) crashes [FS#3180] (r17442)
|
||||
- Fix: Economy recession would never end when economy is set to Steady while in recession (r17426)
|
||||
- Fix: The index of orders loaded from old savegames was owerwritten with an unitialized value (r17419)
|
||||
- Fix: Incomplete check on validity of industry type when building industries (r17413)
|
||||
- Fix: [Squirrel] Guard against Squirrel stack overflows (r17403)
|
||||
- Fix: [NoAI] During every save a few slots on the Squirrel stack were leaked (r17402)
|
||||
- Fix: [NoAI] Several AITile::* functions did not check whether their parameters were valid (r17378)
|
||||
- Fix: Memory leak when trying to bankrupt the local company, other minor improvements of bankruptcy (r17342, r17341, r17340)
|
||||
- Fix: Not all non-ASCII characters were entered with escapes in the About window (r17309)
|
||||
- Fix: [NoAI] AIRail::RemoveRailTrack returned ERR_PRECONDITION_ERROR for road/rail-crossings (r17307)
|
||||
- Fix: [NoAI] Reloading an AI started a new AI in the first available company slot causing other AIs to be started [FS#3153] (r17298)
|
||||
- Fix: [NoAI] AITown::GetLastMonthTransported did not work as documented at all, make it return what AITown::GetLastMonthProduction did (r17293)
|
||||
- Fix: Crash after upgrading base graphics set when opening the game options menu and you were using the upgraded set [FS#3147] (r17291)
|
||||
- Fix: [Squirrel] Stack was not always cleared properly with tail recursion (r17284)
|
||||
- Fix: [Squirrel] Calling a function that has default parameters with not enough parameters can cause a crash (r17273)
|
||||
- Fix: Other tunnel end not shown if building rail tunnels and the first railtype is not available yet [FS#3141] (r17251)
|
||||
- Fix: [NoAI] AIs that crashed during Save() were not killed as they should [FS#3134] (r17231)
|
||||
- Fix: [NoAI] Do not assert when an AI uses AI*Mode objects incorrectly but crash the AI instead (r17230)
|
||||
- Fix: Remove the (deprecated since 2006) Encoding entry from the openttd.desktop file (r17226)
|
||||
- Fix: With time tables vehicles would stay in the 'loading' state after they have finished loading [FS#3129, FS#3130] (r17222)
|
||||
- Fix: Do not ignore white space changes (e.g. alignment fixes) in the exporter (r17220)
|
||||
- Fix: [NoAI] IsRoadTypeAvailable(GetCurrentRoadType()) was not a precondition for several AIRoad::* functions (r17203)
|
||||
- Fix: [NoAI] Do not say you are building a depot when you are actually building a station (API docs typo) (r17201)
|
||||
- Fix: Accept monthly production values in the scenario editor [FS#2406] (r17198)
|
||||
- Fix: [Squirrel] FPE when an AI tried to do '% 0' (r17195)
|
||||
- Fix: [NoAI] Guard the valuator against 'external' modifications of the valuated list which could cause it to go into an infinite loop [FS#3124] (r17193)
|
||||
- Fix: Do not return exit value of rm, but of the actual configure run (r17163)
|
||||
- Fix: A stuck train could free the reservation of another train if it was reversed or did crash (r17152)
|
||||
- Fix: A train entering a PBS section through a block signal could cause a train crash if another reservation ending at a safe tile was already present in the section [FS#3104] (r17151)
|
||||
- Fix: Update vehicle position cache when the vehicle sprite changes [FS#3060] (r17121)
|
||||
- Fix: Mark industry tiles dirty when trigger are triggered (r17118)
|
||||
- Fix: Squirrel_export.sh failed for some locales (r17109)
|
||||
- Fix: Make restart command work again and make the help show how it works and how it does not work [FS#3092] (r17097)
|
||||
- Fix: News message about ordered refits failing was not very clear [FS#3091] (r17096)
|
||||
- Fix: Crash when renaming some stations [FS#3082] (r17078)
|
||||
- Fix: RPM spec file failed for CentOS; apparantly their rpmbuild is pickier or so [FS#3024] (r17077)
|
||||
- Fix: [NewGRF] Mark house tiles dirty when triggers were triggered (r17047)
|
||||
- Fix: [NewGRF] Trigger house trigger 02 only for the north tile [FS#3085] (r17046)
|
||||
- Fix: Graphical glitch with graph key [FS#3083] (r17041)
|
||||
- Fix: '[bd]ash'-ism in configure [FS#3076] (r17026)
|
||||
- Fix: Infinite recursion in content dependency checking [FS#3075] (r17015)
|
||||
- Fix: Concatenating strings in Squirrel when non-ASCII strings were received from OpenTTD failed [FS#3074] (r17013)
|
||||
- Fix: [NoAI] Documentation of AITile::LevelTiles was wrong (r17049)
|
||||
- Fix: [NoAI] AIBridge::GetPrice returned incorrect values (r16986)
|
||||
- Fix: Make it so that failing to generate many random towns in scenario editor returns a failing message [FS#3059] (r16977)
|
||||
- Fix: The last manually added server would not be saved [FS#3062] (r16981)
|
||||
|
||||
|
||||
0.7.2 (2009-08-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Vehicles would wait 'very long' when they had nothing to unload and gradual loading was disabled [FS#3054] (r16933)
|
||||
- Fix: Vehicles would wait "very long" when they had nothing to unload and gradual loading was disabled [FS#3054] (r16933)
|
||||
|
||||
|
||||
0.7.2-RC2 (2009-07-21)
|
||||
@@ -320,7 +24,7 @@
|
||||
- Fix: Do not use the same error message for turning around road vehicles and flipping parts of trains in the depot [FS#3019] (r16772)
|
||||
- Fix: The win32 and win64 binary packages would not get their readme converted to DOS line endings (r16769)
|
||||
- Fix: [NoAI] AITile::GetCargoProduction/Acceptance did not accept a radius of 0 anymore (r16767)
|
||||
- Fix: In the refit window the 'Select cargo type to carry' line always showed the ship refit tooltip [FS#3018] (r16757)
|
||||
- Fix: In the refit window the "Select cargo type to carry" line always showed the ship refit tooltip [FS#3018] (r16757)
|
||||
- Fix: When loading a savegame Engine::grffile might be left NULL in certain cases (dynamic_engines enabled, articulated vehicle with only wagon-override action3s) (r16737)
|
||||
- Fix: Show Close instead of Cancel when there is nothing to canel in the content downloading window [FS#2991] (r16732)
|
||||
- Fix: [NoAI] AIDepotList contained wrong tiles for hangars when st->xy != st->airport_tile (r16731)
|
||||
@@ -413,7 +117,7 @@
|
||||
- Add: [NoAI] AIAirport::GetPrice, returning the building cost of an airport (r16252)
|
||||
- Add: [NoAI] Two new error codes to AITile: ERR_AREA_ALREADY_FLAT and ERR_EXCAVATION_WOULD_DAMAGE (r16171)
|
||||
- Add: [NoAI] AITile::Get(Min|Max|Corner)Height (r16166)
|
||||
- Add: [NoAI] Several functions to AIOrder to check the what kind of order an order is and AIVehicle.SendVehicleToDepotForServicing [FS#2801] (r16165)
|
||||
- Add: [NoAI] Several functions to AIOrder to check the what kind of order an order is [FS#2801] (r16165)
|
||||
- Add: [NoAI] UseAsRandomAI as function in info.nut. When an AI returns false, it will never be chosen as random AI (r16113)
|
||||
- Add: [NoAI] AIOF_STOP_IN_DEPOT to the orderflags in AIOrder to allow stop-in-depot orders (r16107)
|
||||
- Add: [NoAI] GetURL() as possible function to info.nut. If AIs implement it, that url is shown when the AI crashes and also in the AI selection window [FS#2808] (r16093)
|
||||
@@ -443,7 +147,7 @@
|
||||
- Fix: Road was removed when both the Remove button was active and Ctrl was pressed [FS#2582] (r16119)
|
||||
- Fix: [NoAI] Make sure AIOrder::GetDestination always returns a tile belonging to the station (16109)
|
||||
- Fix: [NoAI] When giving an aircraft a goto-hangar order do not let it be a normal goto-station order (r16108)
|
||||
- Fix: [NoAI] AIOrder::SetOrderFlags always removed 'Service if needed' from goto-depot orders (r16106)
|
||||
- Fix: [NoAI] AIOrder::SetOrderFlags always removed "Service if needed" from goto-depot orders (r16106)
|
||||
- Fix: Connect tried to validate too much of the company ID with too little information on hand [FS#2849] (r16096)
|
||||
- Fix: [NoAI] AIDebug window profiled the blitters by invalidating itself unconditionally on repaint. On the other hand it was not invalidated in other cases when needed (r16094)
|
||||
- Fix: The language is called Slovak, not Slovakish (r16090)
|
||||
@@ -455,12 +159,12 @@
|
||||
- Fix: Do not warn that crashed vehicles are getting old; upgrading them is impossible [FS#2740] (r16048)
|
||||
- Fix: The currency abbreviation for the Romanian Leu is now RON [FS#774] (r16041)
|
||||
- Fix: Dash was not able to run iconv detection (r16035)
|
||||
- Fix: [NewGRF] Do not give '... Mines' as name to the station of oil rigs, or more general: do not add '... Mines' when the all of the cargoes are part of the liquid, passenger or mail classes [FS#2785] (r16029)
|
||||
- Fix: Storing/loading some currencies failed due to inconsistent settings 'tables' [FS#2826] (r16028)
|
||||
- Fix: [NewGRF] Do not give "... Mines" as name to the station of oil rigs, or more general: do not add "... Mines" when the all of the cargoes are part of the liquid, passenger or mail classes [FS#2785] (r16029)
|
||||
- Fix: Storing/loading some currencies failed due to inconsistent settings "tables" [FS#2826] (r16028)
|
||||
- Fix: Usage of uninitialised memory when trying to build a random new industry, but there are no industrytypes to choose from (i.e. all appearance probabilities are zero) (r16027)
|
||||
- Fix: 'Build separate station' in the station picker would reuse deleted stations [FS#2818] (r16025)
|
||||
- Fix: "Build separate station" in the station picker would reuse deleted stations [FS#2818] (r16025)
|
||||
- Fix: 32 bpp sprites in tars would also be shown in the list of heightmaps [FS#2817] (r16023)
|
||||
- Fix: Sometimes the unregister 'query' thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary (r16022)
|
||||
- Fix: Sometimes the unregister "query" thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary (r16022)
|
||||
- Fix: Chance16() did not work for b = 1. Also transform the formula to not use divisions (r16006)
|
||||
- Fix: Inconsistency between using NETWORK_NAME_LENGTH and NETWORK_CLIENT_NAME_LENGTH for the length of client names (r15988)
|
||||
- Fix: [NewGRF] Abort production callback after 0x10000 iterations and show a messagebox blaming the NewGRF [FS#2787] (r15958)
|
||||
@@ -517,7 +221,7 @@
|
||||
- Fix: Blame NewGRFs returning inconsistent information in purchase-list/after building before users have a chance to blame OpenTTD for incorrectly autorenewing/-replacing [FS#2595] (r15701)
|
||||
- Fix: Just sell the old engines after autorenew/replace. Do not bother about trains exceeding the trainlimit, which will be sold anyway [FS#2721] (r15692)
|
||||
- Fix: Do not crash when the generate map does not contain a suitable location for a town [FS#2720] (r15689)
|
||||
- Fix: Do not crash when someone substitutes the 'map generation' sprites with garbage [FS#2720] (r15685)
|
||||
- Fix: Do not crash when someone substitutes the "map generation" sprites with garbage [FS#2720] (r15685)
|
||||
- Fix: Vehicle images would be determined during the process of moving the vehicle which means that only the (orientation) data for the vehicles in front of it is valid. Now the data for the vehicles behind the vehicle are valid too [FS#2546] (r15677)
|
||||
- Fix: It was possible to remove rail tunnels/bridges and aqueducts build by rival companies [FS#2718] (r15667)
|
||||
- Fix: Sorting of engines in the purchase list did not use the same numbers as the GUI showed, e.g. articulated parts were not taken into accound when ordering by capacity [FS#2689] (r15666)
|
||||
@@ -621,7 +325,7 @@
|
||||
- Feature: [NewGRF] Add Variational Action 2 Variable 0x47 for houses, Coordinates of the house tile (r14294)
|
||||
- Feature: Allow overriding the palette of the base GRFs. This way you can play with NewGRFs made for the Windows palette with the DOS palettes base GRFs (and vice versa). Note that for this to work correctly ALL NewGRFs must use the same palette; mix and match is not yet supported (r14229)
|
||||
- Feature: Double click to join selected server/company (r14209)
|
||||
- Feature: Allow both the German as well as non-German toyland graphics as 'correct' and official graphics (r14197)
|
||||
- Feature: Allow both the German as well as non-German toyland graphics as "correct" and official graphics (r14197)
|
||||
- Feature: Allow people to create their own base graphics easily and without requiring code changes (r14197)
|
||||
- Feature: [NewGRF]: Add support for property 0x13 for Bridges. In other words, one can now specifies a 16 bits cost multiplier (r14172)
|
||||
- Feature: Make it possible to choose between the DOS and Windows graphics packs while retaining the possibility to override the palette (r14151)
|
||||
@@ -648,8 +352,8 @@
|
||||
- Feature: Conditional 'skip/jump' orders (r12667)
|
||||
- Feature: Ability to send a vehicle (using default orders) to the nearest depot (r12661)
|
||||
- Feature: Ability to force a vehicle to not load or to not unload at a station (r12650)
|
||||
- Feature: Four different non-stop types, individually selectable per order. Replaces 'TTDP compatible order' setting (r12648)
|
||||
- Feature: Three different load type in a single game instead of two. One can choose full load all and full load any instead of full load being governed by the 'full load any' patch setting (r12648)
|
||||
- Feature: Four different non-stop types, individually selectable per order. Replaces "TTDP compatible order" setting (r12648)
|
||||
- Feature: Three different load type in a single game instead of two. One can choose full load all and full load any instead of full load being governed by the "full load any" patch setting (r12648)
|
||||
- Feature: Financial and Player Selection Face windows are now remembering their position when toggling sizes (r12634)
|
||||
- Feature: Show what cargos a station could be supplied with (r12596)
|
||||
- Feature: [NewGRF] Add random action 2 type 84. For vehicles only (r12452)
|
||||
@@ -659,7 +363,7 @@
|
||||
- Feature: On Screen Keyboard for input fields so someone without a keyboard can enter text too [FS#1846] (r12425)
|
||||
- Change: When checking for unique names, compare only with manually set names [FS#1923] (r14958)
|
||||
- Change: Apply the 'warn if train's income is negative' setting to other vehicle types, too (r14835)
|
||||
- Change: When loading games in 'network' mode use the start date of the save game for the server and all clients when loading the NewGRFs instead of the current date. Prevents desyncs caused by action 7/9s skipping parts of the GRF based on the date or some other variables that can differ at NewGRF load time (r14769)
|
||||
- Change: When loading games in "network" mode use the start date of the save game for the server and all clients when loading the NewGRFs instead of the current date. Prevents desyncs caused by action 7/9s skipping parts of the GRF based on the date or some other variables that can differ at NewGRF load time (r14769)
|
||||
- Change: Only say a engine/vehicle is refittable when it can be refitted to at least two cargo type or when it has subcargos (r14683)
|
||||
- Change: [NewGRF] Since our NewGRF handling is better than it used to be, disable a NewGRF if unexpected sprites are reached (r14184)
|
||||
- Fix: A town could build a statue under a bridge [FS#2618] (r15397)
|
||||
@@ -681,13 +385,13 @@
|
||||
- Fix: [NewGRF] Building new station parts did not allocate a new station spec effectively breaking variable 41. This was due to the limited number of station specs that we can have per station. This fix makes newly build station parts create a new spec until one cannot allocate new station specs anymore and it'll revert to the old behaviour (sharing station specs) [FS#1832] (r14956)
|
||||
- Fix: [NewGRF] Station specs did not get deallocated when building a new station part over them (r14955)
|
||||
- Fix: Sharing/cloning/inserting of orders that the/a vehicle (in the shared list) cannot go to (wrong station type etc) [FS#1890] (r14954)
|
||||
- Fix: The 'animation state' of the bubbles was stored in a variable that was not stored in the savegame. Using a variable that gets saved in the savegame solves the desync and makes it a bit clearer [FS#2512] (r14931)
|
||||
- Fix: The "animation state" of the bubbles was stored in a variable that was not stored in the savegame. Using a variable that gets saved in the savegame solves the desync and makes it a bit clearer [FS#2512] (r14931)
|
||||
- Fix: Abort dragging of vehicles in the group window when they are deleted [FS#2500] (r14925)
|
||||
- Fix: Do not unnecessarily reset the cursor, when a different vehicle is dragged (r14924)
|
||||
- Fix: [NewGRF] First create all articulated parts of roadvehicles, then call callback 36 capacity, also call it for all articulated parts (r14903)
|
||||
- Fix: Overflow of number of orders per vehicle [FS#2495] (r14830)
|
||||
- Fix: Off-by-one causing possible out-of-bounds reads (r14811)
|
||||
- Fix: In an MP game in SP mode no company would go bankrupt. Furthermore companies that passed the 'bankrupt' period (4 quarters) would not go bankrupt when loading the game back in MP. Now any company that is in MP or not 'currently controlled by the player' in SP will bankrupt [FS#1993] (r14750)
|
||||
- Fix: In an MP game in SP mode no company would go bankrupt. Furthermore companies that passed the "bankrupt" period (4 quarters) would not go bankrupt when loading the game back in MP. Now any company that is in MP or not "currently controlled by the player" in SP will bankrupt [FS#1993] (r14750)
|
||||
- Fix: Do not let any disaster vehicle (Helicopter or Airplane) target invalid industry (r14746)
|
||||
- Fix: Memory leak in Action 0x0F (new town names) (r14737)
|
||||
- Fix: Writing a single char to the config file caused reading outside a buffer (r14729)
|
||||
@@ -737,11 +441,11 @@
|
||||
- Fix: [Win32] Some keypress combinations could be handled twice [FS#2206] (r14363)
|
||||
- Fix: The ownership of roadtiles was not properly set for very old savegames (including TTD's) making it impossible to remove some pieces of road [FS#2311] (r14359)
|
||||
- Fix: Desync due to randomly ordered vehicle hash by flooding and road vehicle overtake/following (r14356, r14258)
|
||||
- Fix: Signs were not updated on company bankruptcy/sell, and thus could have the colour of invalid player (r14348)
|
||||
- Fix: Signs were not updated on company bankrupcy/sell, and thus could have the colour of invalid player (r14348)
|
||||
- Fix: Delete the RenameSignWindow when 'its' sign is deleted (r14345)
|
||||
- Fix: Signs from old savegames were lost (causing little memory leaks) (r14340)
|
||||
- Fix: When a company was renamed and then manager was renamed before building anything, company name changed (r14328)
|
||||
- Fix: When you rename a town before building something and build something near that town your company would be called '<old townname> Transport' [FS#2251] (r14327)
|
||||
- Fix: When you rename a town before building something and build something near that town your company would be called "<old townname> Transport" [FS#2251] (r14327)
|
||||
- Fix: Free any blocks that a helicopter may have on an oilrig when the helicopter gets forcefully removed (bankruptcy). For other airports this is not needed as they cannot be used by multiple companies [FS#2241] (r14324)
|
||||
- Fix: Possible assert when renaming removed waypoint (r14322)
|
||||
- Fix: Properly delete orders so the pool does not fill up (r14319)
|
||||
@@ -752,8 +456,8 @@
|
||||
- Fix: Default for sound effects and music volume should be in the valid range for that setting [FS#2286] (r14289)
|
||||
- Fix: Make small UFO aware of articulated RVs so they crash the complete vehicle instead of a small part of it (r14270)
|
||||
- Fix: Desyncs after deleting a waypoint because of explicit destructor call instead of using operator delete (r14265)
|
||||
- Fix: Merge keycode for 'normal' 0-9 keys and keypad 0-9 keys so people do not get confused that the keypad does not work as expected [FS#2277] (r14260)
|
||||
- Fix: Clicking on the smallmap did not break the 'follow vehicle in main viewport' [FS#2269] (r14243)
|
||||
- Fix: Merge keycode for "normal" 0-9 keys and keypad 0-9 keys so people do not get confused that the keypad does not work as expected [FS#2277] (r14260)
|
||||
- Fix: Clicking on the smallmap did not break the "follow vehicle in main viewport" [FS#2269] (r14243)
|
||||
- Fix: The engine-purchase-list-sorter doubled running-cost and halfed capacity of double-headed engines [FS#2267] (r14239)
|
||||
- Fix: Feeder share was computed wrong when splitting cargo packet (r14234)
|
||||
- Fix: Signs (town name, station name, ...) could be too long for 8bit width in pixels (r14221)
|
||||
@@ -776,7 +480,7 @@
|
||||
- Fix: Flawed parsing of words (as in 2 bytes) in GRF strings due to sign extension [FS#2228] (r14087)
|
||||
- Fix: Division by 0 in NewAI [FS#2226] (r14062)
|
||||
- Fix: NewGRF callback 23 did not use the NewGRF compatible text stack [FS#2224] (r14058)
|
||||
- Fix: NewGRF text stack's 'push word' did not move the data around properly (r14057)
|
||||
- Fix: NewGRF text stack's "push word" did not move the data around properly (r14057)
|
||||
- Fix: Long strings in the edit box would cause OpenTTD to stop drawing the string. This is especially noticable with low resolutions and the chat input box (r14054)
|
||||
- Fix: [OSX] changed the condition for selecting 8 or 32 bpp blitter by default. Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock) (r14032)
|
||||
- Fix: Crash when the AI tries to find the depot of an airport that does not have a depot [FS#2190] (r13999)
|
||||
@@ -793,7 +497,7 @@
|
||||
- Fix: In some cases the sprite cache could be filled with unremovable items [FS#2153] (r13869)
|
||||
- Fix: Return of wrong parent scope of (NewGRF) industry variables (r13868)
|
||||
- Fix: Loading of TTD(Patch) savegames from the command line did not work (r13859)
|
||||
- Fix: Buffer overflow for too long filename supplied as '-g' parameter [CVE-2008-3577] (r13858)
|
||||
- Fix: Buffer overflow for too long filename supplied as '-g' parameter (r13858)
|
||||
- Fix: Cargo type lookup was incorrect for NewGRF version 7 files without a translation table [FS#2157] (r13855)
|
||||
- Fix: GetTownByTile() is only valid for houses and roads (r13851)
|
||||
- Fix: Power, running cost and capacity of multiheaded engines were (too often) doubled in newspaper resp. offer window (r13844)
|
||||
@@ -808,19 +512,19 @@
|
||||
- Fix: Checking for train waiting at other side of two-way signal was broken [FS#2162] (r13806)
|
||||
- Fix: Some revision checking code was unintentionally disabled (r13776)
|
||||
- Fix: Enforce the validity of a NetworkAction (chat packet) issued by a client (r13775)
|
||||
- Fix: Selecting non-full length vehicles in the depot gui would place the 'mouse pointer' out of the center of the vehicle making it hard to 'aim' [FS#2147] (r13759)
|
||||
- Fix: Selecting non-full length vehicles in the depot gui would place the "mouse pointer" out of the center of the vehicle making it hard to "aim" [FS#2147] (r13759)
|
||||
- Fix: NewGRF rail continuation would always mark a tunnel on the same axis as connected, even when the tunnel faces the wrong direction (r13734)
|
||||
- Fix: Assumption that non-north tiles of a house do not have the 1x1 building bit set was flawed with some NewGRFs. This caused the amount of houses to differ, which causes the town radii to differ, which causes desyncs when towns are expanded (r13729)
|
||||
- Fix: Possible desync on the autorenew settings 20+ game years (i.e. 4.5+ hours) after a company was started (r13718)
|
||||
- Fix: Any player could construct new companies [FS#2144] (r13716)
|
||||
- Fix: Remove the unique_id from the message that a client has joined as it is only exposes the unique_id more than needed (r13714)
|
||||
- Fix: Possible crash on creating a network packet [CVE-2008-3547] (r13713)
|
||||
- Fix: Possible crash on creating a network packet (r13713)
|
||||
- Fix: Enforce the length restrictions of company and president name in the commands too (r13712)
|
||||
|
||||
|
||||
0.6.2-RC1 (2008-07-16)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Possible buffer overflow in string truncation code [CVE-2008-3576] (r13700)
|
||||
- Fix: Possible buffer overflow in string truncation code (r13700)
|
||||
- Fix: Handle SETX(Y) properly when truncating a string instead of ignoring it and returning a too long string (r13699)
|
||||
- Fix: In some cases the (sound) mixer could overflow causing artefacts in the sound [FS#2120] (r13695)
|
||||
- Fix: Do not rely on .tar files always ending with a block of zeros (r13693)
|
||||
@@ -845,7 +549,7 @@
|
||||
- Fix: Clear the memory for the new AI during the loading of a savegame so it does not try to execute commands generated in a different savegame, which could be resulting in the AI trying to give orders to stations that do not exist (r13505)
|
||||
- Fix: Drawing of zoomed out partial sprites could cause deadlocks or crashes (r13502)
|
||||
- Fix: First determine where to *exactly* build a house before asking a NewGRF whether the location is good instead of possibly moving the house a tile after the NewGRF said the location is good (r13489)
|
||||
- Fix: Track was not removed on company bankrupcty when there was a ship on lower halftile (r13488)
|
||||
- Fix: Track was not removed on company bankrupcy when there was a ship on lower halftile (r13488)
|
||||
- Fix: Let ships also navigate on half-tile sloped watery rail tiles (r13485)
|
||||
- Fix: Division by zero when one would press 'd' (skip order) when there's no order (r13409)
|
||||
- Fix: Do not crash when resolving vehicle sprite groups with zero sprites (r13397)
|
||||
@@ -929,7 +633,7 @@
|
||||
|
||||
0.6.0-RC1 (2008-03-26)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Show whether a town is a 'city' in the town description title bar (r12391)
|
||||
- Feature: Show whether a town is a "city" in the town description title bar (r12391)
|
||||
- Feature: Increase house animation frame number from 32 to 128 (r12347)
|
||||
- Fix: Loading of TTD savegames (r12399, r12401)
|
||||
- Fix: Vehicle lists related to stations not closed when the station is deleted [FS#1872] (r12393)
|
||||
@@ -988,7 +692,7 @@
|
||||
- Fix: [NewGRF] Support using any base price for rail and road vehicles' running cost, show running cost of wagons if available (r12209)
|
||||
- Fix: When loading a savegame fails, do not start creating a new game, just go straight back to the intro screen (r12202)
|
||||
- Fix: Force AI to build rail or road instead of bridges if possible, so it does not build bridges everywhere (r12200)
|
||||
- Fix: 'Transparent buildings' now only toggles buildings, so show tick when buildings are transparent [FS#1789] (r12198)
|
||||
- Fix: "Transparent buildings" now only toggles buildings, so show tick when buildings are transparent [FS#1789] (r12198)
|
||||
- Fix: Show correct last year profit when the train had negative income [FS#1788] (r12197)
|
||||
- Fix: There can be oil rigs at map borders, do not set water class for them [FS#1787] (r12195)
|
||||
- Fix: Do not start overtaking if the RV reaches wrong-way one-way-road in the next tiles (r12191)
|
||||
@@ -1193,7 +897,7 @@
|
||||
- Fix: Aircraft sometimes stopped mid-air when the airport got destroyed [FS#1503] (r11562)
|
||||
- Fix: Group list was not updated when removing the last group [FS#1504] (r11561)
|
||||
- Fix: Overflow when drawing graphics with high company values [FS#1505] (r11558)
|
||||
- Fix: If ever the air/heliport is suddenly not available while the 'chopper' is descending, just go back into flying instead of stopping mid air [FS#1496] (r11546)
|
||||
- Fix: If ever the air/heliport is suddenly not available while the "chopper" is descending, just go back into flying instead of stopping mid air [FS#1496] (r11546)
|
||||
- Fix: Cargo translation was sometimes done when it should not be done [FS#1501] (r11544)
|
||||
- Fix: [OSX] Detect statvfs at runtime (based on OSX version) instead of compile time. This should prevent a crash on OSX 10.3 with the precompiled binaries (in the load/save windows) (r11541)
|
||||
- Fix: [OSX] Do not try to compile the quartz video driver on OSX 10.3 as it will fail (r11540)
|
||||
@@ -1223,7 +927,7 @@
|
||||
- Feature: Control-Clicking the Centre Main View button on the vehicle window allows the main viewport to follow the chosen vehicle (r11304)
|
||||
- Feature: User customisable faces (r11269)
|
||||
- Feature: Make more advanced rail types more expensive to build (r11265)
|
||||
- Feature: Implement the 'moreanimation' feature of TTDP, so we can properly support newindustries (r11228)
|
||||
- Feature: Implement the "moreanimation" feature of TTDP, so we can properly support newindustries (r11228)
|
||||
- Feature: [NewGRF] Add support for newindustries (r11204)
|
||||
- Feature: Sort the NewGRFs by name, making searching a specific NewGRF a lot easier (r11175)
|
||||
- Feature: Add possibility to show the bounding boxes of sprites using CTRL-B so one can get a better understanding of the used bounding boxes to fix the glitches that still exist. Note that showing the bounding boxes is not glitch free; it only gives you some knowledge where the bounding boxes are (r11174)
|
||||
@@ -1237,14 +941,14 @@
|
||||
- Feature: [OSX] OpenTTD will now pick the same language as finder is set to if no config file is found (r10851)
|
||||
- Feature: Provide an infrastructure to have resizable windows that are smaller than the default window size. Useful for playing on very low resolution systems (r10704)
|
||||
- Feature: Support for autosave_on_exit in the console, so dedicated servers can use it (r10658)
|
||||
- Feature: Add a soft limit of 4096 'entities' in a station's waiting queue and a hard limit of 32768 so (malicious) people cannot cause a 'denial of service' attack by filling cargo lists (r10555)
|
||||
- Feature: Add a soft limit of 4096 "entities" in a station's waiting queue and a hard limit of 32768 so (malicious) people cannot cause a "denial of service" attack by filling cargo lists (r10555)
|
||||
- Feature: Replace all the windows for Industry building by a more flexible one (r10496)
|
||||
- Feature: Support for 'prospecting' raw industries, i.e. you pay an amount of money and then it might (with a given chance) build a raw industry somewhere on the map (r10451)
|
||||
- Feature: Support for "prospecting" raw industries, i.e. you pay an amount of money and then it might (with a given chance) build a raw industry somewhere on the map (r10451)
|
||||
- Feature: Automatic signal completion, enabled by pressing CTRL when dragging signals. Signals will continue following track until an existing signal, junction or station are reached. This currently replaces the existing use of CTRL-drag for changing existing signal type (r10437)
|
||||
- Feature: New sign editor features including switching to previous/next sign (r10401)
|
||||
- Feature: Disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this 'new' behaviour can be overridden with a patch setting [FS#669] (r10353)
|
||||
- Feature: Disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overridden with a patch setting [FS#669] (r10353)
|
||||
- Feature: Add the possibility of automatically filling in timetables based on the times from the first (or subsequent) run-throughs (r10331)
|
||||
- Feature: Option to select the 'default' rail type when you start a new game or load a game. This is done either static, i.e. rail, electrified rail, monorail and maglev, or dynamic which takes either the first or last available railtype or the railtype that is used most on the map [FS#812] (r10329)
|
||||
- Feature: Option to select the "default" rail type when you start a new game or load a game. This is done either static, i.e. rail, electrified rail, monorail and maglev, or dynamic which takes either the first or last available railtype or the railtype that is used most on the map [FS#812] (r10329)
|
||||
- Feature: Give a better explanation why the loading of a savegame failed and do not crash on loading savegames that were altered by patches or branches [FS#917] (r10300)
|
||||
- Feature: A sticky button for the client list window [FS#885] (r10293)
|
||||
- Feature: Allow double-clicking on certain places: add NewGRF window, build-vehicle and town-action (r10265, r10267)
|
||||
@@ -1257,7 +961,7 @@
|
||||
- Feature: Add support for articulated road vehicles (r10097)
|
||||
- Feature: Allow moving of orders instead of removing them and readding them somewhere else [FS#828] (r10071)
|
||||
- Feature: Replace hard coded spritecache size with a configuration option, sprite_cache_size. The default size is 2MB and the value can range from 1 to 64MB. If you experience slow-downs when scrolling the map, try increasing this setting (r10042)
|
||||
- Feature: Skip to the selected order in the order list when clicking on the 'skip' button while pressing CTRL [FS#760] (r10033)
|
||||
- Feature: Skip to the selected order in the order list when clicking on the "skip" button while pressing CTRL [FS#760] (r10033)
|
||||
- Feature: Sort the strings in server language dropdown and the town names dropdown (r10032, r10036)
|
||||
- Feature: Build windows of trains, road vehicles and ships can now be sorted by cargo capacity (planes already had this option) (r10024)
|
||||
- Feature: More languages flags for servers [FS#790] (r10017)
|
||||
@@ -1269,9 +973,9 @@
|
||||
- Feature: Allow building new stations adjacent to existing stations by holding down control (r9905)
|
||||
- Feature: Add one new zoom-out level: 8 times (r9884)
|
||||
- Feature: Advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group (r9874)
|
||||
- Feature: Make 'improved loading' a proper improved loading instead of loading one (semi-)random vehicle at a time. Furthermore fill multiple vehicles at once when there is enough cargo to do so (r9838)
|
||||
- Feature: Make "improved loading" a proper improved loading instead of loading one (semi-)random vehicle at a time. Furthermore fill multiple vehicles at once when there is enough cargo to do so (r9838)
|
||||
- Feature: Add drag and drop removal of station tiles (r9810)
|
||||
- Feature: Support for 'curvature info', Action 2 for train, variable 45 (r9803)
|
||||
- Feature: Support for "curvature info", Action 2 for train, variable 45 (r9803)
|
||||
- Feature: [NewGRF] Add action 1, 2 and 3 support for canals (r9797)
|
||||
- Feature: Add the possibility to choose different road patterns for towns to use (r9779)
|
||||
- Feature: Add an option to automatically pause when starting a new game (r9734)
|
||||
@@ -1341,11 +1045,11 @@
|
||||
- Fix: Crash when having the Finance window opened of the player you are cheating to [FS#1177] (r11028)
|
||||
- Fix: Switching players (using the cheat) crashed on Big Endian machines [FS#1150] (r11023)
|
||||
- Fix: The canal border determination did not take oil rigs into consideration (r11022)
|
||||
- Fix: Do not display income/expenses when they do not belong to a 'valid' tile, like the money cheat/giving money [FS#1175] (r11021)
|
||||
- Fix: Do not display income/expenses when they do not belong to a "valid" tile, like the money cheat/giving money [FS#1175] (r11021)
|
||||
- Fix: One could not give money when (s)he had too much money or rather: when casting the amount of money to an int32 becomes negative [FS#1174] (r11020)
|
||||
- Fix: When determining the gender of a string, do not assume that the gender is in the front of the string when there can be case switching code at that location [FS#1104] (r10792)
|
||||
- Fix: Determining whether there is a tunnel going under the lowered area is only needed in two directions instead of all four, so take the directions (one for each axis) to the nearest border (along the given axis) [FS#1058] (r10686)
|
||||
- Fix: Graphical glitches when the 'link landscape toolbar' patch is turned on when opening one of the construction toolbars [FS#1076] (r10685)
|
||||
- Fix: Graphical glitches when the "link landscape toolbar" patch is turned on when opening one of the construction toolbars [FS#1076] (r10685)
|
||||
- Fix: Trolly AI did not know about steep slopes, and used wrong tileh in some cases [FS#1070] (r10655)
|
||||
- Fix: Be consistent with the space between the company name and the player number, i.e. always put a space between them [FS#1052] (r10627)
|
||||
- Fix: [YAPF] Ships received curve penalty for non-diagonal straight move (r10578)
|
||||
@@ -1402,7 +1106,7 @@
|
||||
- Fix: [Windows] MIDI does not stop when closing openttd [FS#1164] (r11029)
|
||||
- Fix: Do not unconditionally assume that a tile has a depot (r11027)
|
||||
- Fix: Give a more correct error when building some things on tile 0 [FS#1173] (r11024)
|
||||
- Fix: Do not display income/expenses when they do not belong to a 'valid' tile, like the money cheat and giving money [FS#1175] (r11021)
|
||||
- Fix: Do not display income/expenses when they do not belong to a "valid" tile, like the money cheat and giving money [FS#1175] (r11021)
|
||||
- Fix: One could not give money when (s)he had too much money [FS#1174] (r11020)
|
||||
- Fix: Disallow buying/selling shares in your own company or a bankrupt company [FS#1169] (r11018)
|
||||
- Fix: Crash when quiting the game in one of the end score windows [FS#1218] (r11071)
|
||||
@@ -1416,7 +1120,7 @@
|
||||
- Fix: Removing road with the road removal tool would also work with a negative bank account, making the bank account even more negative than it was [FS#1125] (r10890)
|
||||
- Fix: Some isocodes were wrong, resulting in some NewGRF not working properly for the affected languages (r10877)
|
||||
- Fix: [Windows] Do not try to minimise or restore the window when closing OpenTTD [FS#998] (r10835)
|
||||
- Fix: Trains going over bridges would get the 'going down hill' accelerate bonus, which causes trains to go faster on bridges than they would be going on level land [FS#1096] (r10739)
|
||||
- Fix: Trains going over bridges would get the "going down hill" accelerate bonus, which causes trains to go faster on bridges than they would be going on level land [FS#1096] (r10739)
|
||||
- Fix: Trains being split into two pieces when loading an old savegame [FS#1062] (r10735)
|
||||
- Fix: [OS/2] Fix chdir problem with open/save dialog (r10650)
|
||||
- Fix: One could not remove locks that were build in a (very) old version of OpenTTD [FS#1038] (r10593)
|
||||
@@ -1442,11 +1146,11 @@
|
||||
- Fix: Acceleration for trains on slopes is not calculated properly [FS#786] (r10344, r10317)
|
||||
- Fix: The 'old' pathfinders (OPF and NPF) for road vehicles could not find a path when in a tunnel [FS#290] (r10345)
|
||||
- Fix: Only add the autoreplace menu when autoreplace actually knows about the group [FS#880] (r10337)
|
||||
- Fix: Signal state sometimes not properly set when the signal 'pathfinder' reached the end of a line [FS#910] (r10336)
|
||||
- Fix: Signal state sometimes not properly set when the signal "pathfinder" reached the end of a line [FS#910] (r10336)
|
||||
- Fix: News messages were shown over the endgame/highscore windows [FS#943] (r10333)
|
||||
- Fix: Rail could be destroyed when building tunnels (r10306)
|
||||
- Fix: Flush the output of the dedicated server console (r10295)
|
||||
- Fix: The 'pause' key did not work in the scenario editor (r10294)
|
||||
- Fix: The "pause" key did not work in the scenario editor (r10294)
|
||||
- Fix: Age non-front engines too (so when you move engines around in the depot they do not get age 0 when they are much older [FS#202] (r10288)
|
||||
- Fix: Do not make everyone spectator if 1 joining client failed to create new company (r10284)
|
||||
- Fix: Remove invalid characters (for the file system) from savegame names [FS#916, FS#850] (r10272, r10116)
|
||||
@@ -1454,7 +1158,7 @@
|
||||
- Fix: Do not look in every direction for tunnels when building one, one direction is enough (r10258)
|
||||
- Fix: [Windows] Do not mess desktop when using ALT-TAB [FS#876] (r10251, r10186)
|
||||
- Fix: Take the age of the front vehicle for station rating (r10246)
|
||||
- Fix: Terraforming wipes out canals. Now you always have to remove the canal before terraforming, instead of 'just' removing the canal [FS#594] (r10240)
|
||||
- Fix: Terraforming wipes out canals. Now you always have to remove the canal before terraforming, instead of "just" removing the canal [FS#594] (r10240)
|
||||
- Fix: Only 2 trains could crash at one time as collision checking stopped on the first hit. This could technically cause desyncs in network games as the collision hash order is not guaranteed [FS#892] (r10222)
|
||||
- Fix: Land under foundations was terraform when it should not be terraformed [FS#882, FS#890] (r10219)
|
||||
- Fix: Do not make a 270 degree turn on the international airport when a 90 degree turn is enough (r10187)
|
||||
@@ -1467,9 +1171,9 @@
|
||||
- Fix: When you got a sufficiently small resolution, there is a possibility for a division by zero when a sound is played (r10138)
|
||||
- Fix: When removing a dock, a ship will always try to reach the old location of the dock even when it cannot anymore because it the old location of the dock is now land instead of water [FS#810] (r10131)
|
||||
- Fix: SetCurrentGrfLangID returned the wrong language ids for most languages (r10130)
|
||||
- Fix: Some NewGRFs use the same (unused in the 'current' climate) sprite IDs. Normally this gives some artefacts, but when one NewGRF expects it to be a sprite and another NewGRF overwrites it with a non-sprite nasty things happen (drawing a non-sprite crashes OTTD) [FS#838] (r10109)
|
||||
- Fix: Multiple subsequent 'give money' actions could result in duplicate messages that money has been transfered when it only happened once, or tell you paid money when you did not [FS#834, FS#839] (r10087, r10085)
|
||||
- Fix: 'Deactivate Electrified Railways' did not work [FS#836] (10083)
|
||||
- Fix: Some NewGRFs use the same (unused in the "current" climate) sprite IDs. Normally this gives some artefacts, but when one NewGRF expects it to be a sprite and another NewGRF overwrites it with a non-sprite nasty things happen (drawing a non-sprite crashes OTTD) [FS#838] (r10109)
|
||||
- Fix: Multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once, or tell you paid money when you did not [FS#834, FS#839] (r10087, r10085)
|
||||
- Fix: "Deactivate Electrified Railways" did not work [FS#836] (10083)
|
||||
- Fix: Memory leaks in the networking code [FS#846, FS#844] (r10082, r10075)
|
||||
- Fix: Coverage area highlight was still show when it was turned off for docks [FS#835] (r10068)
|
||||
- Fix: Do not use override engine type for articulated wagon parts (r10048)
|
||||
@@ -1497,7 +1201,7 @@
|
||||
- Fix: Remove arbitrary limit on length of NewGRF strings (r9775)
|
||||
- Fix: [NewGRF] Ignore axis-bit of station tile layouts [FS#756] (r9758)
|
||||
- Fix: [win32] Dead key and open/close console (r9728)
|
||||
- Fix: When you have closed the 'Load game'/'New game' windows which you started from the 'start server' menu, you should not start a server when starting a new game [SF#1244842] (r9757)
|
||||
- Fix: When you have closed the "Load game"/"New game" windows which you started from the "start server" menu, you should not start a server when starting a new game [SF#1244842] (r9757)
|
||||
- Fix: Trains were lost after autorenewal/autoreplace [FS#732] (r9753)
|
||||
- Fix: Stop flooded towns from building roads on water [FS#598] (r9743)
|
||||
- Fix: Station signs were not resized when the language changed [FS#672] (r9741)
|
||||
@@ -1517,7 +1221,7 @@
|
||||
0.5.1-RC3 (2007-04-17)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Add list_patches to console commands; shows all patches and values (r9565)
|
||||
- Fix: Select 'Custom' in the difficulty settings gui when changing a setting [FS#733] (r9647)
|
||||
- Fix: Select "Custom" in the difficulty settings gui when changing a setting [FS#733] (r9647)
|
||||
- Fix: Building rail on steep slopes ignored build_on_slopes patch setting (r9602)
|
||||
- Fix: Wrong characters in Finnish town names (r9641)
|
||||
- Fix: When checking for no vehicle on ground-tiles, do not take into account vehicles that are in the air (r9542)
|
||||
@@ -1550,7 +1254,7 @@
|
||||
- Fix: Shared orders got messed up when the 'first' trains got removed in the depot [FS#685] (r9277)
|
||||
- Fix: Use a less CPU-intensive algorithm to find a random industry for the AI to prevent it slowing down the game [FS#644] (r9251)
|
||||
- Fix: When loading games, enroute_from was updated in the wrong place, causing issues with TTD savegames/scenarios (r9147)
|
||||
- Fix: 'Train is lost' message is generated incorrectly [FS#676] (r9146)
|
||||
- Fix: "Train is lost" message is generated incorrectly [FS#676] (r9146)
|
||||
- Fix: Difficulty level button was not selected when opening the difficulty window (r9117)
|
||||
- Fix: The wrong catenary wires were drawn for tunnel entrances [FS#612] (r9077)
|
||||
- Fix: The intercontinental airport used 'T-junction' runway sprites when there is no exit in the middle of the runway as in the city airport [FS#529] (r9076)
|
||||
@@ -1562,7 +1266,7 @@
|
||||
- Fix: Desync caused by buffer overflow [FS#664] (r9027)
|
||||
- Fix: When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length (r9012)
|
||||
- Fix: Play the correct engine sound based on the engine type instead of the sprite (r9009)
|
||||
- Fix: New locomotive names were not announced in the news, it said 'new railway locomotive available - railway locomotive' [FS#581] (r9000, r9001)
|
||||
- Fix: New locomotive names were not announced in the news, it said "new railway locomotive available - railway locomotive" [FS#581] (r9000, r9001)
|
||||
- Fix: [NewGRF] Do not select a disabled platform length/number of track count when going out of drag-drop mode [FS#450] (r8999)
|
||||
- Fix: [win] Resolution doubled in cfg file when fullscreen mode used [FS#642] (r8994)
|
||||
- Fix: The industry list should also be (re)set when the number of industries is 0 [FS#656] (r8980)
|
||||
@@ -1575,7 +1279,7 @@
|
||||
0.5.0 (2007-02-27)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Add the ability to load newer TTDP games (the tile information for coasts has changed) (r8738)
|
||||
- Feature: Selecting 'end of orders' and deleting will delete all the vehicle's orders (shared mode unchanged) (r8685)
|
||||
- Feature: Selecting "end of orders" and deleting will delete all the vehicle's orders (shared mode unchanged) (r8685)
|
||||
- Codechange: Call GetFirstVehicleInChain only for trains thus increasing performance in large games (r8744)
|
||||
- Fix: Possible crashes, problems with aircraft and airport removal (r8921)
|
||||
- Fix: Do not show the 'edit sign' window for spectators (r8808)
|
||||
@@ -1615,7 +1319,7 @@
|
||||
- Fix: Network client crashes when a server sends a 0-sized savegame [FS#556] (r8167)
|
||||
- Fix: Several desync fixes (incorrect roadstop update of old games, autoreplace bugs) [FS#551] (r8137, r8147, r8157)
|
||||
- Fix: Some disaster-events fixed: combat chopper shoots from right position, submarine once again moves around (r8140, r8158)
|
||||
- Fix: 'out of sprite memory' warning messages due to incorrect assumption of requested memory for sprites (r8133)
|
||||
- Fix: "out of sprite memory" warning messages due to incorrect assumption of requested memory for sprites (r8133)
|
||||
- Fix: Bouys are now built and numbered 1..9 not 9..1 [FS#538] (r8123)
|
||||
- Fix: Clicking for more news properly cycles through the news history backwards, and does not show the first item doubly if it's already open (r8049)
|
||||
- Fix: Crash when removing a town in the scenario editor while the query window is open for one of the town's tiles (r8030)
|
||||
@@ -1671,7 +1375,7 @@
|
||||
- Feature: Increase the chatbuffer of chat messages, messages longer than the graphical box will be wrapped to a new line (r6956)
|
||||
- Feature: Allow typing longer text than visible for an editbox; it will scroll properly now (r6954)
|
||||
- Feature: Allow spectators to team-speak to eachother (r6933)
|
||||
- Feature: Allow for ' to be in console tokens. Escape them with \. eg \' (r6875)
|
||||
- Feature: Allow for " to be in console tokens. Escape them with \. eg \" (r6875)
|
||||
- Feature: Change the functionality of the chat window. SHIFT+ENTER (SHIFT+T) sends a message to all players, CTRL+ENTER (CTRL+T) sends a message to all team mates and ENTER (T) is customizable (r6824)
|
||||
- Feature: (Train is) lost message is now generated immediately when pathfinder cannot find the path (r6800)
|
||||
- Feature: Add a measurement tool that will show dimensions and height differences of various draggable tools (r6758)
|
||||
@@ -1684,7 +1388,7 @@
|
||||
- Feature: Depot and vehicle list windows reworked a bit with more buttons to include 'Autoreplace all' (instantly), 'Sell all', 'Start all' and 'Stop all' (r6542, r6552, r6515)
|
||||
- Feature: Using goto depot with a different control selection will now alter the service/stopping in depot flag instead of cancelling the goto depot order (r6295)
|
||||
- Feature: When automatically detecting the language try to first match language+territory (e.g. de_CH), then just language (e.g. de) and fall back to en_GB otherwise (r6290)
|
||||
- Feature: Add a 'goto depot' button to various vehicle list windows (r6229, r6246)
|
||||
- Feature: Add a "goto depot" button to various vehicle list windows (r6229, r6246)
|
||||
- Feature: Save max_companies/clients/spectators in the config file (r6170)
|
||||
- Feature: Vehicle status bar will show the heading string in different colours to visually discern the difference between a service and a forced stop (r6165, r6414)
|
||||
- Feature: Control clicking Goto Depot will now make the vehicle service instead of stop in depot (r6165)
|
||||
@@ -1703,12 +1407,12 @@
|
||||
- Feature: Also allow horizontal and vertical rails on steep slopes (r5864)
|
||||
- Feature: Allow building of (certain) rails, roads and bridge ramps on steep sloped tiles (r5833)
|
||||
- Feature: Replacing from a train engine without cargo capacity to one with cargo capacity will now make autoreplace refit the engine to carry the cargo type from the last wagon in the train (r5465)
|
||||
- Feature: [OSX] Macs with touchpads that support two finger scrolling can now use this 'scrollwheel' to scroll up/down (r5460)
|
||||
- Feature: [OSX] Macs with touchpads that support two finger scrolling can now use this "scrollwheel" to scroll up/down (r5460)
|
||||
- Feature: Allow building canals at sea-level, using ctrl to toggle canal or plain water tile. This allows building of non-raisable sea-level water ways (useful in multiplayer) and dikes for low-level areas (r5403)
|
||||
- Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters (r5346)
|
||||
- Feature: Implement smooth horizontal depot and, vehicle list scrolling for trains (r5046)
|
||||
- Feature: Add new pathfinder, YAPF. Has greatly improved performance and better, fully configurable, pathfinding (yapf) (r4987)
|
||||
- Feature: Add a new console command 'players' that lists current players along with basic stats [FS#150] (r4828)
|
||||
- Feature: Add a new console command "players" that lists current players along with basic stats [FS#150] (r4828)
|
||||
- Feature: Station List View can now be sorted and filtered (by waiting cargo type and facilities) (r4822)
|
||||
- Feature: The integer-list parser now accepts a space character as an item seperator next to the comma for openttd.cfg (r4490)
|
||||
- Feature: Add support for electric railways as a seperate tracktype. Electric trains will not run on non-electrfied track unless otherwise controlled by patch option (elrails) (r4150)
|
||||
@@ -1738,7 +1442,7 @@
|
||||
- Codechange: Show more correct capacity of articulated wagons in the train purchase list (r6650)
|
||||
- Codechange: When showing tooltips, properly position the tooltip taking into account window dimensions and cursor (r6405)
|
||||
- Codechange: Speed up the animated cursors a bit so they move once in a while at least (r6367)
|
||||
- Codechange: Remove the 'unsorted' vehicle sorter, because it's plain useless (r6270)
|
||||
- Codechange: Remove the "unsorted" vehicle sorter, because it's plain useless (r6270)
|
||||
- Codechange: Remove MSVC6 support. The compiler was too stupid and too many workarounds were needed. Please switch to mingw or VC2005++ express (r5286)
|
||||
- Codechange: Allow a switch in Makefile.config to disable threads in OpenTTD (r5978)
|
||||
- Codechange: [win32] Add native x64 target to VS2005 project files (r5813)
|
||||
@@ -1750,7 +1454,7 @@
|
||||
- Codechange: Completely remove the deprecated -p parameter (is superseded by -n) (r3508)
|
||||
- Fix: Town ratings were not reset when a company went bankrupt (r7433)
|
||||
- Fix: With realistic acceleration, guarantee a minimum braking force is applied. This ensures trains will stop when going down hill (r7425)
|
||||
- Fix: Changed 'kick off' acceleration resulted in only a small amount of power being applied; this resulted in a perceived delay before trains moved (r7421)
|
||||
- Fix: Changed "kick off" acceleration resulted in only a small amount of power being applied; this resulted in a perceived delay before trains moved (r7421)
|
||||
- Fix: Long delay for message windows to appear. Immediately show a new message if present if no news window is open, or has just been closed instead of waiting for the timer of the current news to time out [FS#255] (r7402)
|
||||
- Fix: Deleting Train in depot with autoreplace fails [FS#418] (r7385)
|
||||
- Fix: Do not update vehicle images when turning a train around. During this procedure the train is split into parts which can result in incorrect images being used (r7378)
|
||||
@@ -1758,16 +1462,16 @@
|
||||
- Fix: Segmentation fault in the SDL video driver when one goes to fullscreen and there are no suitable resolutions (r7332)
|
||||
- Fix: When loading a game from a dedicated server the local player set to 0, theoretically enabling the dedicated server to also play (r7312)
|
||||
- Fix: TTDPatch vars are little endian (r7282)
|
||||
- Fix: Always display the excavation of roadworks even when fully zoomed out or 'full details' are off (r7240)
|
||||
- Fix: Always display the excavation of roadworks even when fully zoomed out or "full details" are off (r7240)
|
||||
- Fix: Window allocation and deletion messed with the actual window pointer, possibly crashing OpenTTD [FS#350, SF#1560913] (r7205)
|
||||
- Fix: Callback not executed for non-player based patch changes in multiplayer for all clients; possible desync issue (r7190)
|
||||
- Fix: Station sign (and base station coordinates) did not move along with station when station moved by walking [FS#388] (r7169)
|
||||
- Fix: MiniMap was misplacing vehicles sometimes [FS#402] (r7166)
|
||||
- Fix: Some mouse events possibly lost under high CPU load, handle mouse input right away instead of waiting for GameLoop [FS#221, SF1168820] (r7157)
|
||||
- Fix: Some keyboard events possibly lost under high CPU load, handle keyboard input in place instead of global variables magic [FS#279] (r7153)
|
||||
- Fix: 'Position of Main Toolbar' option is not honored when starting new game or loading saved [FS#172] (r7130)
|
||||
- Fix: "Position of Main Toolbar" option is not honored when starting new game or loading saved [FS#172] (r7130)
|
||||
- Fix: Synchronize the engine-renew settings of a player when joining a multiplayer game (r7126)
|
||||
- Fix: Several errors/glitches related to multiplayer and bankrupcty (mainly server), and non-updated company-information (r7125)
|
||||
- Fix: Several errors/glitches related to multiplayer and bankrupcy (mainly server), and non-updated company-information (r7125)
|
||||
- Fix: Cloning a vehicle that has been refitted would incur the expense as running costs, not new vehicles [FS#371] (r7115)
|
||||
- Fix: Do not let ships enter partial water tiles under bridges; they will travel up land... (r7110)
|
||||
- Fix: AI tried to build road from the back or side of road stop/depot (r7069)
|
||||
@@ -1838,7 +1542,7 @@
|
||||
- Fix: It was possible to dig into a tunnel if certain rail combinations were ontop of it
|
||||
- Fix: A HQ could only be flooded at its northern tile, the other 3 were immune to water
|
||||
- Fix: Fix several glitches concerning foundations. Houses, property (rail/road/bridge/etc.) and cursor are now aligned properly
|
||||
- Fix: Prohibit altering a road tile while road works are in progress. This fixes some glitches like 'turning' the excavation by adding/removing road bits or removing the road piece
|
||||
- Fix: Prohibit altering a road tile while road works are in progress. This fixes some glitches like "turning" the excavation by adding/removing road bits or removing the road piece
|
||||
- Fix: Only advertise the server to your external IP/network (eg not to 127.0.0.1) and use proper broadcast addresses
|
||||
- Fix: '-f' switch is not valid on windows, so do not show it in help
|
||||
- Fix: [Autoreplace] Autoreplaced trains can leave all wagons in depot under certain circumstances
|
||||
@@ -1851,7 +1555,7 @@
|
||||
- Fix: [AI] The trolly AI used information from the wrong industry when calculating the amount of to be transported goods
|
||||
- Fix: [NTP] Fix NTP over bridges: do not check the rail type when on a bridge
|
||||
- Fix: Truncate text in dropdown lists to stop text overflowing
|
||||
- Fix: 'Erroneous train reversal on waypoints'. When processing the next train order, do not even consider reversing the train if the last order was to a waypoint
|
||||
- Fix: "Erroneous train reversal on waypoints". When processing the next train order, do not even consider reversing the train if the last order was to a waypoint
|
||||
- Fix: Starting a new scenario did not adhere to local difficulty settings but took it from the scenario itself. That mode is for 'play scenario'
|
||||
- Fix: Vehicles on a sloped tile under a bridge were affected by the bridge speed limit
|
||||
- Fix: Issue with train pathfinding over level crossings
|
||||
@@ -1868,18 +1572,18 @@
|
||||
- Fix: Game no longer crashes when the last vehicle servicing a station has been deleted
|
||||
- Fix: Reset the last built railtype when starting a new game
|
||||
- Fix: Cloned vehicles get the same service interval as the original vehicle
|
||||
- Fix: Game no longer errors out when 'Many random towns' is selected in the scenario editor
|
||||
- Fix: Game no longer errors out when "Many random towns" is selected in the scenario editor
|
||||
- Fix: Obscure road dragging bug. The road build command did not return the appropiate error message of invalid-slope when building road
|
||||
- Fix: Temperate bank will no longer appear (during game) in tropic landscape. This bug is from the original game
|
||||
- Fix: Specify the 'stopall' console command as a debug command
|
||||
- Fix: Fixed a problem that caused DeliverGoodsToIndustry to not work as intended
|
||||
- Fix: Ships and aircraft can now be used as feeders as well
|
||||
- Fix: When a multiheaded train is sold the pointers were not updated correctly causing sporadious crashes/disconnects
|
||||
- Fix: New plantations now cause the correct '.. being planted ..' news item
|
||||
- Fix: New plantations now cause the correct ".. being planted .." news item
|
||||
- Fix: Danish town names were saved/loaded as Swiss
|
||||
- Fix: Removing roads on crossings was done without a check for ownership
|
||||
- Fix: [Autoreplace] Fix drawing of train list for outdated engines
|
||||
- Fix: Malicious clients/servers could crash the game [CVE-2006-1999, CVE-2006-1998]
|
||||
- Fix: Malicious clients/servers could crash the game
|
||||
- Fix: [Autoreplace] allow replacement of wagons even when the engine fails to be replaced
|
||||
- Fix: Certain operations involving trains inside a depot could cause a crash
|
||||
- Fix: [Autoreplace] cost for refitting a new vehicle is added to the cost animation (player always paid for it, it just was not shown)
|
||||
@@ -1951,12 +1655,12 @@
|
||||
- Feature: [localisation] Support genders (r2594)
|
||||
- Feature: [localisation] Support cases (r2597)
|
||||
- Feature: Add support for truncating strings to a given (pixel) length (r2607)
|
||||
- Feature: Overhaul DirectMusic MIDI backend, remove 'experimental' status (r2712)
|
||||
- Feature: Overhaul DirectMusic MIDI backend, remove "experimental" status (r2712)
|
||||
- Feature: Change the driver probing algorithm: Use the first music/sound/video which succeeds initialising instead of bailing out after the first. No need to specify -snull if no soundcard is present anymore (r2728)
|
||||
- Feature: The Main Toolbar Dropdown Menu can now display disabled items (r2734)
|
||||
- Feature: Clone vehicles (r2764)
|
||||
- Feature: When starting without a config file determine the language on basis of the current locale (r2777)
|
||||
- Feature: [NewGRF] Add support for 'extended bytes' (r2872)
|
||||
- Feature: [NewGRF] Add support for "extended bytes" (r2872)
|
||||
- Feature: [localisation] Major step twoards ISO-8859-15: Implement missing characters (r2879)
|
||||
- Feature: Implement the console command rm to remove savegames (r2941)
|
||||
- Feature: Danish town names (r2957)
|
||||
@@ -2029,10 +1733,10 @@
|
||||
- Fix: On OS/2 show the trailing \ if the current directory is a root directory (r2860)
|
||||
- Fix: Return a proper version number, when testing the TTDPatch version in the SkipIf action (r2862)
|
||||
- Fix: Change the way NewGRFs are loaded, this saves quite some sprite slots - about 2000 for DBSetXL for example (r2868)
|
||||
- Fix: Several format string vulnerabilities and buffer overflows in the network code [CVE-2005-2764, CVE-2005-2763] (r2899)
|
||||
- Fix: Several format string vulnerabilities and buffer overflows in the network code (r2899)
|
||||
- Fix: fixed issue where autorenewed vehicles did not get all stats updated (r2912)
|
||||
- Fix: Exit the child of the extmidi backend with _exit() instead of exit(), because we do not want any atexit handlers - especially flushing output streams - to run, if exec() fails (r2938)
|
||||
- Fix: Server crash with 'say'-command (r2950)
|
||||
- Fix: Server crash with "say"-command (r2950)
|
||||
- Fix: Fix win32 midi volume level control which did not work (r2960)
|
||||
- Fix: [OSX] quitting the game no longer leaves a process behind that eats all the CPU power (r3281)
|
||||
- Fix: Fix for UFO-broken waypoint [SF#1216203] (r2961)
|
||||
@@ -2157,9 +1861,9 @@
|
||||
- Fix: Autosave ignoring settings [SF#1149487]
|
||||
- Fix: Infinite access for A:\ (win32). Patch [1171208]. Only requery drive(s) if the user changes a directory, also surpress the OS error box that pops up on some windows machines [SF#1024703]
|
||||
- Fix: Create Lake and draggable Create Desert tools [SF#1095110]
|
||||
- Fix: Trains 'Go to depot' button: click twice skip to next order [SF#1172878]
|
||||
- Fix: Engine power not updated w/auto replace' autoreplace now forces an update of the cache [SF#1146215]
|
||||
- Fix: Path displaying as 'C:\\' in saveload window win32-only [SF#1173690]
|
||||
- Fix: Trains "Go to depot" button: click twice skip to next order [SF#1172878]
|
||||
- Fix: Engine power not updated w/auto replace" autoreplace now forces an update of the cache [SF#1146215]
|
||||
- Fix: Path displaying as "C:\\" in saveload window win32-only [SF#1173690]
|
||||
- Fix: Click & drag removal of road assertion fail [SF#1179892]
|
||||
- Fix: Max loan always in euros, use _opt_ptr instead of _opt [SF#1174237]
|
||||
- Fix: AI orders its vehicles to a competitor's truck stop [SF#1184201]
|
||||
@@ -2207,7 +1911,7 @@
|
||||
- Feature: [Windows] CTRL+V (Paste) now works on all editboxes. This includes 'Add Server', chat, etc
|
||||
- Feature: [Windows] dedicated server is now functioning correctly
|
||||
- Feature: Addded keyboard shortcuts for the order window
|
||||
- Feature: Aircraft refit options have been restricted to 'sane' values
|
||||
- Feature: Aircraft refit options have been restricted to "sane" values
|
||||
- Feature: allows setting the production values of the rawmaterial producing industries in the editor
|
||||
- Feature: console support for loading maps. Use 'load', 'list_files' and 'goto_dir' to navigate and load games
|
||||
- Feature: Display server port in the multiplayer game info window
|
||||
@@ -2218,7 +1922,7 @@
|
||||
- Feature: New companies receive a 5-year protection period against buying-up
|
||||
- Feature: norwegian townnames
|
||||
- Feature: Order Checking is only execute for ONE vehicle in an order-share system
|
||||
- Feature: Passengers aircraft now ignore the amount of mail for 'full load any' options
|
||||
- Feature: Passengers aircraft now ignore the amount of mail for "full load any" options
|
||||
- Feature: place multiple accepting industies nearby in the editor mode if the appropriate patches are set
|
||||
- Feature: population in label of the town (patch setting)
|
||||
- Feature: scrolling credits list (in alphabetical order)
|
||||
@@ -2252,7 +1956,7 @@
|
||||
- Fix: Crash if generating land while industry window is open. This also happened for towns and the land information window [SF#1101179]
|
||||
- Fix: Configure Patches window text overflow [SF#1101906]
|
||||
- Fix: console in dedicated server [SF#1101963]
|
||||
- Fix: Game crashed when clicking 'new face' or 'company color' twice [SF#1102275]
|
||||
- Fix: Game crashed when clicking "new face" or "company color" twice [SF#1102275]
|
||||
- Fix: Vehicle lists are now redrawn when a vehicle arrives in a depot. Station-specific vehicle lists are now redrawn daily as well (not only the master list) [SF#1099535, SF#1102776]
|
||||
- Fix: font size changing. Dedicated server did not have code filtering, 'tab' could result in bigger fonts [SF#1103113]
|
||||
- Fix: Order Check messages are now validated before displayed [SF#1103187]
|
||||
@@ -2290,7 +1994,7 @@
|
||||
- Fix: finally zooming in/out always works
|
||||
- Fix: fixed chat-bug (that from a certain moment, nobody could talk)
|
||||
- Fix: fixed weight for double-head trains and with that the acceleration (now maglev lvl4 can reach their top speed, and are faster than lvl3)
|
||||
- Fix: Full-Loading trains no longer get 'lost' after a while
|
||||
- Fix: Full-Loading trains no longer get "lost" after a while
|
||||
- Fix: Graphs were not updated correctly when one graph with a certain selection was already open and another graph window was opened
|
||||
- Fix: in multiplayer clientlist can only be opened once
|
||||
- Fix: Loan does not count against the company value
|
||||
@@ -2310,7 +2014,7 @@
|
||||
- Fix: the scrollbar in the network gui (server list) now updates when scrolling
|
||||
- Fix: Train crashes should no longer desync the game
|
||||
- Fix: When deleting an order, the next pointer was not cleared, resulting in some unusual behavoir from time to time
|
||||
- Fix: You can now also delete automatically found servers by pressing 'del'
|
||||
- Fix: You can now also delete automatically found servers by pressing "del"
|
||||
- Fix: You should no longer be able to delete bridges on any type of underground when there is a vehicle on it
|
||||
|
||||
|
||||
@@ -2409,7 +2113,7 @@
|
||||
- Change: Removed patch no_train_service. Instead you can set the default service interval for any vehicle type to 'disabled'
|
||||
- Codechange: Comments added to the code
|
||||
- Codechange: Made bridge building code more readable [SF#996244]
|
||||
- Feature: 'None' as option for number of industries in difficulty settings
|
||||
- Feature: "None" as option for number of industries in difficulty settings
|
||||
- Feature: Add many random industries and towns in scenario editor
|
||||
- Feature: Added Autosignals, just like Autorail. Can copy signal style, convert signal<->semaphore, etc
|
||||
- Feature: Added level land button to scenario editor
|
||||
@@ -2523,8 +2227,8 @@
|
||||
- Fix: Weird two tile bridges on slopes [SF#996065]
|
||||
- Fix: Empty strings in signs [SF#997303]
|
||||
- Fix: Junction after tunnel bug [SF#997703]
|
||||
- Fix: 'autosave' directoy creation (MorphOS/AmigaOS) [SF#999592]
|
||||
- Fix: I lost all wagons. Half-assed fix for lost wagons. But now users can at least fix this problem. Consolecommand 'resetengines' [SF#1001540]
|
||||
- Fix: "autosave" directoy creation (MorphOS/AmigaOS) [SF#999592]
|
||||
- Fix: I lost all wagons. Half-assed fix for lost wagons. But now users can at least fix this problem. Consolecommand "resetengines" [SF#1001540]
|
||||
- Fix: BuildRoadOutsideStation fix [SF#1006530]
|
||||
- Fix: Autorenew issues [SF#1006715]
|
||||
- Fix: Copy orders between bus/truck possible [SF#1007272]
|
||||
@@ -2566,7 +2270,7 @@
|
||||
- Feature: Land info now shows type of signal
|
||||
- Feature: Realistic train reversing
|
||||
- Feature: Added support for 64 bit CPUs
|
||||
- Feature: Added water quantity level 'very low', which is the default for easy mode now
|
||||
- Feature: Added water quantity level "very low", which is the default for easy mode now
|
||||
- Feature: Realistic acceleration turned on, train must first slow down and stop before it can reverse
|
||||
- Feature: [MorphOS]: Various small improvement to make the the game feel more native
|
||||
- Feature: Alt + f now toggles full screen (alt + enter still works)
|
||||
@@ -2581,7 +2285,7 @@
|
||||
- Feature: Initial GRF support.You have to enable it in openttd.cfg using [NewGRF] setting
|
||||
- Feature: Smooth economy changes
|
||||
- Feature: TTDPatch-style gotodepot. Ship depots and aircraft hangars can be inserted in the schedule as well
|
||||
- Feature: Ability to add 'service if needed' orders (the 'full load' button changes to 'service' after selecting a depot order)
|
||||
- Feature: Ability to add "service if needed" orders (the "full load" button changes to "service" after selecting a depot order)
|
||||
- Feature: If a vehicle has depot orders in its schedule, automatic servicing is disabled
|
||||
- Feature: Patch setting so that helicopters get serviced automatically on helipad
|
||||
- Feature: Center toolbar on screen
|
||||
@@ -2643,7 +2347,7 @@
|
||||
- Fix: Inflation was way too high when intrest rate = 0
|
||||
- Fix: Cannot sell anything if money is TOO negative
|
||||
- Fix: Fast forward button resets
|
||||
- Fix: 'Refit train' button remains
|
||||
- Fix: "Refit train" button remains
|
||||
- Fix: Enable up/down scrolling with the mouse
|
||||
- Fix: 1920 all trains
|
||||
- Fix: Wrong heli breakdownspeed
|
||||
@@ -2687,7 +2391,7 @@
|
||||
- Feature: Bemidi support
|
||||
- Feature: Added Icelandic currency
|
||||
- Change: Plant area of trees now allowed for 20x20 area
|
||||
- Change: 'kmh^-1' to 'km/h'
|
||||
- Change: "kmh^-1" to "km/h"
|
||||
- Change: Show original savegame names for oldstyle savegames
|
||||
- Change: Autosave go to autosave/
|
||||
- Fix: Do not allow building railroad stations on airports or bus stations
|
||||
@@ -2740,7 +2444,7 @@
|
||||
- Feature: More realistic train starting and stopping
|
||||
- Change: New directory structure (*.grf+sample.cat in data subdir, *.lng in lang subdir)
|
||||
- Fix: Shift+arrows keys scrolls faster
|
||||
- Fix: 'Monorail in 1985' which allowed you to build monorail/maglev at any year [SF#941880]
|
||||
- Fix: "Monorail in 1985" which allowed you to build monorail/maglev at any year [SF#941880]
|
||||
- Fix: Town ratings when companies are deleted/merged
|
||||
- Fix: Vehicle reliability calculation in third phase
|
||||
- Fix: Random world button in scenario editor does not build cities, industries, trees
|
||||
@@ -2865,27 +2569,27 @@
|
||||
- Feature: Show semaphores on the right side if right-sided traffic
|
||||
- Feature: Patch options configuration window
|
||||
- Feature: Autorail build tool
|
||||
- Feature: 'Show yearly finances window' option
|
||||
- Feature: 'Signals on drive side' patch
|
||||
- Feature: 'Show full date in statusbar' option
|
||||
- Feature: "Show yearly finances window" option
|
||||
- Feature: "Signals on drive side" patch
|
||||
- Feature: "Show full date in statusbar" option
|
||||
- Feature: Italian translation
|
||||
- Feature: Road and rail removal by dragging a selection
|
||||
- Feature: News item for 'train is unprofitable'
|
||||
- Feature: News item for 'train is lost'
|
||||
- Feature: News item for "train is unprofitable"
|
||||
- Feature: News item for "train is lost"
|
||||
- Feature: [Win32] Double size mode (Ctrl-d to toggle)
|
||||
- Feature: 'Multiple similar industries in close proximity' option
|
||||
- Feature: 'Multiple industries per down' option
|
||||
- Feature: 'Crossing tunnels' option
|
||||
- Feature: Order sharing and copying ('goto' on other vehicle to copy, ctrl+'goto' to share)
|
||||
- Feature: "Multiple similar industries in close proximity" option
|
||||
- Feature: "Multiple industries per down" option
|
||||
- Feature: "Crossing tunnels" option
|
||||
- Feature: Order sharing and copying ("goto" on other vehicle to copy, ctrl+"goto" to share)
|
||||
- Feature: Remember last built rail type
|
||||
- Feature: 'Debtmax' faster loan management with ctrl key
|
||||
- Feature: 'Go to depot' orders option
|
||||
- Feature: 'Long bridges' option
|
||||
- Feature: 'Select goods' option
|
||||
- Feature: 'No train service' option
|
||||
- Feature: 'No inflation' option
|
||||
- Feature: "Debtmax" faster loan management with ctrl key
|
||||
- Feature: "Go to depot" orders option
|
||||
- Feature: "Long bridges" option
|
||||
- Feature: "Select goods" option
|
||||
- Feature: "No train service" option
|
||||
- Feature: "No inflation" option
|
||||
- Feature: Automatically detect available resolutions
|
||||
- Feature: 'Full load any' option, as in TTDPatch
|
||||
- Feature: "Full load any" option, as in TTDPatch
|
||||
- Feature: Automatic detection of available language files
|
||||
- Feature: German translation
|
||||
- Feature: Finnish town names
|
||||
@@ -2910,7 +2614,7 @@
|
||||
- Fix: Disallow buoy in north corner
|
||||
- Fix: Shift key now increases game speed only when game window is active
|
||||
- Fix: Ctrl button now works with SDL driver
|
||||
- Fix: Incorrect weight displayed in 'new trains' window
|
||||
- Fix: Incorrect weight displayed in "new trains" window
|
||||
- Fix: Incorrect train running cost in newspaper
|
||||
|
||||
|
||||
@@ -2991,8 +2695,8 @@
|
||||
- Feature: Command line -g flag now optionally takes a game to load
|
||||
- Add: External MIDI driver for Unix version
|
||||
- Add: DirectMusic driver for Win32 version
|
||||
- Add: 'build tracks on slopes' feature
|
||||
- Add: "build tracks on slopes" feature
|
||||
- Fix: Problem where directories were not displayed under Linux
|
||||
- Fix: Colors in map window for routes
|
||||
- Fix: Road drive side
|
||||
- Fix: 'Fund road construction' not clickable when unavailable
|
||||
- Fix: "Fund road construction" not clickable when unavailable
|
||||
|
516
config.lib
516
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.2"
|
||||
|
||||
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"
|
||||
@@ -79,7 +71,6 @@ set_default() {
|
||||
with_freetype="1"
|
||||
with_fontconfig="1"
|
||||
with_icu="1"
|
||||
static_icu="0"
|
||||
with_psp_config="1"
|
||||
with_threads="1"
|
||||
with_distcc="1"
|
||||
@@ -118,7 +109,6 @@ set_default() {
|
||||
enable_debug
|
||||
enable_desync_debug
|
||||
enable_profiling
|
||||
enable_lto
|
||||
enable_dedicated
|
||||
enable_network
|
||||
enable_static
|
||||
@@ -137,7 +127,6 @@ set_default() {
|
||||
with_cocoa
|
||||
with_zlib
|
||||
with_png
|
||||
enable_builtin_depend
|
||||
with_makedepend
|
||||
with_direct_music
|
||||
with_sort
|
||||
@@ -148,12 +137,11 @@ set_default() {
|
||||
with_freetype
|
||||
with_fontconfig
|
||||
with_icu
|
||||
static_icu
|
||||
with_psp_config
|
||||
with_threads
|
||||
with_distcc
|
||||
with_ccache
|
||||
CC CXX CFLAGS CXXFLAGS LDFLAGS"
|
||||
CC CXX CFLAGS LDFLAGS"
|
||||
}
|
||||
|
||||
detect_params() {
|
||||
@@ -266,10 +254,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";;
|
||||
@@ -350,19 +334,11 @@ detect_params() {
|
||||
--with-libicu) with_icu="2";;
|
||||
--without-libicu) with_icu="0";;
|
||||
--with-libicu=*) with_icu="$optarg";;
|
||||
--static-icu) static_icu="1";;
|
||||
--static-icu=*) static_icu="$optarg";;
|
||||
--static-libicu) static_icu="1";;
|
||||
--static-libicu=*) static_icu="$optarg";;
|
||||
|
||||
--with-psp-config) with_psp_config="2";;
|
||||
--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 +381,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 +446,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 +491,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 +507,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 +565,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 +767,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 +815,7 @@ check_params() {
|
||||
fi
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
check_osx_sdk
|
||||
# Test on G5
|
||||
|
||||
if [ "$enable_osx_g5" != "0" ]; then
|
||||
@@ -1032,6 +962,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 +1013,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 +1042,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 +1058,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 +1066,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 +1095,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 +1108,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 +1125,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 +1135,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 +1177,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 +1222,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 +1243,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"
|
||||
@@ -1449,12 +1301,7 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS -DWITH_ICU"
|
||||
CFLAGS="$CFLAGS `$icu_config --cppflags | tr '\n\r' ' '`"
|
||||
|
||||
# Some icu-configs have the 'feature' of not adding a space where others do add the space
|
||||
if [ "$static_icu" != "0" ]; then
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
|
||||
else
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' '`"
|
||||
fi
|
||||
LIBS="$LIBS `$icu_config --ldflags-libsonly | tr '\n\r' ' '`"
|
||||
fi
|
||||
|
||||
|
||||
@@ -1514,10 +1361,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 +1396,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 +1405,9 @@ 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'`"
|
||||
|
||||
# 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'`"
|
||||
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'`"
|
||||
cflags_makedep="$cflags_makedep `echo "$CFLAGS" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
|
||||
else
|
||||
makedepend=""
|
||||
fi
|
||||
@@ -1764,24 +1603,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 +1631,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 +1671,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 +1772,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,19 +1792,17 @@ 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}
|
||||
/os\/2/ { print "OS2"; exit}
|
||||
/gnu/ { print "UNIX"; exit}
|
||||
'`
|
||||
fi
|
||||
|
||||
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 +1943,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 +1988,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 +2232,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
|
||||
@@ -2537,9 +2294,9 @@ detect_icu() {
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -lt "22" ]; then
|
||||
if [ -n "$shortversion" ] && [ "$shortversion" -lt "22" ]; then
|
||||
log 1 "checking libicu... needs at least version 2.2.0, icu NOT enabled"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -lt "20" ]; then
|
||||
if [ -n "$shortversion" ] && [ "$shortversion" -lt "20" ]; then
|
||||
log 1 "checking libicu... needs at least version 2.0.0, icu NOT enabled"
|
||||
else
|
||||
log 1 "checking libicu... not found"
|
||||
fi
|
||||
@@ -2675,7 +2432,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 +2453,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 +2546,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 +2564,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 +2590,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 +2715,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 +2765,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 +2805,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)"
|
||||
@@ -3119,18 +2841,14 @@ showhelp() {
|
||||
echo " --with-fontconfig[=pkg-config fontconfig]"
|
||||
echo " enables fontconfig support"
|
||||
echo " --with-icu[=icu-config] enables icu (used for right-to-left support)"
|
||||
echo " --static-icu try to link statically (libsicu instead of"
|
||||
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"
|
||||
|
34
configure
vendored
34
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"
|
||||
@@ -61,9 +54,8 @@ if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
|
||||
# Make sure we don't lock config.cache
|
||||
cat config.cache | sed 's@\\ @\\\\ @g' > cache.tmp
|
||||
sh cache.tmp
|
||||
RET=$?
|
||||
rm -f cache.tmp
|
||||
exit $RET
|
||||
exit $?
|
||||
fi
|
||||
|
||||
set_default
|
||||
@@ -80,7 +72,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@"
|
||||
@@ -94,7 +85,7 @@ if [ ! -f "$LANG_DIR/english.txt" ]; then
|
||||
fi
|
||||
|
||||
# Read the source.list and process it
|
||||
AWKCOMMAND='
|
||||
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk '
|
||||
{ }
|
||||
/^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; }
|
||||
/^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
|
||||
@@ -115,10 +106,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; }
|
||||
@@ -140,17 +130,13 @@ AWKCOMMAND='
|
||||
print $0;
|
||||
}
|
||||
}
|
||||
'
|
||||
' | $PIPE_SORT`"
|
||||
|
||||
# Read the source.list and process it
|
||||
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
|
||||
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | $PIPE_SORT`"
|
||||
|
||||
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.c$/ { gsub(\".c$\", \".o\", $0); print $0; }'`"
|
||||
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.cpp$/ { gsub(\".cpp$\", \".o\", $0); print $0; }'`"
|
||||
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.mm$/ { gsub(\".mm$\", \".o\", $0); print $0; }'`"
|
||||
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.rc$/ { gsub(\".rc$\", \".o\", $0); print $0; }'`"
|
||||
SRCS="` echo \"$SRCS\" | $awk ' { ORS = \" \" } { print $0; }'`"
|
||||
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`"
|
||||
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
|
||||
OBJS_MM="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.mm$/ { gsub(".mm$", ".o", $0); print $0; }'`"
|
||||
OBJS_RC="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.rc$/ { gsub(".rc$", ".o", $0); print $0; }'`"
|
||||
SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`"
|
||||
|
||||
# In makefiles, we always use -u for sort
|
||||
if [ -z "$sort" ]; then
|
||||
|
@@ -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>
|
||||
|
@@ -26,20 +26,12 @@
|
||||
[metadata]
|
||||
; the name of the pack, preferably less than 16 characters
|
||||
name = example
|
||||
; the short name (4 characters), used to identify this set
|
||||
; the short name (4 characters), used to identify this set within NewGRFs
|
||||
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
|
||||
|
||||
@@ -57,8 +49,6 @@ tropical = TRGH.GRF
|
||||
; GRF file with extra toyland sprites
|
||||
toyland = TRGT.GRF
|
||||
; NewGRF file using Actions 5, 7, 9 and A to replace sprites
|
||||
; Must use a GRF ID starting with FF so it cannot be selected from
|
||||
; the in-game NewGRF list and (thus) be loaded twice.
|
||||
extra = OPENTTDD.GRF
|
||||
|
||||
; The md5s section lists the MD5 checksum for the files that replace them.
|
||||
|
@@ -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
|
||||
|
160
known-bugs.txt
160
known-bugs.txt
@@ -1,18 +1,5 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2009-12-24
|
||||
Release version: 1.0.0-beta1
|
||||
README
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
Table of Contents:
|
||||
------------------
|
||||
1) About
|
||||
2) Known bugs in the this stable release
|
||||
3) Known bugs that will not be solved
|
||||
|
||||
|
||||
1) About:
|
||||
-- ------
|
||||
All bugs listed below are marked as known. Please do not submit any bugs
|
||||
that are the same as these. If you do, do not act surprised, because
|
||||
we WILL flame you!!
|
||||
@@ -21,134 +8,27 @@ Of course if you have more knowledge about any of these bugs, have more
|
||||
specifics, we welcome you to report them. React to the given bug indicated
|
||||
by the number below on http://bugs.openttd.org.
|
||||
|
||||
If the bug report is closed, it has been fixed, which then can be verified
|
||||
in the latest SVN version of /trunk.
|
||||
|
||||
2) Known bugs in the this stable release:
|
||||
-- --------------------------------------
|
||||
The following bugs are known to exist in this stable release and
|
||||
we intend to fix them. Some bugs are known but are not fixable or
|
||||
fixing them would cause further problems. Those bugs can be found
|
||||
in the "Known bugs that will not be solved" section.
|
||||
Bugs for 0.7.2
|
||||
------------------------------------------------------------------------
|
||||
URL: http://bugs.openttd.org
|
||||
|
||||
The bugs in this section all refer to a ticket in our bug tracking system
|
||||
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
|
||||
- 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
|
||||
- 2737 Self-crossing trains ignore "forbid 90 degree turn" setting
|
||||
- 2616 Cloning creates vehicles with invalid subcargos
|
||||
- 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
|
||||
- 1473 Lost trains ignore exit signals
|
||||
- 1140 [OSX] Not smooth moving map with touchpad
|
||||
|
||||
|
||||
3) Known bugs that will not be solved:
|
||||
-- -----------------------------------
|
||||
This section lists all known bugs that we do not intend to fix and the
|
||||
reasons why we think that fixing them is infeasible. We might make some
|
||||
minor improvements that reduce the scope of these bugs, but we will not
|
||||
be able to completely fix them.
|
||||
|
||||
No suitable AI can be found
|
||||
If you have no AIs and an AI is started the so-called 'dummy' AI will
|
||||
be loaded. This AI does nothing but writing a message on the AI debug
|
||||
window and showing a red warning. There are basically two solutions
|
||||
for this problem: you must change the settings so no AI is started,
|
||||
this is done in the difficulty settings window. The other solution is
|
||||
acquiring (downloading) some AI. The easiest way to do this is via
|
||||
the "Check Online Content" button in the main (intro) menu or via
|
||||
"AI Settings" -> "Select AI" -> "Check Online Content" which is also
|
||||
accessed via the main menu.
|
||||
|
||||
Clipping problems [FS#119]
|
||||
In some cases sprites are not drawn as one would expect. Examples of
|
||||
this are aircraft that might be hidden below the runway or trees that
|
||||
in some cases are rendered over vehicles.
|
||||
The primary cause of this problem is that OpenTTD does not have enough
|
||||
data (like a 3D model) to properly determine what needs to be drawn in
|
||||
front of what. OpenTTD has bounding boxes but in lots of cases they
|
||||
are either too big or too small and then cause problems with what
|
||||
needs to be drawn in front of what. Also some visual tricks are used.
|
||||
For example trains at 8 pixels high, the catenary needs to be drawn
|
||||
above that. When you want to draw bridges on top of that, which are
|
||||
only one height level (= 8 pixels) higher, you are getting into some
|
||||
big problems.
|
||||
We can not change the height levels; it would require us to either
|
||||
redraw all vehicle or all landscape graphics. Doing so would mean we
|
||||
leave the Transport Tycoon graphics, which in effect means OpenTTD
|
||||
will not be a Transport Tycoon clone anymore.
|
||||
|
||||
Lost trains ignore (block) exit signals [FS#1473]
|
||||
If trains are lost they ignore block exit signals, blocking junctions
|
||||
with presignals. This is caused because the path finders cannot tell
|
||||
where the train needs to go. As such a random direction is chosen at
|
||||
each junction. This causes the trains to occasionally to make choices
|
||||
that are unwanted from a player's point of view.
|
||||
This will not be fixed because lost trains are in almost all cases a
|
||||
network problem, e.g. a train can never reach a specific place. This
|
||||
makes the impact of fixing the bug enormously small against the
|
||||
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
|
||||
due to the fact that we can not be sure that the setting was turned
|
||||
off when the track was reserved, which means that we assume it was
|
||||
turned on and that the setting does not hold at the time. We made it
|
||||
this way to allow one to change the setting in-game, but it breaks
|
||||
slightly when you are running your train through itself. Running a
|
||||
train through means that your network is broken and is thus a user
|
||||
error which OpenTTD tries to graciously handle.
|
||||
Fixing this bug means that we need to record whether this particular
|
||||
setting was turned on or off at the time the reservation was made. This
|
||||
means adding quite a bit of data to the savegame for solving an issue
|
||||
that is basically an user error. We think it is not worth the effort.
|
||||
|
||||
Duplicate (station) names after renaming [FS#3204]
|
||||
After renaming stations one can create duplicate station names. This
|
||||
is done giving a station the same custom name as another station with
|
||||
an automatically generated name.
|
||||
The major part of this problem is that station names are translatable.
|
||||
Meaning that a station is called e.g. '<TOWN> Central' in English and
|
||||
'<TOWN> Centraal' in Dutch. This means that in network games the
|
||||
renaming of a town could cause the rename to succeed on some clients
|
||||
and fail at others. This creates an inconsistent game state that will
|
||||
be seen as a 'desync'. Secondly the custom names are intended to fall
|
||||
completely outside of the '<TOWN> <name>' naming of stations, so when
|
||||
you rename a town all station names are updated accordingly.
|
||||
As a result the decision has been made that all custom names are only
|
||||
compared to the other custom names in the same class and not compared
|
||||
to the automatically generated names.
|
||||
|
||||
Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294]
|
||||
OpenTTD can be extremely slow/use a lot of CPU when the sound is
|
||||
played via SDL and then through PulseAudio's ALSA wrapper. Under the
|
||||
same configuration OpenTTD, or rather SDL, might hang when exiting
|
||||
the game. This setup seems to be the default configuration for
|
||||
Ubuntu 9.04 and later. For Ubuntu this issue can be solved by
|
||||
installing the 'libsdl1.2debian-pulseaudio' package from Ubuntu's
|
||||
Universe repository. For other distributions a similar package needs
|
||||
to be installed.
|
||||
|
||||
OpenTTD not properly resizing with SDL on X [FS#3305]
|
||||
Under some X window managers OpenTTD's window does not properly
|
||||
resize. You will either end up with a black bar at the right/bottom
|
||||
side of the window or you cannot see the right/bottom of the window,
|
||||
e.g you cannot see the status bar. The problem is that OpenTTD does
|
||||
not always receive a resize event from SDL making it impossible for
|
||||
OpenTTD to know that the window was resized; sometimes moving the
|
||||
window will solve the problem.
|
||||
Window managers that are known to exhibit this behaviour are KDE's
|
||||
and GNOME's. With the XFCE's and LXDE's window managers the resize
|
||||
event is sent when the user releases the mouse.
|
||||
- 1072 Text overflows in several windows
|
||||
- 119 Clipping problems with vehicles on slopes
|
||||
|
@@ -1,6 +1,7 @@
|
||||
# $Id$
|
||||
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Version=1.1
|
||||
Name=!!MENU_NAME!!
|
||||
|
@@ -1,58 +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.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 23 Dec 2009 20:52:34 +0100
|
||||
|
||||
openttd (0.7.5~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 14 Dec 2009 19:28:37 +0100
|
||||
|
||||
openttd (0.7.4) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 01 Dec 2009 01:23:45 +0100
|
||||
|
||||
openttd (0.7.4~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Nov 2009 16:30:07 +0100
|
||||
|
||||
openttd (0.7.3) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Oct 2009 12:35:47 +0200
|
||||
|
||||
openttd (0.7.3~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Sep 2009 21:30:43 +0200
|
||||
|
||||
openttd (0.7.3~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 13 Sep 2009 10:25:56 +0200
|
||||
|
||||
openttd (0.7.2) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
@@ -7,13 +7,10 @@
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself
|
||||
#
|
||||
# Note: for (at least) CentOS '#' comments end '\' continue command on new line.
|
||||
# So place all '#' commented parameters of e.g. configure to the end.
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
Name: openttd
|
||||
Version: 1.0.0
|
||||
Version: 0.7.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
Group: Amusements/Games
|
||||
@@ -21,12 +18,13 @@ License: GPLv2
|
||||
URL: http://www.openttd.org
|
||||
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
|
||||
|
||||
Source: %{name}-%{version}-source.tar.bz2
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
|
||||
Requires: fontconfig
|
||||
Requires: libicu
|
||||
Requires: libpng
|
||||
Requires: SDL
|
||||
Requires: zlib
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libicu-devel
|
||||
@@ -37,32 +35,33 @@ BuildRequires: zlib-devel
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
%endif
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
Requires: freetype2
|
||||
BuildRequires: libfreetype6-devel
|
||||
%endif
|
||||
%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
%endif
|
||||
%if %{_vendor}=="suse" || %{_vendor}=="mandriva"
|
||||
%if %{_vendor}=="suse"
|
||||
Requires: freetype2
|
||||
BuildRequires: freetype2-devel
|
||||
%endif
|
||||
%if %{_vendor}=="suse"
|
||||
BuildRequires: update-desktop-files
|
||||
%endif
|
||||
|
||||
# recommends works for suse (not sles9) and mandriva, only
|
||||
%if 0%{?suse_version} > 910 || %{_vendor}=="mandriva"
|
||||
Recommends: opengfx
|
||||
# for 0.8.0
|
||||
#Recommends: opensfx
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||
|
||||
%description
|
||||
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
|
||||
with lots of new features and enhancements. To play the game you need either
|
||||
the original data from the game or install the recommend package OpenGFX.
|
||||
with lots of new features and enhancements. To play the game you need to copy
|
||||
the following 6 data files from your Transport Tycoon Deluxe CD to the game
|
||||
data directory in %{_datadir}/games/%{name}/data:
|
||||
|
||||
From the Windows version of TTD you need:
|
||||
sample.cat trg1r.grf trgcr.grf trghr.grf trgir.grf trgtr.grf
|
||||
|
||||
Or if you have the DOS version you need:
|
||||
sample.cat TRG1.GRF TRGC.GRF TRGH.GRF TRGI.GRF TRGT.GRF
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For more
|
||||
information, see the file 'COPYING' included with every release and source
|
||||
@@ -72,71 +71,49 @@ download of the game.
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
# suse sle <10 has no support for makedepend
|
||||
%if 0%{?sles_version} == 9 || 0%{?sles_version} == 10
|
||||
%define do_makedepend 0
|
||||
%else
|
||||
%define do_makedepend 1
|
||||
%endif
|
||||
./configure \
|
||||
--revision=%{version} \
|
||||
--prefix-dir="%{_prefix}" \
|
||||
--binary-name="%{name}" \
|
||||
--enable-strip \
|
||||
--binary-dir="bin" \
|
||||
--data-dir="share/%{name}" \
|
||||
--with-makedepend="%{do_makedepend}" \
|
||||
# --revision="%{ver}%{?prever:-%{prever}}" \
|
||||
# --enable-debug=0 \
|
||||
# --with-sdl \
|
||||
# --with-zlib \
|
||||
# --with-png \
|
||||
# --with-freetype \
|
||||
# --with-fontconfig \
|
||||
# --with-icu \
|
||||
# --menu_group="Game;" \
|
||||
--binary-name="%{name}" \
|
||||
# --menu-name="OpenTTD" \
|
||||
# --data-dir="share\games\%{name}" \
|
||||
# --doc-dir="share\doc\%{name}" \
|
||||
# --icon-dir="share/pixmaps" \
|
||||
# --icon-theme-dir="share/icons/hicolor" \
|
||||
# --man-dir="share/man/man6" \
|
||||
# --menu-dir="share/applications"
|
||||
|
||||
# --menu-dir="share/applications" \
|
||||
--enable-debug=0 \
|
||||
# --menu_group="Game;" \
|
||||
--with-sdl \
|
||||
--with-zlib \
|
||||
--with-png \
|
||||
--with-freetype \
|
||||
--with-fontconfig \
|
||||
--with-icu \
|
||||
--enable-strip
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
rm -rf "%{buildroot}"
|
||||
make install INSTALL_DIR="%{buildroot}"
|
||||
|
||||
# Validate menu entrys (vendor specific)
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
desktop-file-install \
|
||||
# --delete-original \
|
||||
--vendor="%{_vendor}" \
|
||||
--remove-key Version \
|
||||
--dir="%{buildroot}/%{_datadir}/applications/" \
|
||||
"%{buildroot}/%{_datadir}/applications/%{name}.desktop" \
|
||||
# --delete-original
|
||||
%endif
|
||||
%if %{_vendor}=="suse"
|
||||
%__cat > %{name}.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=OpenTTD
|
||||
Comment=OpenTTD - A clone of the Microprose game 'Transport Tycoon Deluxe'
|
||||
GenericName=OpenTTD
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Exec=%{name}
|
||||
Icon=%{name}
|
||||
Categories=Game;StrategyGame;
|
||||
EOF
|
||||
%suse_update_desktop_file -i %{name} Game StrategyGame
|
||||
"%{buildroot}/%{_datadir}/applications/%{name}.desktop"
|
||||
%endif
|
||||
|
||||
%clean
|
||||
#rm -rf "%{buildroot}"
|
||||
rm -rf "%{buildroot}"
|
||||
|
||||
%post
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="mandriva"
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
@@ -149,7 +126,7 @@ fi
|
||||
|
||||
%postun
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="mandriva"
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
@@ -163,39 +140,37 @@ fi
|
||||
%files
|
||||
%defattr(-, root, games, -)
|
||||
%dir %{_datadir}/doc/%{name}
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/lang
|
||||
%dir %{_datadir}/%{name}/data
|
||||
%dir %{_datadir}/%{name}/gm
|
||||
%dir %{_datadir}/%{name}/scripts
|
||||
%dir %{_datadir}/games/%{name}
|
||||
%dir %{_datadir}/games/%{name}/lang
|
||||
%dir %{_datadir}/games/%{name}/data
|
||||
%dir %{_datadir}/games/%{name}/gm
|
||||
%attr(755, root, games) %{_bindir}/%{name}
|
||||
%{_datadir}/doc/%{name}/*
|
||||
%{_datadir}/%{name}/lang/*
|
||||
%{_datadir}/%{name}/data/*
|
||||
%{_datadir}/%{name}/scripts/*
|
||||
%{_datadir}/applications/*%{name}.desktop
|
||||
%{_datadir}/games/%{name}/lang/*
|
||||
%{_datadir}/games/%{name}/data/*
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/icons/*
|
||||
%doc %{_mandir}/man6/%{name}.6.*
|
||||
%{_datadir}/icons/hicolor/*/apps/%{name}.png
|
||||
%doc %{_mandir}/man6/%{name}.6.gz
|
||||
|
||||
%changelog
|
||||
* Sat Sep 26 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.2
|
||||
- no subfolder games for datadir
|
||||
- cleanup: no post and postun anymore
|
||||
- Recommends: opengfx (for suse and mandriva)
|
||||
- add SUSE support
|
||||
|
||||
* Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Added libicu dependency
|
||||
|
||||
* Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Merged both versions of the spec file
|
||||
|
||||
* Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
|
||||
|
||||
- Rewrite spec file from scratch.
|
||||
|
||||
* Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Updated spec file
|
||||
|
||||
* Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
|
||||
|
||||
- Universal spec file
|
||||
|
||||
|
@@ -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.2" ; Define application version
|
||||
!define APPVERSIONINTERNAL "0.7.2.0" ; Define application version in X.X.X.X
|
||||
!define INSTALLERVERSION 65 ; 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
|
||||
|
||||
;---------------------------------
|
||||
@@ -80,6 +71,10 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
;-----------------------------------------------------
|
||||
; New custom page to show UNICODE and MSLU information
|
||||
Page custom ShowWarningsPage
|
||||
|
||||
!define MUI_FINISHPAGE_TITLE_3LINES
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Run ${APPNAMEANDVERSION} now!"
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\openttd.exe"
|
||||
@@ -110,23 +105,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\*.*
|
||||
@@ -147,6 +133,7 @@ Section "!OpenTTD" Section1
|
||||
; Delete old files from the main dir. they are now placed in data/ and lang/
|
||||
Delete "$INSTDIR\*.lng"
|
||||
Delete "$INSTDIR\*.grf"
|
||||
Delete "$INSTDIR\*.obg"
|
||||
Delete "$INSTDIR\sample.cat"
|
||||
Delete "$INSTDIR\ttd.exe"
|
||||
|
||||
@@ -176,84 +163,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 +194,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 +254,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 +272,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 +290,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 +320,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 +335,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 +361,34 @@ 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
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
; Custom page function to show notices for running OpenTTD (only for win32 systems)
|
||||
; We have extracted this custom page as Notice in the .onInit function
|
||||
Function ShowWarningsPage
|
||||
Call GetWindowsVersion
|
||||
Pop $R0
|
||||
; Don't show the UNICODE notice if the installer is run on Win9x systems
|
||||
StrCmp $R0 "win9x" 0 WinNT
|
||||
Abort
|
||||
WinNT:
|
||||
!insertmacro MUI_HEADER_TEXT "Installation Complete" "Important notices for OpenTTD usage."
|
||||
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "notice.ini" "Notice"
|
||||
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "Notice"
|
||||
ClearErrors
|
||||
!insertmacro MUI_INSTALLOPTIONS_SHOW
|
||||
FunctionEnd
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; Determine windows version, returns "win9x" if Win9x/Me or "winnt" on the stack
|
||||
Function GetWindowsVersion
|
||||
@@ -531,14 +448,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 +473,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:
|
30
os/win32/installer/notice.ini
Normal file
30
os/win32/installer/notice.ini
Normal file
@@ -0,0 +1,30 @@
|
||||
; Ini file generated by the HM NIS Edit IO designer.
|
||||
[Settings]
|
||||
NumFields=3
|
||||
CancelEnabled=0
|
||||
|
||||
[Field 1]
|
||||
Type=Groupbox
|
||||
Text=UNICODE support
|
||||
Left=8
|
||||
Right=292
|
||||
Top=0
|
||||
Bottom=75
|
||||
|
||||
[Field 2]
|
||||
Type=Label
|
||||
Text=This version of OpenTTD has support for UNICODE, allowing users to use non-ASCII character sets such as Russian or Japanese.\r\nSelecting such a language will result in an unusable and garbled interface. You will need to specify a font that has support for these characters in openttd.cfg, or alternatively use an appropiate grf file.\r\n\r\nFor more information please refer to the readme or the wiki.
|
||||
Left=13
|
||||
Right=284
|
||||
Top=9
|
||||
Bottom=65
|
||||
|
||||
[Field 3]
|
||||
Type=Link
|
||||
Text=OpenTTD wiki
|
||||
Left=238
|
||||
Right=284
|
||||
Top=64
|
||||
Bottom=72
|
||||
State=http://wiki.openttd.org/index.php/Unicode
|
||||
|
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.2"
|
||||
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.
|
||||
|
||||
@@ -160,7 +153,7 @@ load_lang_data() {
|
||||
Name=\"VCCustomBuildTool\"
|
||||
Description=\"Generating "$i" language file\"
|
||||
CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang "\$(InputPath)"
\"
|
||||
AdditionalDependencies=\"..\\src\\lang\\english.txt\"
|
||||
AdditionalDependencies=\"\"
|
||||
Outputs=\"..\\bin\\lang\\"$i".lng\"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
|
@@ -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")
|
||||
|
||||
@@ -210,7 +203,7 @@ Function load_lang_data(dir)
|
||||
& vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
|
||||
& vbCrLf & " Description=" & Chr(34) & "Generating " & file & " language file" & Chr(34) _
|
||||
& vbCrLf & " CommandLine=" & Chr(34) & "..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
" & Chr(34) _
|
||||
& vbCrLf & " AdditionalDependencies=" & Chr(34) & "..\src\lang\english.txt" & Chr(34) _
|
||||
& vbCrLf & " AdditionalDependencies=" & Chr(34) & Chr(34) _
|
||||
& vbCrLf & " Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _
|
||||
& vbCrLf & " />" _
|
||||
& vbCrLf & " </FileConfiguration>" _
|
||||
|
@@ -56,7 +56,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating afrikaans language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\afrikaans.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -71,7 +71,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating arabic_egypt language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -86,7 +86,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating brazilian_portuguese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -101,7 +101,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating bulgarian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\bulgarian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -116,7 +116,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating catalan language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\catalan.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -131,7 +131,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating croatian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\croatian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -146,7 +146,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating czech language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\czech.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -161,7 +161,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating danish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\danish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -176,7 +176,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating dutch language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\dutch.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -191,7 +191,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating english language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\english.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -206,7 +206,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating english_US language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\english_US.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -221,7 +221,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating esperanto language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\esperanto.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -236,7 +236,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating estonian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\estonian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -251,7 +251,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating finnish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\finnish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -266,7 +266,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating french language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\french.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -281,7 +281,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating galician language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\galician.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -296,26 +296,11 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating german language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\german.lng"
|
||||
/>
|
||||
</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"
|
||||
>
|
||||
@@ -326,7 +311,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hebrew language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hebrew.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -341,7 +326,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hungarian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hungarian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -356,7 +341,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating icelandic language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\icelandic.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -371,7 +356,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating indonesian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\indonesian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -386,7 +371,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating italian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\italian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -401,7 +386,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating japanese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\japanese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -416,7 +401,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating korean language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\korean.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -431,7 +416,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latvian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\latvian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -446,7 +431,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating lithuanian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\lithuanian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -461,7 +446,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating luxembourgish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\luxembourgish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -476,7 +461,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating norwegian_bokmal language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -491,11 +476,26 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating norwegian_nynorsk language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
||||
/>
|
||||
</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=""
|
||||
Outputs="..\bin\lang\piglatin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\polish.txt"
|
||||
>
|
||||
@@ -506,7 +506,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating polish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\polish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -521,7 +521,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating portuguese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\portuguese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -536,7 +536,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating romanian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\romanian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -551,7 +551,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating russian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\russian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -566,7 +566,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating serbian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\serbian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -581,7 +581,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating simplified_chinese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\simplified_chinese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -596,7 +596,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating slovak language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\slovak.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -611,7 +611,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating slovenian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\slovenian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -626,7 +626,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating spanish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\spanish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -641,7 +641,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating swedish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\swedish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -656,7 +656,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating traditional_chinese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\traditional_chinese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -671,7 +671,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating turkish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\turkish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -686,7 +686,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating ukrainian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\ukrainian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -701,7 +701,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating welsh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\welsh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
|
@@ -57,7 +57,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating afrikaans language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\afrikaans.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -72,7 +72,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating arabic_egypt language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -87,7 +87,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating brazilian_portuguese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -102,7 +102,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating bulgarian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\bulgarian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -117,7 +117,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating catalan language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\catalan.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -132,7 +132,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating croatian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\croatian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -147,7 +147,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating czech language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\czech.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -162,7 +162,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating danish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\danish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -177,7 +177,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating dutch language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\dutch.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -192,7 +192,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating english language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\english.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -207,7 +207,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating english_US language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\english_US.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -222,7 +222,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating esperanto language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\esperanto.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -237,7 +237,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating estonian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\estonian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -252,7 +252,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating finnish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\finnish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -267,7 +267,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating french language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\french.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -282,7 +282,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating galician language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\galician.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -297,26 +297,11 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating german language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\german.lng"
|
||||
/>
|
||||
</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"
|
||||
>
|
||||
@@ -327,7 +312,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hebrew language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hebrew.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -342,7 +327,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hungarian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hungarian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -357,7 +342,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating icelandic language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\icelandic.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -372,7 +357,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating indonesian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\indonesian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -387,7 +372,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating italian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\italian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -402,7 +387,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating japanese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\japanese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -417,7 +402,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating korean language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\korean.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -432,7 +417,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latvian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\latvian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -447,7 +432,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating lithuanian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\lithuanian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -462,7 +447,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating luxembourgish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\luxembourgish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -477,7 +462,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating norwegian_bokmal language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -492,11 +477,26 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating norwegian_nynorsk language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
||||
/>
|
||||
</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=""
|
||||
Outputs="..\bin\lang\piglatin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\polish.txt"
|
||||
>
|
||||
@@ -507,7 +507,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating polish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\polish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -522,7 +522,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating portuguese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\portuguese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -537,7 +537,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating romanian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\romanian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -552,7 +552,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating russian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\russian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -567,7 +567,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating serbian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\serbian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -582,7 +582,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating simplified_chinese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\simplified_chinese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -597,7 +597,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating slovak language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\slovak.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -612,7 +612,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating slovenian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\slovenian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -627,7 +627,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating spanish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\spanish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -642,7 +642,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating swedish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\swedish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -657,7 +657,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating traditional_chinese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\traditional_chinese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -672,7 +672,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating turkish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\turkish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -687,7 +687,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating ukrainian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\ukrainian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
@@ -702,7 +702,7 @@
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating welsh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\welsh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
|
@@ -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"
|
||||
>
|
||||
@@ -2647,10 +2563,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_cargolist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_changelog.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_company.hpp"
|
||||
>
|
||||
@@ -2719,10 +2631,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_industrytypelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_info_docs.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_list.hpp"
|
||||
>
|
||||
@@ -2847,10 +2755,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 +2763,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 +3255,10 @@
|
||||
RelativePath=".\..\src\misc\str.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc\strapi.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Network Core"
|
||||
@@ -3440,127 +3344,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 +3436,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 +3464,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"
|
||||
>
|
||||
@@ -2644,10 +2560,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_cargolist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_changelog.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_company.hpp"
|
||||
>
|
||||
@@ -2716,10 +2628,6 @@
|
||||
RelativePath=".\..\src\ai\api\ai_industrytypelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_info_docs.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\ai\api\ai_list.hpp"
|
||||
>
|
||||
@@ -2844,10 +2752,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 +2760,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 +3252,10 @@
|
||||
RelativePath=".\..\src\misc\str.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\misc\strapi.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Network Core"
|
||||
@@ -3437,127 +3341,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 +3433,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 +3461,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
|
||||
|
224
readme.txt
224
readme.txt
@@ -1,6 +1,6 @@
|
||||
OpenTTD README
|
||||
Last updated: 2009-12-24
|
||||
Release version: 1.0.0
|
||||
Last updated: 2009-08-01
|
||||
Release version: 0.7.2
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ Table of Contents:
|
||||
5.0) OpenTTD features
|
||||
6.0) Configuration File
|
||||
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
|
||||
|
||||
@@ -48,48 +48,31 @@ http://forum.openttd.org/
|
||||
|
||||
2.1) Reporting Bugs:
|
||||
---- ---------------
|
||||
First of all, check whether the bug is not already known. Do this by looking
|
||||
through the file called 'known-bugs.txt' which is distributed with OpenTTD
|
||||
like this readme.
|
||||
To report a bug, please create a Flyspray account and follow the bugs
|
||||
link from our homepage. Please make sure the bug is reproducible and
|
||||
still occurs in the latest daily build or the current SVN version. Also
|
||||
please look through the existing bug reports briefly to see whether the bug
|
||||
is not already known.
|
||||
|
||||
For tracking our bugs we are using a bug tracker called Flyspray. You can find
|
||||
the tracker at http://bugs.openttd.org/. Before actually reporting take a look
|
||||
through the already reported bugs there to see if the bug is already known.
|
||||
The 'known-bugs.txt' file might be a bit outdated at the moment you are
|
||||
reading it as only bugs known before the release are documented there. Also
|
||||
look through the recently closed bugs.
|
||||
The Flyspray project page URL is: http://bugs.openttd.org/
|
||||
|
||||
When you are sure it is not already reported you should:
|
||||
* Make sure you are running a recent version, i.e. run the latest stable or
|
||||
nightly based on where you found the bug.
|
||||
* 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
|
||||
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.
|
||||
* 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.
|
||||
|
||||
After you have done all that you can report the bug. Please include the
|
||||
following information in your bug report:
|
||||
* OpenTTD version (PLEASE test the latest SVN/nightly build)
|
||||
* Bug details, including instructions how to reproduce it
|
||||
* Platform (Win32, Linux, FreeBSD, ...) and compiler (including version) if
|
||||
you compiled OpenTTD yourself.
|
||||
* Attach a saved game *and* a screenshot if possible
|
||||
* If this bug only occurred recently please note the last version without
|
||||
the bug and the first version including the bug. That way we can fix it
|
||||
quicker by looking at the changes made.
|
||||
* Attach crash.dmp, crash.log and crash.sav. These files are usually created
|
||||
next to your openttd.cfg. The crash handler will tell you the location.
|
||||
Please include the following information in your bug report:
|
||||
- OpenTTD version (PLEASE test the latest SVN/nightly build)
|
||||
- Bug details, including instructions how to reproduce it
|
||||
- Platform and compiler (Win32, Linux, FreeBSD, ...)
|
||||
- Attach a saved game *and* a screenshot if possible
|
||||
- If this bug only occurred recently please note the last
|
||||
version without the bug and the first version including
|
||||
the bug. That way we can fix it quicker by looking at the
|
||||
changes made.
|
||||
- Attach crash.dmp, crash.log and crash.sav from the data
|
||||
directory if they exist.
|
||||
|
||||
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
|
||||
@@ -175,73 +158,41 @@ If you want savegames and screenshots in the directory where the OpenTTD binary
|
||||
resides, simply have your config file in that location. But if you remove this
|
||||
config file, savegames will still be in this directory (see notes in section 4.2)
|
||||
|
||||
OpenTTD comes without AIs, so if you want to play with AIs you have to download
|
||||
them. The easiest way is via the "Check Online Content" button in the main menu.
|
||||
You can select some AIs that you think are compatible with your playing style.
|
||||
Another way is manually downloading the AIs from the forum although then you
|
||||
need to make sure that you install all the required AI libraries too; they get
|
||||
automatically selected (and downloaded) if you get the AIs via the "Check
|
||||
Online Content". If you do not have an AI but have configured OpenTTD to start
|
||||
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
|
||||
AI needs libraries you'll have to download those too and put them in the
|
||||
ai/library/ directory. All AIs and AI Libraries that have been uploaded to
|
||||
the content download system can be found at http://noai.openttd.org/downloads/
|
||||
The AIs and libraries can be found their in the form of .tar.gz packages.
|
||||
OpenTTD can read inside tar files but it does not extract .tar.gz files by
|
||||
itself.
|
||||
To figure out which libraries you need for an AI you have to start the AI and
|
||||
wait for an error message to pop up. The error message will tell you
|
||||
"couldn't find library 'lib-name'". Download that library and try again.
|
||||
If you want AIs use the in-game content downloader to download some or download
|
||||
some from the internet and place them in the ai/ directory.
|
||||
|
||||
4.2) OpenTTD directories
|
||||
---- -------------------------------
|
||||
@@ -263,17 +214,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 +272,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 +281,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,20 +311,26 @@ 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.
|
||||
Please read the Makefile for more information.
|
||||
|
||||
Solaris, FreeBSD, OpenBSD:
|
||||
Use "gmake", but do a "./configure" before the first build.
|
||||
Solaris 10:
|
||||
You need g++ (version 3 or higher), together with SDL. Installation of
|
||||
libpng and zlib is recommended. For the first build it is required
|
||||
to execute "bash configure" first. Note that ./configure does not work
|
||||
yet. It is likely that you don't have a strip binary, so use the
|
||||
--disable-strip option in that case. Fontconfig (>2.3.0) and freetype
|
||||
are optional. "make run" will then run the program.
|
||||
|
||||
Linux/Unix:
|
||||
Unix:
|
||||
OpenTTD can be built with GNU "make". On non-GNU systems it's called "gmake".
|
||||
However, for the first build one has to do a "./configure" first.
|
||||
Note that you need SDL-devel 1.2.5 (or higher) to compile OpenTTD.
|
||||
|
||||
MacOS X:
|
||||
Use "make" or Xcode (which will then call make for you)
|
||||
@@ -385,6 +342,15 @@ MacOS X:
|
||||
BeOS:
|
||||
Use "make", but do a "./configure" before the first build.
|
||||
|
||||
FreeBSD:
|
||||
You need the port devel/sdl12 for a non-dedicated build.
|
||||
graphics/png is optional for screenshots in the PNG format.
|
||||
Use "gmake", but do a "./configure" before the first build.
|
||||
|
||||
OpenBSD:
|
||||
Use "gmake", but do a "./configure" before the first build.
|
||||
Note that you need the port devel/sdl to compile OpenTTD.
|
||||
|
||||
MorphOS:
|
||||
Use "make". However, for the first build one has to do a "./configure" first.
|
||||
Note that you need the MorphOS SDK, latest libnix updates (else C++ parts of
|
||||
@@ -405,8 +371,6 @@ DOS:
|
||||
will be generated that does not need cwsdpmi.exe by adding the cswdstub.exe
|
||||
to the created OpenTTD binary.
|
||||
|
||||
7.1) Required/optional libraries:
|
||||
---- -------------------
|
||||
The following libraries are used by OpenTTD for:
|
||||
- libSDL/liballegro: hardware access (video, sound, mouse)
|
||||
- zlib: (de)compressing of savegames
|
||||
@@ -415,11 +379,6 @@ The following libraries are used by OpenTTD for:
|
||||
- libfontconfig: searching for fonts, resolving font names to actual fonts
|
||||
- libicu: handling of right-to-left scripts (e.g. Arabic and Persian)
|
||||
|
||||
OpenTTD does not require any of the libraries to be present, but without
|
||||
zlib you cannot open most savegames or use the content downloading system.
|
||||
Without libSDL/liballegro on non-Windows and non-MacOS X machines you have
|
||||
no graphical user interface; you would be building a dedicated server.
|
||||
|
||||
8.0) Translating:
|
||||
---- -------------------
|
||||
See http://www.openttd.org/development for up-to-date information.
|
||||
@@ -431,11 +390,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 +416,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 +453,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 +462,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.
|
||||
@@ -507,7 +470,6 @@ put them in the data/ folder and you're set to go.
|
||||
X.X) Credits:
|
||||
---- --------
|
||||
The OpenTTD team (in alphabetical order):
|
||||
Albert Hofkamp (Alberth) - GUI expert
|
||||
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
|
||||
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
|
||||
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
|
||||
@@ -518,14 +480,14 @@ The OpenTTD team (in alphabetical order):
|
||||
Owen Rudge (orudge) - Forum host, OS/2 port
|
||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
||||
Remko Bijker (Rubidium) - Lead coder and way more
|
||||
Zdeněk Sojka (SmatZ) - Bug finder and fixer
|
||||
Zdenek Sojka (SmatZ) - Bug finder and fixer
|
||||
Thijs Marinussen (Yexo) - AI Framework
|
||||
|
||||
Inactive Developers:
|
||||
Tamás Faragó (Darkvater) - Ex-Lead coder
|
||||
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
|
||||
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple
|
||||
Attila Bán (MiHaMiX) - WebTranslator 1 and 2
|
||||
Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host
|
||||
Christoph Mallon (Tron) - Programmer, code correctness police
|
||||
|
||||
Retired Developers:
|
||||
@@ -533,12 +495,12 @@ Retired Developers:
|
||||
Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)
|
||||
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)
|
||||
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
|
||||
Patric Stout (TrueLight) - Programmer (0.3 - pre0.7), sys op (active)
|
||||
Patric Stout (TrueLight) - Programmer, webhoster (0.3 - pre0.7)
|
||||
|
||||
Thanks to:
|
||||
Josef Drexler - For his great work on TTDPatch.
|
||||
Marcin Grzegorczyk - For his TTDPatch work and documentation of TTD internals and graphics (signals and track foundations)
|
||||
Petr Baudiš (pasky) - Many patches, newgrf support, etc.
|
||||
Petr Baudis (pasky) - Many patches, newgrf support, etc.
|
||||
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
||||
Stefan Meißner (sign_de) - For his work on the console
|
||||
Mike Ragsdale - OpenTTD installer
|
||||
@@ -546,8 +508,6 @@ Thanks to:
|
||||
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
|
||||
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
|
||||
Alberto Demichelis - Squirrel scripting language
|
||||
Markus F.X.J. Oberhumer - MiniLZO for loading old savegames
|
||||
L. Peter Deutsch - MD5 implementation
|
||||
Michael Blunck - For revolutionizing TTD with awesome graphics
|
||||
George - Canal graphics
|
||||
David Dallaston (Pikka) - Tram tracks
|
||||
|
203
source.list
203
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,13 +590,10 @@ 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
|
||||
ai/api/ai_company.hpp
|
||||
ai/api/ai_controller.hpp
|
||||
ai/api/ai_date.hpp
|
||||
@@ -617,7 +611,6 @@ ai/api/ai_industry.hpp
|
||||
ai/api/ai_industrylist.hpp
|
||||
ai/api/ai_industrytype.hpp
|
||||
ai/api/ai_industrytypelist.hpp
|
||||
ai/api/ai_info_docs.hpp
|
||||
ai/api/ai_list.hpp
|
||||
ai/api/ai_log.hpp
|
||||
ai/api/ai_map.hpp
|
||||
@@ -650,10 +643,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 +779,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 +803,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 +841,7 @@ video/null_v.cpp
|
||||
#end
|
||||
|
||||
# Music
|
||||
music/null_m.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if ALLEGRO
|
||||
@@ -873,10 +850,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 +902,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
|
||||
|
36
src/3rdparty/squirrel/include/squirrel.h
vendored
36
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);
|
||||
@@ -311,10 +286,8 @@ SQUIRREL_API void sq_setprintfunc(HSQUIRRELVM v, SQPRINTFUNCTION printfunc);
|
||||
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 +337,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;
|
||||
}
|
||||
|
||||
|
19
src/3rdparty/squirrel/squirrel/sqapi.cpp
vendored
19
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);
|
||||
@@ -1017,14 +1010,6 @@ bool sq_resumecatch(HSQUIRRELVM v, int suspend)
|
||||
return v->Execute(_null_, v->_top, -1, -1, ret, SQTrue, SQVM::ET_RESUME_OPENTTD);
|
||||
}
|
||||
|
||||
bool sq_resumeerror(HSQUIRRELVM v)
|
||||
{
|
||||
SQObjectPtr ret;
|
||||
v->_can_suspend = true;
|
||||
v->_ops_till_suspend = 1;
|
||||
return v->Execute(_null_, v->_top, -1, -1, ret, SQTrue, SQVM::ET_RESUME_THROW_VM);
|
||||
}
|
||||
|
||||
void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook)
|
||||
{
|
||||
if(sq_gettop(v) >= 1){
|
||||
|
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) {
|
||||
|
12
src/3rdparty/squirrel/squirrel/sqclass.h
vendored
12
src/3rdparty/squirrel/squirrel/sqclass.h
vendored
@@ -128,17 +128,7 @@ public:
|
||||
}
|
||||
void Release() {
|
||||
_uiRef++;
|
||||
try {
|
||||
if (_hook) { _hook(_userpointer,0);}
|
||||
} catch (...) {
|
||||
_uiRef--;
|
||||
if (_uiRef == 0) {
|
||||
SQInteger size = _memsize;
|
||||
this->~SQInstance();
|
||||
SQ_FREE(this, size);
|
||||
}
|
||||
throw;
|
||||
}
|
||||
if (_hook) { _hook(_userpointer,0);}
|
||||
_uiRef--;
|
||||
if(_uiRef > 0) return;
|
||||
SQInteger size = _memsize;
|
||||
|
17
src/3rdparty/squirrel/squirrel/sqcompiler.cpp
vendored
17
src/3rdparty/squirrel/squirrel/sqcompiler.cpp
vendored
@@ -1110,23 +1110,6 @@ public:
|
||||
case TK_STRING_LITERAL:
|
||||
val = _fs->CreateString(_lex._svalue,_lex._longstr.size()-1);
|
||||
break;
|
||||
case '-':
|
||||
Lex();
|
||||
switch(_token)
|
||||
{
|
||||
case TK_INTEGER:
|
||||
val._type = OT_INTEGER;
|
||||
val._unVal.nInteger = -_lex._nvalue;
|
||||
break;
|
||||
case TK_FLOAT:
|
||||
val._type = OT_FLOAT;
|
||||
val._unVal.fFloat = -_lex._fvalue;
|
||||
break;
|
||||
default:
|
||||
Error(_SC("scalar expected : integer,float"));
|
||||
val._type = OT_NULL; // Silent compile-warning
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Error(_SC("scalar expected : integer,float or string"));
|
||||
val._type = OT_NULL; // Silent compile-warning
|
||||
|
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;
|
||||
}
|
||||
|
2
src/3rdparty/squirrel/squirrel/squtils.h
vendored
2
src/3rdparty/squirrel/squirrel/squtils.h
vendored
@@ -88,7 +88,7 @@ public:
|
||||
}
|
||||
SQUnsignedInteger capacity() { return _allocated; }
|
||||
inline T &back() const { return _vals[_size - 1]; }
|
||||
inline T& operator[](SQUnsignedInteger pos) const{ assert(pos < _allocated); return _vals[pos]; }
|
||||
inline T& operator[](SQUnsignedInteger pos) const{ return _vals[pos]; }
|
||||
T* _vals;
|
||||
private:
|
||||
void _realloc(SQUnsignedInteger newsize)
|
||||
|
75
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
75
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;
|
||||
@@ -65,9 +50,7 @@ bool SQVM::ARITH_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,
|
||||
res = i1 / i2;
|
||||
break;
|
||||
case '*': res = i1 * i2; break;
|
||||
case '%': if(i2 == 0) { Raise_Error(_SC("modulo by zero")); return false; }
|
||||
res = i1 % i2;
|
||||
break;
|
||||
case '%': res = i1 % i2; break;
|
||||
default: res = 0xDEADBEEF;
|
||||
}
|
||||
trg = res;
|
||||
@@ -305,10 +288,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)
|
||||
@@ -336,10 +321,6 @@ bool SQVM::StartCall(SQClosure *closure,SQInteger target,SQInteger args,SQIntege
|
||||
SQInteger ndef = func->_ndefaultparams;
|
||||
if(ndef && nargs < paramssize) {
|
||||
SQInteger diff = paramssize - nargs;
|
||||
if (diff > ndef) {
|
||||
Raise_Error(_SC("wrong number of parameters"));
|
||||
return false;
|
||||
}
|
||||
for(SQInteger n = ndef - diff; n < ndef; n++) {
|
||||
_stack._vals[stackbase + (nargs++)] = closure->_defaultparams[n];
|
||||
}
|
||||
@@ -459,7 +440,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,34 +672,20 @@ 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:
|
||||
case ET_RESUME_THROW_VM:
|
||||
traps = _suspended_traps;
|
||||
ci->_root = _suspended_root;
|
||||
ci->_vargs = _suspend_varargs;
|
||||
_suspended = SQFalse;
|
||||
if(et == ET_RESUME_THROW_VM) { SQ_THROW(); }
|
||||
break;
|
||||
case ET_RESUME_OPENTTD:
|
||||
traps = _suspended_traps;
|
||||
@@ -749,7 +716,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);
|
||||
@@ -774,8 +741,9 @@ common_call:
|
||||
_GUARD(gen->Yield(this));
|
||||
Return(1, ct_target, clo);
|
||||
STK(ct_target) = gen;
|
||||
while (last_top >= _top) _stack._vals[last_top--].Null();
|
||||
continue;
|
||||
}
|
||||
CLEARSTACK(last_top);
|
||||
}
|
||||
continue;
|
||||
case OT_NATIVECLOSURE: {
|
||||
@@ -1054,7 +1022,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 +1050,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 +1062,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;
|
||||
@@ -1165,8 +1135,6 @@ bool SQVM::CallNative(SQNativeClosure *nclosure,SQInteger nargs,SQInteger stackb
|
||||
}
|
||||
|
||||
|
||||
/* Store the call stack size, so we can restore that */
|
||||
SQInteger cstksize = _callsstacksize;
|
||||
SQInteger ret;
|
||||
try {
|
||||
SQBool can_suspend = this->_can_suspend;
|
||||
@@ -1177,7 +1145,6 @@ bool SQVM::CallNative(SQNativeClosure *nclosure,SQInteger nargs,SQInteger stackb
|
||||
_nnativecalls--;
|
||||
suspend = false;
|
||||
|
||||
_callsstacksize = cstksize;
|
||||
_stackbase = oldstackbase;
|
||||
_top = oldtop;
|
||||
|
||||
@@ -1187,8 +1154,6 @@ bool SQVM::CallNative(SQNativeClosure *nclosure,SQInteger nargs,SQInteger stackb
|
||||
throw;
|
||||
}
|
||||
|
||||
assert(cstksize == _callsstacksize);
|
||||
|
||||
_nnativecalls--;
|
||||
suspend = false;
|
||||
if( ret == SQ_SUSPEND_FLAG) suspend = true;
|
||||
@@ -1531,19 +1496,7 @@ void SQVM::Pop(SQInteger n) {
|
||||
}
|
||||
}
|
||||
|
||||
void SQVM::Push(const SQObjectPtr &o) {
|
||||
/* Normally the stack shouldn't get this full, sometimes it might. As of now
|
||||
* all cases have been bugs in "our" (OpenTTD) code. Trigger an assert for
|
||||
* all debug builds and for the release builds just increase the stack size.
|
||||
* This way getting a false positive isn't that bad (releases work fine) and
|
||||
* if there is something fishy it can be caught in RCs/nightlies. */
|
||||
#ifdef NDEBUG
|
||||
if (_top >= (int)_stack.capacity()) _stack.resize(2 * _stack.capacity());
|
||||
#else
|
||||
assert(_top < (int)_stack.capacity());
|
||||
#endif
|
||||
_stack[_top++] = o;
|
||||
}
|
||||
void SQVM::Push(const SQObjectPtr &o) { _stack[_top++] = o; }
|
||||
SQObjectPtr &SQVM::Top() { return _stack[_top-1]; }
|
||||
SQObjectPtr &SQVM::PopGet() { return _stack[--_top]; }
|
||||
SQObjectPtr &SQVM::GetUp(SQInteger n) { return _stack[_top+n]; }
|
||||
|
3
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
3
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
@@ -53,7 +53,7 @@ struct SQVM : public CHAINABLE_OBJ
|
||||
|
||||
typedef sqvector<CallInfo> CallInfoVec;
|
||||
public:
|
||||
enum ExecutionType { ET_CALL, ET_RESUME_GENERATOR, ET_RESUME_VM, ET_RESUME_THROW_VM, ET_RESUME_OPENTTD };
|
||||
enum ExecutionType { ET_CALL, ET_RESUME_GENERATOR, ET_RESUME_VM, ET_RESUME_OPENTTD };
|
||||
SQVM(SQSharedState *ss);
|
||||
~SQVM();
|
||||
bool Init(SQVM *friendvm, SQInteger stacksize);
|
||||
@@ -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,24 +162,12 @@ 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)
|
||||
{
|
||||
}
|
||||
|
||||
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 +176,6 @@ AIInfo::~AIInfo()
|
||||
}
|
||||
}
|
||||
this->config_list.clear();
|
||||
free((void*)this->api_version);
|
||||
}
|
||||
|
||||
bool AIInfo::CanLoadFromVersion(int version) const
|
||||
@@ -179,13 +202,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 +239,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 +372,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,22 +36,93 @@ 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), 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 {
|
||||
public:
|
||||
static const char *GetClassName() { return "AIInfo"; }
|
||||
|
||||
AIInfo();
|
||||
~AIInfo();
|
||||
|
||||
/**
|
||||
@@ -67,11 +131,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 +166,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);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user