mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-17 19:49:10 +00:00
Compare commits
65 Commits
0.7.5-RC1
...
release/0.
Author | SHA1 | Date | |
---|---|---|---|
4fc66185ff | |||
|
b89e90e0c0 | ||
|
ad4dcad00a | ||
|
2f22fd155b | ||
|
fde71ec047 | ||
|
23cfc3bec7 | ||
|
68fe4d71e1 | ||
456b479a21 | |||
|
cbc69f8067 | ||
|
d53ec0c4cd | ||
|
bbaaaaa506 | ||
|
290b0c1099 | ||
|
d86dc41a0a | ||
|
52154a3f64 | ||
|
09cf61b466 | ||
|
c9d52ddeff | ||
|
0222967c41 | ||
|
16492fe7b1 | ||
|
5f7f86e3be | ||
|
9878c58727 | ||
|
39f8e1085f | ||
|
467de8942b | ||
|
6054758c1d | ||
|
22cda2f1b8 | ||
|
a0f6275c3a | ||
|
c29c7f7932 | ||
|
6097389437 | ||
|
bafea078f2 | ||
|
5c97e3307c | ||
|
3cd7a5959f | ||
|
7da596b92d | ||
|
fbbd7bef6d | ||
|
b95eb99c55 | ||
|
a68eee5f31 | ||
|
4f76d929c6 | ||
|
94ae5be42a | ||
|
808f15e43f | ||
|
71144d1a98 | ||
|
44a476c946 | ||
|
76a2221dbb | ||
|
966c2fe4b9 | ||
|
f4d1d082ab | ||
|
391127bfaf | ||
|
ee7bad769f | ||
|
9e966f9cd0 | ||
|
942a752e2a | ||
|
9e03a7b23a | ||
|
e114133d18 | ||
|
9241c4649d | ||
|
f126c2e66f | ||
|
c973bd87ce | ||
|
4cb6a89e81 | ||
|
7bf1737a66 | ||
|
fb0afc9cca | ||
|
9f65c1b8f0 | ||
|
1a495b0b1c | ||
|
5294075ad4 | ||
|
ed4ae53e8a | ||
|
c53f9fc2a2 | ||
|
cbd426059e | ||
|
624549464f | ||
|
1f9dce4697 | ||
|
185c30b6bf | ||
|
8df7a53652 | ||
|
9d47454105 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,5 @@
|
|||||||
Makefile*
|
Makefile*
|
||||||
bin/*
|
bin/*
|
||||||
bundle/*
|
|
||||||
!bin/data/chars.grf
|
!bin/data/chars.grf
|
||||||
!bin/data/openttdd.grf
|
!bin/data/openttdd.grf
|
||||||
!bin/data/openttdw.grf
|
!bin/data/openttdw.grf
|
||||||
|
11
.hgignore
11
.hgignore
@@ -1,11 +0,0 @@
|
|||||||
bin/lang/*
|
|
||||||
bin/opentd*
|
|
||||||
bundle/*
|
|
||||||
config.cache.*
|
|
||||||
config.log
|
|
||||||
config.pwd
|
|
||||||
Makefile
|
|
||||||
Makefile.am
|
|
||||||
media/openttd.desktop*
|
|
||||||
objs/*
|
|
||||||
src/rev.cpp
|
|
4
Doxyfile
4
Doxyfile
@@ -1,7 +1,7 @@
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
PROJECT_NAME = OpenTTD
|
PROJECT_NAME = openttd
|
||||||
OUTPUT_DIRECTORY = docs/source/
|
OUTPUT_DIRECTORY = docs/source/
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
@@ -76,7 +76,7 @@ WARN_LOGFILE =
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = ./src/
|
INPUT = ./
|
||||||
FILE_PATTERNS = *.c \
|
FILE_PATTERNS = *.c \
|
||||||
*.cc \
|
*.cc \
|
||||||
*.cxx \
|
*.cxx \
|
||||||
|
@@ -8,7 +8,7 @@ REV := $(REVISION)
|
|||||||
else
|
else
|
||||||
# Detect the revision
|
# Detect the revision
|
||||||
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
||||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
REV := $(shell echo "$(VERSIONS)" | cut -f 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Make sure we have something in REV
|
# Make sure we have something in REV
|
||||||
@@ -17,7 +17,7 @@ REV := norev000
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef BUNDLE_NAME
|
ifndef BUNDLE_NAME
|
||||||
BUNDLE_NAME = openttd-custom-$(REV)-$(OS)
|
BUNDLE_NAME = OTTD-$(OS)-custom-$(REV)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
|
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
|
||||||
@@ -33,11 +33,12 @@ endif
|
|||||||
|
|
||||||
bundle: all
|
bundle: all
|
||||||
@echo '[BUNDLE] Constructing bundle'
|
@echo '[BUNDLE] Constructing bundle'
|
||||||
$(Q)rm -rf "$(BUNDLE_DIR)"
|
$(Q)rm -rf "${BUNDLE_DIR}"
|
||||||
$(Q)mkdir -p "$(BUNDLE_DIR)"
|
$(Q)mkdir -p "${BUNDLE_DIR}"
|
||||||
$(Q)mkdir -p "$(BUNDLE_DIR)/docs"
|
$(Q)mkdir -p "$(BUNDLE_DIR)/docs"
|
||||||
|
$(Q)mkdir -p "$(BUNDLE_DIR)/scenario"
|
||||||
|
$(Q)mkdir -p "$(BUNDLE_DIR)/scenario/heightmap"
|
||||||
$(Q)mkdir -p "$(BUNDLE_DIR)/media"
|
$(Q)mkdir -p "$(BUNDLE_DIR)/media"
|
||||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scripts"
|
|
||||||
$(Q)mkdir -p "$(TTD_DIR)"
|
$(Q)mkdir -p "$(TTD_DIR)"
|
||||||
$(Q)mkdir -p "$(DATA_DIR)"
|
$(Q)mkdir -p "$(DATA_DIR)"
|
||||||
$(Q)mkdir -p "$(LANG_DIR)"
|
$(Q)mkdir -p "$(LANG_DIR)"
|
||||||
@@ -45,42 +46,38 @@ ifdef OSXAPP
|
|||||||
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
|
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
|
||||||
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
|
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
|
||||||
$(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns"
|
$(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns"
|
||||||
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(REV)"
|
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "${BUNDLE_DIR}/$(OSXAPP)" "$(REV)"
|
||||||
$(Q)cp "$(ROOT_DIR)/docs/OSX_install_instructions.txt" "$(BUNDLE_DIR)/docs/"
|
$(Q)cp "$(ROOT_DIR)/docs/OSX_install_instructions.txt" "$(BUNDLE_DIR)/docs/"
|
||||||
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)"
|
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)"
|
||||||
endif
|
endif
|
||||||
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
|
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
|
||||||
$(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/"
|
$(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/"
|
||||||
$(Q)cp "$(BIN_DIR)/data/"*.obg "$(DATA_DIR)/"
|
|
||||||
$(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/"
|
$(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/"
|
||||||
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
|
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
|
||||||
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
|
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
|
||||||
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
|
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
|
||||||
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
|
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
|
||||||
$(Q)cp "$(ROOT_DIR)/docs/obg_format.txt" "$(BUNDLE_DIR)/docs/"
|
|
||||||
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
|
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
|
||||||
$(Q)cp "$(ROOT_DIR)/docs/32bpp.txt" "$(BUNDLE_DIR)/docs/"
|
$(Q)cp "$(ROOT_DIR)/docs/32bpp.txt" "$(BUNDLE_DIR)/docs/"
|
||||||
$(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/"
|
$(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/"
|
||||||
ifdef MAN_DIR
|
ifdef MAN_DIR
|
||||||
$(Q)mkdir -p "$(BUNDLE_DIR)/man/"
|
$(Q)mkdir -p "$(BUNDLE_DIR)/man/"
|
||||||
$(Q)cp "$(ROOT_DIR)/docs/openttd.6" "$(BUNDLE_DIR)/man/"
|
$(Q)cp "$(ROOT_DIR)/docs/openttd.6" "$(BUNDLE_DIR)/man/"
|
||||||
$(Q)gzip -9 "$(BUNDLE_DIR)/man/openttd.6"
|
$(Q)gzip "$(BUNDLE_DIR)/man/openttd.6"
|
||||||
endif
|
endif
|
||||||
$(Q)cp "$(ROOT_DIR)/media/openttd.32.xpm" "$(BUNDLE_DIR)/media/"
|
$(Q)cp "$(ROOT_DIR)/media/openttd.32.xpm" "$(BUNDLE_DIR)/media/"
|
||||||
$(Q)cp "$(ROOT_DIR)/media/openttd."*.png "$(BUNDLE_DIR)/media/"
|
$(Q)cp "$(ROOT_DIR)/media/openttd."*.png "$(BUNDLE_DIR)/media/"
|
||||||
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
|
|
||||||
ifdef MENU_DIR
|
ifdef MENU_DIR
|
||||||
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
|
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
|
||||||
$(Q)cat "$(ROOT_DIR)/media/openttd.desktop" | sed s/=openttd/=$(BINARY_NAME)/g > "$(ROOT_DIR)/media/openttd.desktop.install"
|
endif
|
||||||
|
ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/\"*.scn 2> /dev/null`"; then echo 1; fi), 1)
|
||||||
|
$(Q)cp "$(BIN_DIR)/scenario/"*.scn "$(BUNDLE_DIR)/scenario/"
|
||||||
|
endif
|
||||||
|
ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/heightmaps/\"* 2>/dev/null`"; then echo 1; fi), 1)
|
||||||
|
$(Q)cp "$(BIN_DIR)/scenario/heightmaps/"* "$(BUNDLE_DIR)/scenario/heightmap/"
|
||||||
endif
|
endif
|
||||||
ifeq ($(TTD), openttd.exe)
|
ifeq ($(TTD), openttd.exe)
|
||||||
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
|
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
|
||||||
ifeq ($(OS), DOS)
|
|
||||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
|
|
||||||
ifndef STRIP
|
|
||||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.exe" "$(TTD_DIR)/"
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
### Packing the current bundle into several compressed file formats ###
|
### Packing the current bundle into several compressed file formats ###
|
||||||
@@ -141,43 +138,36 @@ install: bundle
|
|||||||
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
|
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
|
||||||
$(Q)install -d "$(INSTALL_DATA_DIR)/data"
|
$(Q)install -d "$(INSTALL_DATA_DIR)/data"
|
||||||
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
||||||
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
|
|
||||||
$(Q)install -d "$(INSTALL_DOC_DIR)"
|
$(Q)install -d "$(INSTALL_DOC_DIR)"
|
||||||
ifeq ($(TTD), openttd.exe)
|
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)"
|
||||||
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}.exe"
|
|
||||||
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)/lang/"* "$(INSTALL_DATA_DIR)/lang"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data"
|
||||||
$(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)/docs/"* "$(INSTALL_DOC_DIR)"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/"*.txt "$(INSTALL_DOC_DIR)"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.xpm" "$(INSTALL_ICON_DIR)"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/COPYING" "$(INSTALL_DOC_DIR)"
|
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.xpm" "$(INSTALL_ICON_DIR)/${BINARY_NAME}.32.xpm"
|
|
||||||
ifdef ICON_THEME_DIR
|
ifdef ICON_THEME_DIR
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/16x16/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/16x16/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.16.png" "$(INSTALL_ICON_THEME_DIR)/16x16/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.16.png" "$(INSTALL_ICON_THEME_DIR)/16x16/apps"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/32x32/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/32x32/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.png" "$(INSTALL_ICON_THEME_DIR)/32x32/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.png" "$(INSTALL_ICON_THEME_DIR)/32x32/apps"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/48x48/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/48x48/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.48.png" "$(INSTALL_ICON_THEME_DIR)/48x48/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.48.png" "$(INSTALL_ICON_THEME_DIR)/48x48/apps"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/64x64/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/64x64/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.64.png" "$(INSTALL_ICON_THEME_DIR)/64x64/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.64.png" "$(INSTALL_ICON_THEME_DIR)/64x64/apps"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/128x128/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/128x128/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.128.png" "$(INSTALL_ICON_THEME_DIR)/128x128/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.128.png" "$(INSTALL_ICON_THEME_DIR)/128x128/apps"
|
||||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/256x256/apps"
|
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/256x256/apps"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.256.png" "$(INSTALL_ICON_THEME_DIR)/256x256/apps/${BINARY_NAME}.png"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.256.png" "$(INSTALL_ICON_THEME_DIR)/256x256/apps"
|
||||||
else
|
else
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/"*.png "$(INSTALL_ICON_DIR)"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/"*.png "$(INSTALL_ICON_DIR)"
|
||||||
endif
|
endif
|
||||||
ifdef MAN_DIR
|
ifdef MAN_DIR
|
||||||
$(Q)install -d "$(INSTALL_MAN_DIR)"
|
$(Q)install -d "$(INSTALL_MAN_DIR)"
|
||||||
$(Q)install -m 644 "$(BUNDLE_DIR)/man/openttd.6.gz" "$(INSTALL_MAN_DIR)/${BINARY_NAME}.6.gz"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/man/openttd.6.gz" "$(INSTALL_MAN_DIR)"
|
||||||
endif
|
endif
|
||||||
ifdef MENU_DIR
|
ifdef MENU_DIR
|
||||||
$(Q)install -d "$(INSTALL_MENU_DIR)"
|
$(Q)install -d "$(INSTALL_MENU_DIR)"
|
||||||
$(Q)install -m 644 "$(ROOT_DIR)/media/openttd.desktop.install" "$(INSTALL_MENU_DIR)/${BINARY_NAME}.desktop"
|
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.desktop" "$(INSTALL_MENU_DIR)"
|
||||||
endif
|
endif
|
||||||
|
$(Q)cp -R "$(BUNDLE_DIR)/scenario" "$(INSTALL_DATA_DIR)"
|
||||||
endif # OSXAPP
|
endif # OSXAPP
|
||||||
|
@@ -28,8 +28,6 @@ INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
|
|||||||
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
|
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
|
||||||
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
|
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
|
||||||
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
|
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
|
||||||
BINARY_NAME = !!BINARY_NAME!!
|
|
||||||
STRIP = !!STRIP!!
|
|
||||||
TTD = !!TTD!!
|
TTD = !!TTD!!
|
||||||
TTDS = $(SRC_DIRS:%=%/$(TTD))
|
TTDS = $(SRC_DIRS:%=%/$(TTD))
|
||||||
OS = !!OS!!
|
OS = !!OS!!
|
||||||
@@ -93,7 +91,7 @@ ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
|
|||||||
@echo " Going to reconfigure with last known settings..."
|
@echo " Going to reconfigure with last known settings..."
|
||||||
@echo "----------------"
|
@echo "----------------"
|
||||||
# Make sure we don't lock config.cache
|
# Make sure we don't lock config.cache
|
||||||
@$(shell cat config.cache | sed 's@\\ @\\\\ @g') || exit 1
|
@$(shell cat config.cache | sed 's/\\ /\\\\ /g') || exit 1
|
||||||
@echo "----------------"
|
@echo "----------------"
|
||||||
@echo "Reconfig done. Please re-execute make."
|
@echo "Reconfig done. Please re-execute make."
|
||||||
@echo "----------------"
|
@echo "----------------"
|
||||||
@@ -141,9 +139,6 @@ run-gdb: all
|
|||||||
run-prof: all
|
run-prof: all
|
||||||
$(Q)cd !!BIN_DIR!! && ./!!TTD!! $(OPENTTD_ARGS) && gprof !!TTD!! | less
|
$(Q)cd !!BIN_DIR!! && ./!!TTD!! $(OPENTTD_ARGS) && gprof !!TTD!! | less
|
||||||
|
|
||||||
regression: all
|
|
||||||
$(Q)cd !!BIN_DIR!! && sh ai/regression/run.sh
|
|
||||||
|
|
||||||
%.o:
|
%.o:
|
||||||
@for dir in $(SRC_DIRS); do \
|
@for dir in $(SRC_DIRS); do \
|
||||||
$(MAKE) -C $$dir $(@:src/%=%); \
|
$(MAKE) -C $$dir $(@:src/%=%); \
|
||||||
|
@@ -19,8 +19,8 @@ BIN_DIR = "$(ROOT_DIR)/bin"
|
|||||||
SRC_DIR = "$(ROOT_DIR)/src"
|
SRC_DIR = "$(ROOT_DIR)/src"
|
||||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||||
TTD = openttd.exe
|
TTD = "openttd.exe"
|
||||||
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
|
TARGET := $(shell echo $(PLATFORM) | sed "s/win64/x64/;s/win32/Win32/")
|
||||||
|
|
||||||
all:
|
all:
|
||||||
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
|
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
|
||||||
|
@@ -4,6 +4,7 @@ CC_BUILD = !!CC_BUILD!!
|
|||||||
CXX_BUILD = !!CXX_BUILD!!
|
CXX_BUILD = !!CXX_BUILD!!
|
||||||
WINDRES = !!WINDRES!!
|
WINDRES = !!WINDRES!!
|
||||||
STRIP = !!STRIP!!
|
STRIP = !!STRIP!!
|
||||||
|
CC_CFLAGS = !!CC_CFLAGS!!
|
||||||
CFLAGS = !!CFLAGS!!
|
CFLAGS = !!CFLAGS!!
|
||||||
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
CFLAGS_BUILD = !!CFLAGS_BUILD!!
|
||||||
LIBS = !!LIBS!!
|
LIBS = !!LIBS!!
|
||||||
@@ -14,7 +15,6 @@ LANG_DIR = !!LANG_DIR!!
|
|||||||
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
|
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
|
||||||
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
|
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
|
||||||
SRC_DIR = !!SRC_DIR!!
|
SRC_DIR = !!SRC_DIR!!
|
||||||
SCRIPT_SRC_DIR=!!SCRIPT_SRC_DIR!!
|
|
||||||
MEDIA_DIR = !!MEDIA_DIR!!
|
MEDIA_DIR = !!MEDIA_DIR!!
|
||||||
TTD = !!TTD!!
|
TTD = !!TTD!!
|
||||||
STRGEN = !!STRGEN!!
|
STRGEN = !!STRGEN!!
|
||||||
@@ -27,6 +27,7 @@ CFLAGS_MAKEDEP= !!CFLAGS_MAKEDEP!!
|
|||||||
SORT = !!SORT!!
|
SORT = !!SORT!!
|
||||||
REVISION = !!REVISION!!
|
REVISION = !!REVISION!!
|
||||||
AWK = !!AWK!!
|
AWK = !!AWK!!
|
||||||
|
GCC295 = !!GCC295!!
|
||||||
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
|
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
|
||||||
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
|
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
|
||||||
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
|
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
|
||||||
@@ -41,16 +42,29 @@ OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC)
|
|||||||
SRCS := !!SRCS!!
|
SRCS := !!SRCS!!
|
||||||
|
|
||||||
# All C-files depend on those 3 files
|
# All C-files depend on those 3 files
|
||||||
FILE_DEP := $(CONFIG_CACHE_COMPILER) endian_target.h
|
FILE_DEP := $(CONFIG_CACHE_COMPILER) $(LANG_OBJS_DIR)/table/strings.h endian_target.h
|
||||||
# Create all dirs and subdirs
|
# Create all dirs and subdirs
|
||||||
RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
|
RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
|
||||||
|
|
||||||
# Make sure endian_target.h is reasable as if it was in the src/ dir
|
# Make sure endian_target.h is reasable as if it was in the src/ dir
|
||||||
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
|
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
|
||||||
CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SCRIPT_SRC_DIR)
|
|
||||||
|
|
||||||
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
|
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
|
||||||
|
|
||||||
|
# This 'sed' basicly just removes 'const' from the line if it is a 2+D array
|
||||||
|
# For more information, please check:
|
||||||
|
# http://maillist.openttd.org/pipermail/devs/2007-April/000284.html
|
||||||
|
# http://maillist.openttd.org/pipermail/devs/2007-February/000248.html
|
||||||
|
GCC295_FIX=sed -r 's/^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$/\1\2 \4\6\8\9/g'
|
||||||
|
# This 'sed' removes the 3rd '4' in the # lines of the -E output of
|
||||||
|
# gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the
|
||||||
|
# compiler can't handle that information (just don't ask). So we remove it
|
||||||
|
# and then it compiles happily and without bitching :)
|
||||||
|
# Furthermore gcc 2.95 has some trouble with protected and private when
|
||||||
|
# accessing the protected/private stuff of the enclosing class (or the
|
||||||
|
# super class of the enclosing class).
|
||||||
|
GCC295_FIX_2=sed -e 's|\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$|\1|g;s|private:|public:|g;s|protected:|public:|g'
|
||||||
|
|
||||||
# Check if we want to show what we are doing
|
# Check if we want to show what we are doing
|
||||||
ifdef VERBOSE
|
ifdef VERBOSE
|
||||||
Q =
|
Q =
|
||||||
@@ -77,16 +91,16 @@ $(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STR
|
|||||||
# Always run version detection, so we always have an accurate modified
|
# Always run version detection, so we always have an accurate modified
|
||||||
# flag
|
# flag
|
||||||
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
||||||
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
|
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3)
|
||||||
|
|
||||||
ifdef REVISION
|
ifdef REVISION
|
||||||
# Use specified revision (which should be of the form "r000").
|
# Use specified revision (which should be of the form "r000").
|
||||||
REV := $(REVISION)
|
REV := $(REVISION)
|
||||||
REV_NR := $(shell echo $(REVISION) | sed "s@[^0-9]@@g")
|
REV_NR := $(shell echo $(REVISION) | sed "s/[^0-9]//g")
|
||||||
else
|
else
|
||||||
# Use autodetected revisions
|
# Use autodetected revisions
|
||||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
REV := $(shell echo "$(VERSIONS)" | cut -f 1)
|
||||||
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
|
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Make sure we have something in REV and REV_NR
|
# Make sure we have something in REV and REV_NR
|
||||||
@@ -98,7 +112,7 @@ REV_NR := 0
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# This helps to recompile if flags change
|
# This helps to recompile if flags change
|
||||||
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CFLAGS)" ]; then echo "$(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
|
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CC_CFLAGS) $(CFLAGS)" ]; then echo "$(CC_CFLAGS) $(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_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 )
|
RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi )
|
||||||
|
|
||||||
@@ -127,15 +141,15 @@ endif
|
|||||||
|
|
||||||
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
|
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
|
||||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
|
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
|
||||||
$(Q)$(CC_HOST) $(CC_CFLAGS) $(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)
|
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
|
||||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||||
$(Q)$(CXX_HOST) $(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)
|
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
|
||||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||||
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
|
||||||
|
|
||||||
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
|
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
|
||||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||||
@@ -166,7 +180,7 @@ endif
|
|||||||
|
|
||||||
# Convert x:/... paths to /x/... for mingw
|
# Convert x:/... paths to /x/... for mingw
|
||||||
ifeq ($(OS), MINGW)
|
ifeq ($(OS), MINGW)
|
||||||
@cat Makefile.dep.tmp | sed 's@/\([a-zA-Z]\):\/@\/\1\/@g' > Makefile.dep.tmp.mingw
|
@cat Makefile.dep.tmp | sed 's@\([a-zA-Z]\):\/@\/\1\/@g' > Makefile.dep.tmp.mingw
|
||||||
@cp Makefile.dep.tmp.mingw Makefile.dep.tmp
|
@cp Makefile.dep.tmp.mingw Makefile.dep.tmp
|
||||||
@rm -f Makefile.dep.tmp.mingw
|
@rm -f Makefile.dep.tmp.mingw
|
||||||
endif
|
endif
|
||||||
@@ -176,10 +190,10 @@ endif
|
|||||||
@$(AWK) ' \
|
@$(AWK) ' \
|
||||||
/^# DO NOT/ { print $$0 ; next} \
|
/^# DO NOT/ { print $$0 ; next} \
|
||||||
/^#/ {next} \
|
/^#/ {next} \
|
||||||
/: / { \
|
/:/ { \
|
||||||
left = NF - 1; \
|
left = NF - 1; \
|
||||||
for (n = 2; n <= NF; n++) { \
|
for (n = 2; n <= NF; n++) { \
|
||||||
if (match($$n, "^$(ROOT_DIR)") == 0) { \
|
if (match($$n, "^$(SRC_DIR)") == 0) { \
|
||||||
$$n = ""; \
|
$$n = ""; \
|
||||||
left--; \
|
left--; \
|
||||||
} \
|
} \
|
||||||
@@ -195,24 +209,32 @@ endif
|
|||||||
{ \
|
{ \
|
||||||
print $$0 \
|
print $$0 \
|
||||||
} \
|
} \
|
||||||
' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep
|
' < Makefile.dep.tmp | sed 's/ */ /g;s/ $$//' | $(SORT) > Makefile.dep
|
||||||
|
|
||||||
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
|
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Avoid problems with deps if a .h/.hpp/.hpp.sq file is deleted without the deps
|
# Avoid problems with deps if a .h/.hpp file is deleted without the deps
|
||||||
# being updated. Now the Makefile continues, the deps are recreated
|
# being updated. Now the Makefile continues, the deps are recreated
|
||||||
# and all will be fine.
|
# and all will be fine.
|
||||||
%.h %.hpp %.hpp.sq:
|
%.h %.hpp:
|
||||||
@true
|
@true
|
||||||
|
|
||||||
|
|
||||||
# Compile all the files according to the targets
|
# 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) $(CC_CFLAGS) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||||
|
ifeq ($(GCC295), 1)
|
||||||
|
$(Q)$(CXX_HOST) -E $(CFLAGS) $< | $(GCC295_FIX) | $(GCC295_FIX_2) | $(CXX_HOST) $(CFLAGS) -c -o $@ -x c++ -
|
||||||
|
else
|
||||||
$(Q)$(CXX_HOST) $(CFLAGS) -c -o $@ $<
|
$(Q)$(CXX_HOST) $(CFLAGS) -c -o $@ $<
|
||||||
|
endif
|
||||||
|
|
||||||
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
|
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
|
||||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
|
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||||
@@ -237,10 +259,6 @@ else
|
|||||||
endif
|
endif
|
||||||
ifdef STRIP
|
ifdef STRIP
|
||||||
$(Q)$(STRIP) $@
|
$(Q)$(STRIP) $@
|
||||||
ifeq ($(OS), DOS)
|
|
||||||
$(E) '$(STAGE) Adding CWSDPMI stub to $@'
|
|
||||||
$(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# The targets to compile the endian-code
|
# The targets to compile the endian-code
|
||||||
@@ -256,10 +274,10 @@ $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
|
|||||||
# Revision files
|
# Revision files
|
||||||
|
|
||||||
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
|
$(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
|
$(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)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
|
$(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
|
$(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:
|
FORCE:
|
||||||
|
|
||||||
|
@@ -1,69 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
if ! [ -f ai/regression/regression.nut ]; then
|
|
||||||
echo "Make sure you are in the root of OpenTTD before starting this script."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat ai/regression/regression.nut | tr ';' '\n' | awk '
|
|
||||||
/^function/ {
|
|
||||||
for (local in locals) {
|
|
||||||
delete locals[local]
|
|
||||||
}
|
|
||||||
if (match($0, "function Regression::Start") || match($0, "function Regression::Stop")) next
|
|
||||||
locals["this"] = "AIControllerSquirrel"
|
|
||||||
}
|
|
||||||
|
|
||||||
/local/ {
|
|
||||||
gsub(".*local", "local")
|
|
||||||
if (match($4, "^AI")) {
|
|
||||||
sub("\\(.*", "", $4)
|
|
||||||
locals[$2] = $4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/Valuate/ {
|
|
||||||
gsub(".*Valuate\\(", "")
|
|
||||||
gsub("\\).*", "")
|
|
||||||
gsub(",.*", "")
|
|
||||||
gsub("\\.", "::")
|
|
||||||
print $0
|
|
||||||
}
|
|
||||||
|
|
||||||
/\./ {
|
|
||||||
for (local in locals) {
|
|
||||||
if (match($0, local ".")) {
|
|
||||||
fname = substr($0, index($0, local "."))
|
|
||||||
sub("\\(.*", "", fname)
|
|
||||||
sub("\\.", "::", fname)
|
|
||||||
sub(local, locals[local], fname)
|
|
||||||
print fname
|
|
||||||
if (match(locals[local], "List")) {
|
|
||||||
sub(locals[local], "AIAbstractList", fname)
|
|
||||||
print fname
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# We want to remove everything before the FIRST occurence of AI.
|
|
||||||
# If we do not remove any other occurences of AI from the string
|
|
||||||
# we will remove everything before the LAST occurence of AI, so
|
|
||||||
# do some little magic to make it work the way we want.
|
|
||||||
sub("AI", "AXXXXY")
|
|
||||||
gsub("AI", "AXXXXX")
|
|
||||||
sub(".*AXXXXY", "AI")
|
|
||||||
if (match($0, "^AI") && match($0, ".")) {
|
|
||||||
sub("\\(.*", "", $0)
|
|
||||||
sub("\\.", "::", $0)
|
|
||||||
print $0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
' | sed 's/ //g' | sort | uniq > tmp.in_regression
|
|
||||||
|
|
||||||
grep 'DefSQ.*Method' ../src/ai/api/*.hpp.sq | grep -v 'AIError::' | grep -v 'AIAbstractList::Valuate' | grep -v '::GetClassName' | sed 's/^[^,]*, &//g;s/,[^,]*//g' | sort > tmp.in_api
|
|
||||||
|
|
||||||
diff -u tmp.in_regression tmp.in_api | grep -v '^+++' | grep '^+' | sed 's/^+//'
|
|
||||||
|
|
||||||
rm -f tmp.in_regression tmp.in_api
|
|
||||||
|
|
@@ -1,17 +0,0 @@
|
|||||||
[misc]
|
|
||||||
display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|WAYPOINTS
|
|
||||||
language = english.lng
|
|
||||||
|
|
||||||
[gui]
|
|
||||||
autosave = off
|
|
||||||
|
|
||||||
[game_creation]
|
|
||||||
town_name = english
|
|
||||||
|
|
||||||
[ai_players]
|
|
||||||
none =
|
|
||||||
regression =
|
|
||||||
|
|
||||||
[vehicle]
|
|
||||||
road_side = right
|
|
||||||
plane_speed = 2
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,14 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
class Regression extends AIInfo {
|
|
||||||
function GetAuthor() { return "OpenTTD NoAI Developers Team"; }
|
|
||||||
function GetName() { return "Regression"; }
|
|
||||||
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 GetDate() { return "2007-03-18"; }
|
|
||||||
function CreateInstance() { return "Regression"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
RegisterAI(Regression());
|
|
||||||
|
|
@@ -1,4 +0,0 @@
|
|||||||
/* $Id$ */
|
|
||||||
|
|
||||||
print(" Required this file");
|
|
||||||
|
|
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
if ! [ -f ai/regression/regression.nut ]; then
|
|
||||||
echo "Make sure you are in the root of OpenTTD before starting this script."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp ai/regression/regression.nut ai/regression/main.nut
|
|
||||||
cp ai/regression/regression_info.nut ai/regression/info.nut
|
|
||||||
|
|
||||||
if [ -f scripts/game_start.scr ]; then
|
|
||||||
mv scripts/game_start.scr scripts/game_start.scr.regression
|
|
||||||
fi
|
|
||||||
|
|
||||||
params=""
|
|
||||||
gdb=""
|
|
||||||
if [ "$1" != "-r" ]; then
|
|
||||||
params="-snull -mnull -vnull:ticks=30000"
|
|
||||||
fi
|
|
||||||
if [ "$1" = "-g" ]; then
|
|
||||||
gdb="gdb --ex run --args "
|
|
||||||
fi
|
|
||||||
if [ -n "$gdb" ]; then
|
|
||||||
$gdb ./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav
|
|
||||||
else
|
|
||||||
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$gdb" ]; then
|
|
||||||
res="`diff -ub ai/regression/regression.txt tmp.regression`"
|
|
||||||
if [ -z "$res" ]; then
|
|
||||||
echo "Regression test passed!"
|
|
||||||
else
|
|
||||||
echo "Regression test failed! Difference:"
|
|
||||||
echo "$res"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
echo "Regression test done"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f ai/regression/main.nut ai/regression/info.nut
|
|
||||||
|
|
||||||
if [ -f scripts/game_start.scr.regression ]; then
|
|
||||||
mv scripts/game_start.scr.regression scripts/game_start.scr
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" != "-k" ]; then
|
|
||||||
rm -f tmp.regression
|
|
||||||
fi
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,31 +0,0 @@
|
|||||||
; $Id$
|
|
||||||
;
|
|
||||||
; This represents the original graphics as on the non-German Transport
|
|
||||||
; Tycoon Deluxe DOS CD.
|
|
||||||
;
|
|
||||||
[metadata]
|
|
||||||
name = original_dos
|
|
||||||
shortname = TTDD
|
|
||||||
version = 1
|
|
||||||
description = Original Transport Tycoon Deluxe DOS edition graphics
|
|
||||||
palette = DOS
|
|
||||||
|
|
||||||
[files]
|
|
||||||
base = TRG1.GRF
|
|
||||||
logos = TRGI.GRF
|
|
||||||
arctic = TRGC.GRF
|
|
||||||
tropical = TRGH.GRF
|
|
||||||
toyland = TRGT.GRF
|
|
||||||
extra = OPENTTDD.GRF
|
|
||||||
|
|
||||||
[md5s]
|
|
||||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
|
||||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
|
||||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
|
||||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
|
||||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
|
||||||
OPENTTDD.GRF = 2e1f3667175e8eeb013ea35881ecffb7
|
|
||||||
|
|
||||||
[origin]
|
|
||||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
|
||||||
OPENTTDD.GRF = This file was part of your installation.
|
|
@@ -1,31 +0,0 @@
|
|||||||
; $Id$
|
|
||||||
;
|
|
||||||
; This represents the original graphics as on the German Transport
|
|
||||||
; Tycoon Deluxe DOS CD. It contains one broken sprite.
|
|
||||||
;
|
|
||||||
[metadata]
|
|
||||||
name = original_dos_de
|
|
||||||
shortname = TTDD
|
|
||||||
version = 0
|
|
||||||
description = Original Transport Tycoon Deluxe DOS (German) edition graphics
|
|
||||||
palette = DOS
|
|
||||||
|
|
||||||
[files]
|
|
||||||
base = TRG1.GRF
|
|
||||||
logos = TRGI.GRF
|
|
||||||
arctic = TRGC.GRF
|
|
||||||
tropical = TRGH.GRF
|
|
||||||
toyland = TRGT.GRF
|
|
||||||
extra = OPENTTDD.GRF
|
|
||||||
|
|
||||||
[md5s]
|
|
||||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
|
||||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
|
||||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
|
||||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
|
||||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
|
||||||
OPENTTDD.GRF = 2e1f3667175e8eeb013ea35881ecffb7
|
|
||||||
|
|
||||||
[origin]
|
|
||||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
|
||||||
OPENTTDD.GRF = This file was part of your installation.
|
|
@@ -1,31 +0,0 @@
|
|||||||
; $Id$
|
|
||||||
;
|
|
||||||
; This represents the original graphics as on the Transport
|
|
||||||
; Tycoon Deluxe for Windows CD.
|
|
||||||
;
|
|
||||||
[metadata]
|
|
||||||
name = original_windows
|
|
||||||
shortname = TTDW
|
|
||||||
version = 0
|
|
||||||
description = Original Transport Tycoon Deluxe Windows edition graphics
|
|
||||||
palette = Windows
|
|
||||||
|
|
||||||
[files]
|
|
||||||
base = TRG1R.GRF
|
|
||||||
logos = TRGIR.GRF
|
|
||||||
arctic = TRGCR.GRF
|
|
||||||
tropical = TRGHR.GRF
|
|
||||||
toyland = TRGTR.GRF
|
|
||||||
extra = OPENTTDW.GRF
|
|
||||||
|
|
||||||
[md5s]
|
|
||||||
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
|
|
||||||
TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
|
||||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
|
||||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
|
||||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
|
||||||
OPENTTDW.GRF = a73ff4dce8936fadc02dea183afad638
|
|
||||||
|
|
||||||
[origin]
|
|
||||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
|
||||||
OPENTTDW.GRF = This file was part of your installation.
|
|
4
bin/scenario/README
Normal file
4
bin/scenario/README
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
You can place you scenarios in this dir.
|
||||||
|
|
||||||
|
This file is really here to make the Makefile happy, it should be modified to
|
||||||
|
properly handle scenarios (or maybe even not at all...).
|
@@ -1,2 +0,0 @@
|
|||||||
start_ai MyAI
|
|
||||||
|
|
@@ -1,2 +0,0 @@
|
|||||||
# Show a MOTD
|
|
||||||
say "Welcome..."
|
|
@@ -10,8 +10,6 @@ local scripts:
|
|||||||
should be used to set client optimization settings:
|
should be used to set client optimization settings:
|
||||||
- 'on_client.scr' is executed when you join a server [all clients]
|
- 'on_client.scr' is executed when you join a server [all clients]
|
||||||
|
|
||||||
- 'on_server_connect.scr' is executed on the server when a client has joined (MOTD)
|
|
||||||
|
|
||||||
should be used to set the servers port/ip and/or server optimization settings/patches:
|
should be used to set the servers port/ip and/or server optimization settings/patches:
|
||||||
- 'pre_server.scr' is executed before the servers tcp stack is started [in-game only]
|
- 'pre_server.scr' is executed before the servers tcp stack is started [in-game only]
|
||||||
- 'pre_dedicated.scr' is executed before the servers tcp stack is started [dedicated only]
|
- 'pre_dedicated.scr' is executed before the servers tcp stack is started [dedicated only]
|
||||||
|
2512
changelog.txt
2512
changelog.txt
File diff suppressed because it is too large
Load Diff
779
config.lib
Normal file → Executable file
779
config.lib
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
57
configure
vendored
57
configure
vendored
@@ -1,13 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
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"
|
|
||||||
echo " failures in subsequent build stages. Any failures with the build"
|
|
||||||
echo " will most likely be caused by this."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
CONFIGURE_EXECUTABLE="$_"
|
CONFIGURE_EXECUTABLE="$_"
|
||||||
# On *nix systems those two are equal when ./configure is done
|
# On *nix systems those two are equal when ./configure is done
|
||||||
if [ "$0" != "$CONFIGURE_EXECUTABLE" ]; then
|
if [ "$0" != "$CONFIGURE_EXECUTABLE" ]; then
|
||||||
@@ -22,16 +14,9 @@ if [ "$0" != "$CONFIGURE_EXECUTABLE" ]; then
|
|||||||
fi
|
fi
|
||||||
# Find out where configure is (in what dir)
|
# Find out where configure is (in what dir)
|
||||||
ROOT_DIR="`dirname $0`"
|
ROOT_DIR="`dirname $0`"
|
||||||
# For MSYS/MinGW we want to know the FULL path. This as that path is generated
|
ROOT_DIR="`cd $ROOT_DIR && pwd`"
|
||||||
# once you call an outside binary. Having the same path for the rest is needed
|
|
||||||
# for dependency checking.
|
|
||||||
# pwd -W returns said FULL path, but doesn't exist on others so fall back.
|
|
||||||
ROOT_DIR="`cd $ROOT_DIR && (pwd -W 2>/dev/null || pwd 2>/dev/null)`"
|
|
||||||
|
|
||||||
check_path_characters
|
PWD="`pwd`"
|
||||||
|
|
||||||
# Same here as for the ROOT_DIR above
|
|
||||||
PWD="`pwd -W 2>/dev/null || pwd 2>/dev/null`"
|
|
||||||
PREFIX="$PWD/bin"
|
PREFIX="$PWD/bin"
|
||||||
|
|
||||||
. $ROOT_DIR/config.lib
|
. $ROOT_DIR/config.lib
|
||||||
@@ -52,11 +37,10 @@ if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Make sure we don't lock config.cache
|
# Make sure we don't lock config.cache
|
||||||
cat config.cache | sed 's@\\ @\\\\ @g' > cache.tmp
|
cat config.cache | sed 's/\\ /\\\\ /g' > cache.tmp
|
||||||
sh cache.tmp
|
sh cache.tmp
|
||||||
RET=$?
|
|
||||||
rm -f cache.tmp
|
rm -f cache.tmp
|
||||||
exit $RET
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set_default
|
set_default
|
||||||
@@ -66,7 +50,7 @@ save_params
|
|||||||
make_cflags_and_ldflags
|
make_cflags_and_ldflags
|
||||||
|
|
||||||
EXE=""
|
EXE=""
|
||||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "DOS" ] || [ "$os" = "WINCE" ]; then
|
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then
|
||||||
EXE=".exe"
|
EXE=".exe"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -75,7 +59,7 @@ STRGEN="strgen$EXE"
|
|||||||
ENDIAN_CHECK="endian_check$EXE"
|
ENDIAN_CHECK="endian_check$EXE"
|
||||||
|
|
||||||
if [ -z "$sort" ]; then
|
if [ -z "$sort" ]; then
|
||||||
PIPE_SORT="sed s@a@a@"
|
PIPE_SORT="sed s/a/a/"
|
||||||
else
|
else
|
||||||
PIPE_SORT="$sort"
|
PIPE_SORT="$sort"
|
||||||
fi
|
fi
|
||||||
@@ -86,7 +70,7 @@ if [ ! -f "$LANG_DIR/english.txt" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Read the source.list and process it
|
# 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; }
|
/^( *)#end/ { if (deep == skip) { skip -= 1; } deep -= 1; next; }
|
||||||
/^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
|
/^( *)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
|
||||||
@@ -98,7 +82,6 @@ AWKCOMMAND='
|
|||||||
|
|
||||||
deep += 1;
|
deep += 1;
|
||||||
|
|
||||||
if ($0 == "ALLEGRO" && "'$allegro_config'" == "") { next; }
|
|
||||||
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
||||||
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
||||||
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
||||||
@@ -106,16 +89,14 @@ AWKCOMMAND='
|
|||||||
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
||||||
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
||||||
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
||||||
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
|
|
||||||
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
||||||
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
|
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 == "WINCE" && "'$os'" != "WINCE") { next; }
|
||||||
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
||||||
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
|
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
|
||||||
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
||||||
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
|
if ($0 == "NO_THREADS" && "'$with_threads'" == "0") { next; }
|
||||||
|
|
||||||
skip += 1;
|
skip += 1;
|
||||||
|
|
||||||
@@ -131,29 +112,23 @@ AWKCOMMAND='
|
|||||||
print $0;
|
print $0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'
|
' | $PIPE_SORT`"
|
||||||
|
|
||||||
# Read the source.list and process it
|
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = " " } /\.c$/ { gsub(".c$", ".o", $0); print $0; }'`"
|
||||||
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
|
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = " " } /\.cpp$/ { gsub(".cpp$", ".o", $0); print $0; }'`"
|
||||||
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | $PIPE_SORT`"
|
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; }'`"
|
||||||
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.c$/ { gsub(\".c$\", \".o\", $0); print $0; }'`"
|
SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { 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
|
# In makefiles, we always use -u for sort
|
||||||
if [ -z "$sort" ]; then
|
if [ -z "$sort" ]; then
|
||||||
sort="sed s@a@a@"
|
sort="sed s/a/a/"
|
||||||
else
|
else
|
||||||
sort="$sort -u"
|
sort="$sort -u"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in $ROOT_DIR/Makefile.bundle.in"
|
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
|
||||||
|
|
||||||
generate_main
|
generate_main
|
||||||
generate_lang
|
generate_lang
|
||||||
generate_src
|
generate_src
|
||||||
|
|
||||||
check_path_characters
|
|
||||||
|
@@ -1,15 +1,14 @@
|
|||||||
STRGEN USAGE
|
STRGEN USAGE
|
||||||
------------
|
------------
|
||||||
This guide is only interesting for people who want to alter something
|
This guide is only interesting for people who want to alter something
|
||||||
themselves without access to translator.openttd.org. Please note that
|
themselves without access to WT2 (translator2.openttd.org). Please note that
|
||||||
your compiled language file will only be compatible with the OpenTTD version
|
your compiled language file will only be compatible with the OpenTTD version
|
||||||
you have downloaded english.txt, the master language file, for. While this is
|
you have downloaded english.txt, the master language file, for. While this is
|
||||||
not always true, namely when changes in the code have not touched language
|
not always true, namely when changes in the code have not touched language
|
||||||
files, your safest bet is to assume this 'limitation'.
|
files, your safest bet is to assume this 'limitation'.
|
||||||
As a first step you need to compile strgen. This is as easy as typing
|
As a first step you need to compile strgen. This is as easy as typing
|
||||||
'make strgen'. You can download the precompile strgen from:
|
'make strgen'. You can also download a precompiled binary from a release,
|
||||||
http://www.openttd.org/download-strgen
|
nightly, etc.
|
||||||
|
|
||||||
strgen takes as argument a txt file and translates it to a lng file, allowing
|
strgen takes as argument a txt file and translates it to a lng file, allowing
|
||||||
it to be used inside OpenTTD. strgen needs the master language file
|
it to be used inside OpenTTD. strgen needs the master language file
|
||||||
english.txt to work. Below are some examples of strgen usage.
|
english.txt to work. Below are some examples of strgen usage.
|
||||||
|
@@ -20,7 +20,7 @@ downloading; mostly because the DirectX SDK and Platform SDK are about
|
|||||||
500MB each.
|
500MB each.
|
||||||
Download the following files:
|
Download the following files:
|
||||||
|
|
||||||
* openttd-useful.zip (http://binaries.openttd.org/extra/openttd-useful/)
|
* openttd-useful.zip (http://sf.net/project/showfiles.php?group_id=103924&package_id=114307)
|
||||||
* DirectX 8.1 SDK (http://neuron.tuke.sk/~mizanin/eng/Dx81sdk-include-lib.rar) (or alternatively the latest DirectX SDK from Microsoft)
|
* DirectX 8.1 SDK (http://neuron.tuke.sk/~mizanin/eng/Dx81sdk-include-lib.rar) (or alternatively the latest DirectX SDK from Microsoft)
|
||||||
* MS Windows Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en)
|
* MS Windows Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en)
|
||||||
* afxres.h (http://www-d0.fnal.gov/d0dist/dist/packages/d0ve/devel/windows/AFXRES.H)
|
* afxres.h (http://www-d0.fnal.gov/d0dist/dist/packages/d0ve/devel/windows/AFXRES.H)
|
||||||
@@ -29,8 +29,8 @@ Download the following files:
|
|||||||
|
|
||||||
You need an SVN-client to download the source from subversion:
|
You need an SVN-client to download the source from subversion:
|
||||||
|
|
||||||
* CLI Subversion (http://subversion.tigris.org/)
|
* CLI Subversion (http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91)
|
||||||
* GUI TortoiseSVN (http://tortoisesvn.tigris.org/)
|
* GUI TortoiseSVN (http://tortoisesvn.tigris.org/download.html)
|
||||||
|
|
||||||
|
|
||||||
2) INCLUDES AND LIBRARIES
|
2) INCLUDES AND LIBRARIES
|
||||||
|
@@ -376,40 +376,30 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<ul>
|
<ul>
|
||||||
<li>m2 bit 7: Signal 0 and 1: set = semaphore signals, clear = light signals</li>
|
<li>m2 bit 6: Signal 0 and 1: set = semaphore signals, clear = light signals</li>
|
||||||
<li>m2 bit 3: Signal 2 and 3: set = semaphore signals, clear = light signals</li>
|
<li>m2 bit 2: Signal 2 and 3: set = semaphore signals, clear = light signals</li>
|
||||||
<li>m2 bits 6..4: type of signal 0 and 1 (same values as m2 bits 2..0)</li>
|
<li>m2 bits 5..4: type of signal 0 and 1 (same values as m2 bits 1..0)</li>
|
||||||
<li>m2 bits 2..0: type of signal 2 and 3
|
<li>m2 bits 1..0: type of signal 2 and 3
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap="nowrap" valign="top"><tt>000</tt>: </td>
|
<td nowrap="nowrap" valign="top"><tt>00</tt>: </td>
|
||||||
<td align="left">normal signals</td>
|
<td align="left">normal signals</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap="nowrap" valign="top"><tt>001</tt>: </td>
|
<td nowrap="nowrap" valign="top"><tt>01</tt>: </td>
|
||||||
<td align="left">pre-signals</td>
|
<td align="left">pre-signals</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap="nowrap" valign="top"><tt>010</tt>: </td>
|
<td nowrap="nowrap" valign="top"><tt>10</tt>: </td>
|
||||||
<td align="left">exit-signals</td>
|
<td align="left">exit-signals</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap="nowrap" valign="top"><tt>011</tt>: </td>
|
<td nowrap="nowrap" valign="top"><tt>11</tt>: </td>
|
||||||
<td align="left">combo-signals</td>
|
<td align="left">combo-signals</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td nowrap="nowrap" valign="top"><tt>100</tt>: </td>
|
|
||||||
<td align="left">pbs signals</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td nowrap="nowrap" valign="top"><tt>101</tt>: </td>
|
|
||||||
<td align="left">no-entry signals</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -417,39 +407,6 @@
|
|||||||
<li>m4 bits 7..4: bit clear = signal 3..0 shows red</li>
|
<li>m4 bits 7..4: bit clear = signal 3..0 shows red</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>m2 bits 8..10: track reserved for pbs
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td><tt>0</tt> </td>
|
|
||||||
<td>not reserved</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>1</tt> </td>
|
|
||||||
<td>X direction</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>2</tt> </td>
|
|
||||||
<td>Y direction</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>3</tt> </td>
|
|
||||||
<td>north corner (W-E)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>4</tt> </td>
|
|
||||||
<td>south corner (W-E)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>5</tt> </td>
|
|
||||||
<td>west corner (N-S)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><tt>6</tt> </td>
|
|
||||||
<td>east corner (N-S)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</li>
|
|
||||||
<li>m2 bit 11: opposite track is reserved, too</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bit 7 set, bit 6 clear: checkpoint
|
<li>m5 bit 7 set, bit 6 clear: checkpoint
|
||||||
@@ -468,7 +425,6 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bit 4: pbs reservation state</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bit 7 set, bit 6 set: railway depot
|
<li>m5 bit 7 set, bit 6 set: railway depot
|
||||||
@@ -496,7 +452,6 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bit 4: pbs reservation state</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
||||||
@@ -513,9 +468,8 @@
|
|||||||
<td valign=top nowrap> </td>
|
<td valign=top nowrap> </td>
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
<li>m2: Index into the array of towns (owning town for town roads; closest town otherwise, INVALID_TOWN if there is no town or we are creating a town)</li>
|
<li>m3 bit 7 set = on snow or desert</li>
|
||||||
<li>m7 bit 5 set = on snow or desert</li>
|
<li>m7 bits 7..5: present road types
|
||||||
<li>m7 bits 7..6: present road types
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>bit 0 </td>
|
<td>bit 0 </td>
|
||||||
@@ -526,11 +480,17 @@
|
|||||||
<td>bit 1 </td>
|
<td>bit 1 </td>
|
||||||
<td>tram</td>
|
<td>tram</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>bit 2 </td>
|
||||||
|
<td>reserved</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bits 7 clear: road or level-crossing
|
<li>m5 bits 7 clear: road or level-crossing
|
||||||
<ul>
|
<ul>
|
||||||
<li>m6 bits 5..3:
|
<li>m2: Index into the array of towns, 0 for non-town roads</li>
|
||||||
|
<li>m3 bits 6..4:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><tt>0</tt> </td>
|
<td><tt>0</tt> </td>
|
||||||
@@ -562,12 +522,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
|
<li>m5 bits 3..0: <a href="#OwnershipInfo">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
|
||||||
|
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road type 2 (reserved)
|
||||||
<li>m5 bit 6 clear: road
|
<li>m5 bit 6 clear: road
|
||||||
<ul>
|
<ul>
|
||||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
<li>m1: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||||
<li>m7 bits 3..0: counter for the roadworks</li>
|
<li>m3 bits 3..0: counter for the roadworks</li>
|
||||||
<li>m5 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
|
<li>m4 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align=left>bit 0: </td>
|
<td align=left>bit 0: </td>
|
||||||
@@ -587,7 +548,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m3 bits 0..3: road layout road type 1 (tram)</li>
|
<li>m4 bits 7..4: road layout road type 1 (tram)</li>
|
||||||
|
<li>m6 bits 5..2: road layout road type 2 (reserved)</li>
|
||||||
<li>m5 bits 5..4: bits to disallow vehicles to go a specific direction
|
<li>m5 bits 5..4: bits to disallow vehicles to go a specific direction
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -606,7 +568,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li>
|
<li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li>
|
||||||
<li>m3 bits 3..0: <a href="#TrackType">railway track type</a></li>
|
<li>m3 bits 3..0: <a href="#TrackType">railway track type</a></li>
|
||||||
<li>m5 bit 0: direction
|
<li>m4 bit 6: direction
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align=left><tt>0</tt> </td>
|
<td align=left><tt>0</tt> </td>
|
||||||
@@ -618,9 +580,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bit 5: set if crossing lights are on</li>
|
<li>m4 bit 5: set if crossing lights are on</li>
|
||||||
<li>m6 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
<li>m4 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||||
<li>m5 bit 4: pbs reservation state</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -673,7 +634,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li> set : House is complete
|
<li> set : House is complete
|
||||||
<ul>
|
<ul>
|
||||||
<li>m5 : Age of house in years, clamped at 255</li>
|
<li>m5 : year of house construction (relative to 1920); clamped to 0..255 (1920..2175)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li> clear : House is in construction
|
<li> clear : House is in construction
|
||||||
@@ -835,9 +796,9 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
|
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
|
||||||
<li>m2: index into the array of stations</li>
|
<li>m2: index into the array of stations</li>
|
||||||
<li>m3 bits 7..4: persistent random data for newstations (train station)</li>
|
<li>m3 bits 7..4: persistent random data for newstations</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</li>
|
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations</li>
|
||||||
|
<li>m3 bits 2..0: present road types for road stops</li>
|
||||||
<li>m3 bits 1..0: water class for buoys and water part of docks</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>m4: custom station id; 0 means standard graphics</li>
|
||||||
<li>m5: graphics index (range from 0..255 for each station type):
|
<li>m5: graphics index (range from 0..255 for each station type):
|
||||||
@@ -936,12 +897,8 @@
|
|||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy)</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 bit 2: 1 when a drive through road stop is built over a town owned road, otherwise 0</li>
|
||||||
|
|
||||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></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 (train station)</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1077,7 +1034,6 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>m1 bit 7: clear = under construction
|
<li>m1 bit 7: clear = under construction
|
||||||
<ul>
|
<ul>
|
||||||
<li>m1 bits 6..5 : Water class (sea, canal, river or land)
|
|
||||||
<li>m1 bits 3..2: construction counter, for buildings under construction incremented on every periodic tile processing</li>
|
<li>m1 bits 3..2: construction counter, for buildings under construction incremented on every periodic tile processing</li>
|
||||||
<li>m1 bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around<br>
|
<li>m1 bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around<br>
|
||||||
the meaning is different for some animated tiles which are never under construction (types <tt>01</tt>, <tt>1E</tt>..<tt>20</tt>, <tt>30</tt>, <tt>58</tt>; see above)</li>
|
the meaning is different for some animated tiles which are never under construction (types <tt>01</tt>, <tt>1E</tt>..<tt>20</tt>, <tt>30</tt>, <tt>58</tt>; see above)</li>
|
||||||
@@ -1408,13 +1364,14 @@
|
|||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
<li>m1: <a href="#OwnershipInfo">owner</a></li>
|
<li>m1: <a href="#OwnershipInfo">owner</a></li>
|
||||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram</li>
|
<li>m2 bits 7..4: see bridge ramp</li>
|
||||||
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway</li>
|
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway</li>
|
||||||
<li>m5 bit 4: pbs reservation state for railway</li>
|
<li>m3 bits 2..0: present road types for road</li>
|
||||||
|
<li>m4 bit 7 set = on snow or desert</li>
|
||||||
<li>m5 bits 7 clear: tunnel entrance/exit</li>
|
<li>m5 bits 7 clear: tunnel entrance/exit</li>
|
||||||
<li>m5 bit 7 set: bridge ramp
|
<li>m5 bit 7 set: bridge ramp
|
||||||
<ul>
|
<ul>
|
||||||
<li>m6 bits 5..2: <a name="BridgeType">bridge type</a>:
|
<li>m2 bits 7..4: <a name="BridgeType">bridge type</a>:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th align=left>Type </th>
|
<th align=left>Type </th>
|
||||||
@@ -1514,11 +1471,6 @@
|
|||||||
<td><tt>1</tt> </td>
|
<td><tt>1</tt> </td>
|
||||||
<td>road</td>
|
<td>road</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td><tt>2</tt> </td>
|
|
||||||
<td>water</td>
|
|
||||||
</tr>
|
|
||||||
</li>
|
</li>
|
||||||
<li>m5 bits 1..0: direction onto the bridge / out of the tunnel
|
<li>m5 bits 1..0: direction onto the bridge / out of the tunnel
|
||||||
<table>
|
<table>
|
||||||
@@ -1545,9 +1497,6 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
||||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></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</li>
|
|
||||||
<li>m7 bit 5 set = on snow or desert</li>
|
|
||||||
<li>m7 bits 7..6: present road types for road</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1562,8 +1511,6 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
|
<li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
|
||||||
<li>m2: see company statue
|
<li>m2: see company statue
|
||||||
<li>m3 bits 4..2: size of HQ
|
|
||||||
<li>m3 bits 1..0: section identification of the HQ
|
|
||||||
<li>m5: tile type:
|
<li>m5: tile type:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -1591,8 +1538,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap valign=top><tt>04</tt><tt></tt> </td>
|
<td nowrap valign=top><tt>80</tt>..<tt>93</tt> </td>
|
||||||
<td align=left>company headquarters</td>
|
<td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
|
@@ -90,7 +90,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="caption">rail</td>
|
<td class="caption">rail</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||||
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></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> <span class="option">~~</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
@@ -101,7 +101,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="caption">rail with signals</td>
|
<td class="caption">rail with signals</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
<td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
|
<td class="bits"><span class="free">OOOO OOOO O</span>XXX <span class="free">O</span>XXX</td>
|
||||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
@@ -115,7 +115,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></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> <span class="option">~~</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO</span> XXXX</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">XX<span class="free">OO OO</span>XX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -126,7 +126,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits">XXXX XXXX XXXX XXXX</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> <span class="option">~~</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO</span> XXXX</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 OOO</span>X</td>
|
||||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -137,10 +137,10 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits">XXX<span class="free">O</span> XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
|
<td class="bits">XXXX XXXX</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="caption">level crossing</td>
|
<td class="caption">level crossing</td>
|
||||||
@@ -148,17 +148,17 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
||||||
|
<td class="bits"><span class="free">O</span>XXX XXXX</td>
|
||||||
|
<td class="bits">XX<span class="free">OO</span> XXXX</td>
|
||||||
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">-inherit-</td>
|
||||||
<td class="bits">XXXX<span class="free"> OOO</span>X</td>
|
|
||||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
|
||||||
<td class="bits">XXXX XXXX</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="caption">road depot</td>
|
<td class="caption">road depot</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"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits">X<span class="free">OOO OOOO</span></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>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
@@ -197,19 +197,19 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="caption">road stop</td>
|
<td class="caption">road stop</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">XXXX XXXX</td>
|
<td class="bits"><span class="free">OOOO O</span>XXX</td>
|
||||||
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
||||||
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
|
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
|
||||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="caption">dock</td>
|
<td class="caption">dock</td>
|
||||||
@@ -293,7 +293,7 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td>8</td>
|
<td>8</td>
|
||||||
<td class="caption">industry</td>
|
<td class="caption">industry</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits">XXX<span class="free">O</span> <span class="abuse">
|
<td class="bits">X<span class="free">OOO</span> <span class="abuse">
|
||||||
XXXX</span></td>
|
XXXX</span></td>
|
||||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
@@ -308,22 +308,22 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
<td class="bits"><span class="free">OOOO</span> <span class="option">~</span><span class="abuse">XXX</span></td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits">X<span class="free">OOO OOOO</span></td>
|
||||||
<td class="bits">X<span class="free">OO</span>X XXXX</td>
|
<td class="bits">X<span class="free">OOO</span> <span class="option">~</span>XXX</td>
|
||||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>bridge ramp</td>
|
<td>bridge ramp</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"><span class="free">OOOO OOOO</span> XXXX <span class="free">OOOO</span></td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits"><span class="free">OOOO</span> <span class="option">~</span><span class="abuse">XXX</span></td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">X<span class="free">OOO OOOO</span></td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits">X<span class="free">OOO</span> <span class="option">~</span>XXX</td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits">-inherit-</td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan=2>A</td>
|
<td rowspan=2>A</td>
|
||||||
@@ -331,9 +331,9 @@ the array so you can quickly see what is used and what is not.
|
|||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits">XXXX XXXX</td>
|
||||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||||
<td class="bits"><span class="free">OOO</span>X XXXX</td>
|
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
<td class="bits">XXXX XXXX</td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
|
<td class="bits">X<span class="option">~~</span>X XXXX</td>
|
||||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -1,75 +0,0 @@
|
|||||||
;
|
|
||||||
; Example file for the OpenTTD Base Graphics replacement sets.
|
|
||||||
; This file consists of basically two different parts:
|
|
||||||
; * metadata
|
|
||||||
; * information about the files
|
|
||||||
;
|
|
||||||
; Metadata contains information about the name, version and palette
|
|
||||||
; of the graphics 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 graphics replacements sets it found to be correct
|
|
||||||
; - `openttd -d grf=1` shows warnings/errors when parsing an .obg file
|
|
||||||
; - `openttd -I <name>` starts OpenTTD with the given set (case sensitive)
|
|
||||||
; - adding `graphicsset = <name>` to the misc section of openttd.cfg makes
|
|
||||||
; OpenTTD start with that graphics 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 graphics 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 graphics set (read as single integer)
|
|
||||||
version = 0
|
|
||||||
; a fairly short description of the set
|
|
||||||
description = foo
|
|
||||||
; palette used by the set; either DOS or Windows
|
|
||||||
palette = DOS
|
|
||||||
|
|
||||||
; The files section lists the files that replace sprites.
|
|
||||||
; The file names are case sensitive.
|
|
||||||
[files]
|
|
||||||
; GRF file with the base sprites
|
|
||||||
base = TRG1.GRF
|
|
||||||
; GRF file with logos, original terrain generator sprites
|
|
||||||
logos = TRGI.GRF
|
|
||||||
; GRF file with extra arctic sprites
|
|
||||||
arctic = TRGC.GRF
|
|
||||||
; GRF file with extra tropical sprites
|
|
||||||
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.
|
|
||||||
; Note that the list of files is case sensitive. Each GRF 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]
|
|
||||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
|
||||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
|
||||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
|
||||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
|
||||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
|
||||||
OPENTTDD.GRF = f829f62c137d6d7c6e272c481b796dd5
|
|
||||||
|
|
||||||
; 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.
|
|
||||||
OPENTTDD.GRF = This file was part of your installation.
|
|
@@ -1,34 +1,32 @@
|
|||||||
.\" Hey, EMACS: -*- nroff -*-
|
.\" Hey, EMACS: -*- nroff -*-
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.Dd Feb 05, 2009
|
.Dd Jul 20, 2008
|
||||||
.Dt OPENTTD 6
|
.Dt OPENTTD 6
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm openttd
|
.Nm openttd
|
||||||
.Nd An open source clone of the Microprose game "Transport Tycoon Deluxe"
|
.Nd An open source clone of the Microprose game "Transport Tycoon Deluxe"
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm
|
.Nm
|
||||||
.Op Fl efhx
|
.Op Fl Defhix
|
||||||
.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 [host][:port]
|
|
||||||
.Op Fl g Ar [savegame]
|
|
||||||
.Op Fl G Ar seed
|
.Op Fl G Ar seed
|
||||||
.Op Fl i Ar palette
|
.Op Fl b Ar blitter
|
||||||
.Op Fl I Ar graphicsset
|
.Op Fl d Ar [level | cat=lvl[, ...]]
|
||||||
|
.Op Fl c Ar config_file
|
||||||
|
.Op Fl g Ar [savegame]
|
||||||
.Op Fl l Ar host[:port]
|
.Op Fl l Ar host[:port]
|
||||||
.Op Fl m Ar driver
|
|
||||||
.Op Fl n Ar host[:port][#player]
|
.Op Fl n Ar host[:port][#player]
|
||||||
.Op Fl r Ar widthxheight
|
.Op Fl r Ar widthxheight
|
||||||
|
.Op Fl t Ar date
|
||||||
|
.Op Fl m Ar driver
|
||||||
.Op Fl s Ar driver
|
.Op Fl s Ar driver
|
||||||
.Op Fl t Ar year
|
|
||||||
.Op Fl v Ar driver
|
.Op Fl v Ar driver
|
||||||
|
.Op Fl b Ar blitter
|
||||||
.Sh OPTIONS
|
.Sh OPTIONS
|
||||||
.Bl -tag -width ".Fl n Ar host[:port][#player]"
|
.Bl -tag -width ".Fl n Ar host[:port][#player]"
|
||||||
.It Fl a Ar ai
|
.It Fl D Ar [host][:port]
|
||||||
Set the AI, see
|
Start a dedicated server
|
||||||
.Fl h
|
.It Fl G Ar seed
|
||||||
|
Seed the pseudo random number generator
|
||||||
.It Fl b Ar blitter
|
.It Fl b Ar blitter
|
||||||
Set the blitter, see
|
Set the blitter, see
|
||||||
.Fl h
|
.Fl h
|
||||||
@@ -40,13 +38,6 @@ Set debug verbosity for all categories to
|
|||||||
or 1 if omitted
|
or 1 if omitted
|
||||||
.It Fl d Ar cat=level[, ...]
|
.It Fl d Ar cat=level[, ...]
|
||||||
Set debug verbosity for a specific category
|
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
|
|
||||||
.Fl d
|
|
||||||
after
|
|
||||||
.Fl D
|
|
||||||
.It Fl G Ar seed
|
|
||||||
Seed the pseudo random number generator
|
|
||||||
.It Fl e
|
.It Fl e
|
||||||
Start in world editor mode
|
Start in world editor mode
|
||||||
.It Fl f
|
.It Fl f
|
||||||
@@ -57,13 +48,9 @@ Load
|
|||||||
.Ar savegame
|
.Ar savegame
|
||||||
at start or start a new game if omitted
|
at start or start a new game if omitted
|
||||||
.It Fl h
|
.It Fl h
|
||||||
Display a summary of all options and available AIs, blitters, drivers and graphic sets
|
Display a summary of all options and available drivers
|
||||||
.It Fl i Ar palette
|
.It Fl i
|
||||||
Set the palette, see
|
Force to use the DOS palette (use this if you see a lot of magenta)
|
||||||
.Fl h
|
|
||||||
.It Fl I Ar graphicsset
|
|
||||||
Set the graphics set, see
|
|
||||||
.Fl h
|
|
||||||
.It Fl l Ar host[:port]
|
.It Fl l Ar host[:port]
|
||||||
Redirect DEBUG(), See
|
Redirect DEBUG(), See
|
||||||
.Fl D
|
.Fl D
|
||||||
@@ -77,8 +64,8 @@ Set the resolution
|
|||||||
.It Fl s Ar driver
|
.It Fl s Ar driver
|
||||||
Set the sound driver, see
|
Set the sound driver, see
|
||||||
.Fl h
|
.Fl h
|
||||||
.It Fl t Ar year
|
.It Fl t Ar date
|
||||||
Set the starting year
|
Set the starting date
|
||||||
.It Fl v Ar driver
|
.It Fl v Ar driver
|
||||||
Set the video driver, see
|
Set the video driver, see
|
||||||
.Fl h
|
.Fl h
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
# Arguments given? Show help text.
|
# Arguments given? Show help text.
|
||||||
if [ "$#" != "0" ]; then
|
if [ "$#" != "0" ]; then
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@@ -84,19 +82,19 @@ elif [ -d "$ROOT_DIR/.git" ]; then
|
|||||||
if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
|
if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
|
||||||
MODIFIED="2"
|
MODIFIED="2"
|
||||||
fi
|
fi
|
||||||
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
|
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null | cut -c1-8`
|
||||||
REV="g`echo $HASH | cut -c1-8`"
|
REV="g$HASH"
|
||||||
BRANCH=`git branch|grep '[*]' | sed 's@\* @@;s@^master$@@'`
|
BRANCH=`git branch|grep '[*]' | sed 's/\* //;s/^master$//'`
|
||||||
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s/.*(svn r\([0-9]*\)).*/\1/"`
|
||||||
elif [ -d "$ROOT_DIR/.hg" ]; then
|
elif [ -d "$ROOT_DIR/.hg" ]; then
|
||||||
# We are a hg checkout
|
# We are a hg checkout
|
||||||
if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
|
if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
|
||||||
MODIFIED="2"
|
MODIFIED="2"
|
||||||
fi
|
fi
|
||||||
HASH=`LC_ALL=C hg parents --template="{node}"`
|
HASH=`LC_ALL=C hg parents 2>/dev/null | head -n 1 | cut -d: -f3 | cut -c1-8`
|
||||||
REV="h`echo $HASH | cut -c1-8`"
|
REV="h$HASH"
|
||||||
BRANCH=`hg branch | sed 's@^default$@@'`
|
BRANCH=`hg branch | sed 's/^default$//'`
|
||||||
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s/.*(svn r\([0-9]*\)).*/\1/"`
|
||||||
else
|
else
|
||||||
# We don't know
|
# We don't know
|
||||||
MODIFIED="1"
|
MODIFIED="1"
|
||||||
|
165
known-bugs.txt
165
known-bugs.txt
@@ -1,18 +1,5 @@
|
|||||||
OpenTTD's known bugs
|
README
|
||||||
Last updated: 2009-12-01
|
|
||||||
Release version: 0.7.4
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
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
|
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
|
that are the same as these. If you do, do not act surprised, because
|
||||||
we WILL flame you!!
|
we WILL flame you!!
|
||||||
@@ -21,137 +8,31 @@ 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
|
specifics, we welcome you to report them. React to the given bug indicated
|
||||||
by the number below on http://bugs.openttd.org.
|
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:
|
Bugs for 0.6.3
|
||||||
-- --------------------------------------
|
------------------------------------------------------------------------
|
||||||
The following bugs are known to exist in this stable release and
|
URL: http://bugs.openttd.org
|
||||||
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.
|
|
||||||
|
|
||||||
The bugs in this section all refer to a ticket in our bug tracking system
|
- 2176 Towns unconditionally flatten all land
|
||||||
that you can find at: http://bugs.openttd.org
|
- 2138 Unexpected cargo appears
|
||||||
If the bugs are closed but still listed here it means that the bug is fixed
|
- 2132 Station vehicle/service window closes even when pinned
|
||||||
and that the nightlies and next major release will not have that bug.
|
- 2129 Strings from message boxes could sometimes change (e.g. the screenshot filename)
|
||||||
|
- 2085 Vehicle list of shared vehicles without orders not possible
|
||||||
- 3198 [OSX] "Could not get system colour space" error on some Mac OS X 10.6
|
|
||||||
- 3194 [OSX] Full screen 'strobing' on some Mac OS X 10.6
|
|
||||||
- 3190 [OSX] Compiling fails on some Mac OS X 10.6
|
|
||||||
- 3159 [NewGRF] Autoreplace resets (or does not keep) value of variable F2
|
|
||||||
- 3057 Road vehicle sometimes 'forget' the need for servicing
|
|
||||||
- 3040 Not all alternatives are always shown in the "Join station" list
|
|
||||||
- 2955 With path signals depots are less likely to be visited
|
|
||||||
- 2891 Ignore signal does not keep the train running when in path signalled block till the next signal
|
|
||||||
- 2769 No offer for buying bankrupt AIs
|
|
||||||
- 2616 [NewGRF] Cloning creates vehicles with invalid subcargos
|
|
||||||
- 2613 [NewGRF] House property 15 does not work
|
|
||||||
- 2585 [OSX] OS' mouse pointer showing
|
|
||||||
- 2484 [OSX] Cannot enter CJK characters
|
|
||||||
- 2427 Vehicle owner gets paid for whole cargo feeder share
|
|
||||||
- 1944 Road vehicles not picking empty drivethrough platform
|
- 1944 Road vehicles not picking empty drivethrough platform
|
||||||
|
- 1923 Unique names not always enforced
|
||||||
|
- 1890 Airplanes copy helipcopters goto heliport order
|
||||||
|
- 1885 Almost all unserved industries die in big maps
|
||||||
|
- 1858 Industry legend in small map overwrites buttons
|
||||||
|
- 1802 Path with space in configure fails
|
||||||
|
- 1793 Inconsistent travel time for fast trains
|
||||||
- 1762 Strange Autoreplace behaviour
|
- 1762 Strange Autoreplace behaviour
|
||||||
- 1495 Long vehicles might block multistop drivethrough stations
|
- 1752 User input is not checked
|
||||||
|
- 1693 Removing road does not reset owner
|
||||||
|
- 1473 Train not going to available platform
|
||||||
|
- 1404 Spinner widget interprets one click as many
|
||||||
|
- 1264 Autoreplace for multiple NewGRF DMU sets fails
|
||||||
- 1140 [OSX] Not smooth moving map with touchpad
|
- 1140 [OSX] Not smooth moving map with touchpad
|
||||||
- 1072 Text overflows in several windows
|
- 1072 Text overflows in several windows
|
||||||
|
- 119 Clipping problems with vehicles on slopes
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
BIN
media/mainicon.ico
Normal file
BIN
media/mainicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
@@ -1,10 +1,12 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
|
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
Type=Application
|
Type=Application
|
||||||
Version=1.1
|
Version=1.1
|
||||||
Name=!!MENU_NAME!!
|
Name=OpenTTD
|
||||||
Comment=A clone of Transport Tycoon Deluxe
|
GenericName=A clone of Transport Tycoon Deluxe
|
||||||
|
Comment=A business simulation game
|
||||||
Icon=openttd
|
Icon=openttd
|
||||||
Exec=!!TTD!!
|
Exec=!!TTD!!
|
||||||
Terminal=false
|
Terminal=false
|
||||||
|
BIN
media/palette.act
Normal file
BIN
media/palette.act
Normal file
Binary file not shown.
@@ -1,121 +1,14 @@
|
|||||||
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.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 Aug 2009 00:19:43 +0200
|
|
||||||
|
|
||||||
openttd (0.7.2~RC2) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 21 Jul 2009 20:25:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.2~RC1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 15 Jul 2009 22:25:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 09 Jun 2009 01:34:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.1~RC3) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 03 Jun 2009 15:34:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.1~RC2) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Mar 2009 14:34:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.1~RC1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2009 17:34:56 +0200
|
|
||||||
|
|
||||||
openttd (0.7.0) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Apr 2009 13:37:42 +0000
|
|
||||||
|
|
||||||
openttd (0.7.0~RC2) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 23 Mar 2009 00:42:00 +0200
|
|
||||||
|
|
||||||
openttd (0.7.0~RC1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2009 00:07:00 +0200
|
|
||||||
|
|
||||||
openttd (0.7.0~beta2) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 10 Mar 2009 00:33:05 +0100
|
|
||||||
|
|
||||||
openttd (0.7.0~beta1) unstable; urgency=low
|
|
||||||
|
|
||||||
* New upstream release.
|
|
||||||
|
|
||||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Feb 2009 23:07:05 +0100
|
|
||||||
|
|
||||||
openttd (0.6.3-1) unstable; urgency=low
|
openttd (0.6.3-1) unstable; urgency=low
|
||||||
|
|
||||||
[ Matthijs Kooijman ]
|
|
||||||
* New upstream release.
|
* New upstream release.
|
||||||
|
|
||||||
[ Jordi Mallach ]
|
-- Remko Bijker <rubidium@openttd.org> Wed, 01 Oct 2008 18:48:05 +0200
|
||||||
* Add Spanish Debconf template translation, after fixing its corrupted
|
|
||||||
encoding.
|
|
||||||
|
|
||||||
-- Jordi Mallach <jordi@debian.org> Thu, 02 Oct 2008 16:59:03 +0200
|
openttd (0.6.3~rc1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Remko Bijker <rubidium@openttd.org> Mon, 22 Sep 2008 22:17:05 +0200
|
||||||
|
|
||||||
openttd (0.6.2-1) unstable; urgency=low
|
openttd (0.6.2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@ clean:
|
|||||||
# We check for Makefile presence, because clean is called at the
|
# We check for Makefile presence, because clean is called at the
|
||||||
# start of the build process (before configure) where we don't
|
# start of the build process (before configure) where we don't
|
||||||
# have a Makefile yet.
|
# have a Makefile yet.
|
||||||
[ ! -f Makefile ] || $(MAKE) mrproper
|
[ ! -f Makefile ] || $(MAKE) distclean
|
||||||
|
|
||||||
dh_clean
|
dh_clean
|
||||||
|
|
||||||
|
339
os/dos/copying
339
os/dos/copying
@@ -1,339 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
||||||
675 Mass Ave, Cambridge, MA 02139, 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
|
|
||||||
|
|
||||||
Appendix: 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., 675 Mass Ave, Cambridge, MA 02139, 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.
|
|
@@ -1,48 +0,0 @@
|
|||||||
This is the file "copying.dj". It does NOT apply to any sources or
|
|
||||||
binaries copyrighted by UCB Berkeley, the Free Software Foundation, or
|
|
||||||
any other agency besides DJ Delorie and others who have agreed to
|
|
||||||
allow their sources to be distributed under these terms.
|
|
||||||
|
|
||||||
Copyright Information for sources and executables that are marked
|
|
||||||
Copyright (C) DJ Delorie
|
|
||||||
7 Kim Lane
|
|
||||||
Rochester NH 03867-2954
|
|
||||||
|
|
||||||
This document is Copyright (C) DJ Delorie and may be distributed
|
|
||||||
verbatim, but changing it is not allowed.
|
|
||||||
|
|
||||||
Source code copyright DJ Delorie is distributed under the terms of the
|
|
||||||
GNU General Public Licence, with the following exceptions:
|
|
||||||
|
|
||||||
* Sources used to build crt0.o, gcrt0.o, libc.a, libdbg.a, and
|
|
||||||
libemu.a are distributed under the terms of the GNU Library General
|
|
||||||
Public License, rather than the GNU GPL.
|
|
||||||
|
|
||||||
* Any existing copyright or authorship information in any given source
|
|
||||||
file must remain intact. If you modify a source file, a notice to that
|
|
||||||
effect must be added to the authorship information in the source file.
|
|
||||||
|
|
||||||
* Runtime binaries, as provided by DJ in DJGPP, may be distributed
|
|
||||||
without sources ONLY if the recipient is given sufficient information
|
|
||||||
to obtain a copy of djgpp themselves. This primarily applies to
|
|
||||||
go32-v2.exe, emu387.dxe, and stubedit.exe.
|
|
||||||
|
|
||||||
* Runtime objects and libraries, as provided by DJ in DJGPP, when
|
|
||||||
linked into an application, may be distributed without sources ONLY
|
|
||||||
if the recipient is given sufficient information to obtain a copy of
|
|
||||||
djgpp themselves. This primarily applies to crt0.o and libc.a.
|
|
||||||
|
|
||||||
-----
|
|
||||||
|
|
||||||
Changes to source code copyright BSD, FSF, or others, by DJ Delorie
|
|
||||||
fall under the terms of the original copyright. Such files usually
|
|
||||||
have multiple copyright notices in them.
|
|
||||||
|
|
||||||
A copy of the files "COPYING" and "COPYING.LIB" are included with this
|
|
||||||
document. If you did not receive a copy of these files, you may
|
|
||||||
obtain one from whence this document was obtained, or by writing:
|
|
||||||
|
|
||||||
Free Software Foundation
|
|
||||||
59 Temple Place - Suite 330
|
|
||||||
Boston, MA 02111-1307
|
|
||||||
USA
|
|
@@ -1,481 +0,0 @@
|
|||||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
|
||||||
675 Mass Ave, Cambridge, MA 02139, USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
[This is the first released version of the library GPL. It is
|
|
||||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
Licenses are intended to guarantee your freedom to share and change
|
|
||||||
free software--to make sure the software is free for all its users.
|
|
||||||
|
|
||||||
This license, the Library General Public License, applies to some
|
|
||||||
specially designated Free Software Foundation software, and to any
|
|
||||||
other libraries whose authors decide to use it. You can use it for
|
|
||||||
your libraries, 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 library, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of the library, whether gratis
|
|
||||||
or for a fee, you must give the recipients all the rights that we gave
|
|
||||||
you. You must make sure that they, too, receive or can get the source
|
|
||||||
code. If you link a program with the library, you must provide
|
|
||||||
complete object files to the recipients so that they can relink them
|
|
||||||
with the library, after making changes to the library and recompiling
|
|
||||||
it. And you must show them these terms so they know their rights.
|
|
||||||
|
|
||||||
Our method of protecting your rights has two steps: (1) copyright
|
|
||||||
the library, and (2) offer you this license which gives you legal
|
|
||||||
permission to copy, distribute and/or modify the library.
|
|
||||||
|
|
||||||
Also, for each distributor's protection, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
library. If the library is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original
|
|
||||||
version, 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 companies distributing free
|
|
||||||
software will individually obtain patent licenses, thus in effect
|
|
||||||
transforming the program into proprietary software. To prevent this,
|
|
||||||
we have made it clear that any patent must be licensed for everyone's
|
|
||||||
free use or not licensed at all.
|
|
||||||
|
|
||||||
Most GNU software, including some libraries, is covered by the ordinary
|
|
||||||
GNU General Public License, which was designed for utility programs. This
|
|
||||||
license, the GNU Library General Public License, applies to certain
|
|
||||||
designated libraries. This license is quite different from the ordinary
|
|
||||||
one; be sure to read it in full, and don't assume that anything in it is
|
|
||||||
the same as in the ordinary license.
|
|
||||||
|
|
||||||
The reason we have a separate public license for some libraries is that
|
|
||||||
they blur the distinction we usually make between modifying or adding to a
|
|
||||||
program and simply using it. Linking a program with a library, without
|
|
||||||
changing the library, is in some sense simply using the library, and is
|
|
||||||
analogous to running a utility program or application program. However, in
|
|
||||||
a textual and legal sense, the linked executable is a combined work, a
|
|
||||||
derivative of the original library, and the ordinary General Public License
|
|
||||||
treats it as such.
|
|
||||||
|
|
||||||
Because of this blurred distinction, using the ordinary General
|
|
||||||
Public License for libraries did not effectively promote software
|
|
||||||
sharing, because most developers did not use the libraries. We
|
|
||||||
concluded that weaker conditions might promote sharing better.
|
|
||||||
|
|
||||||
However, unrestricted linking of non-free programs would deprive the
|
|
||||||
users of those programs of all benefit from the free status of the
|
|
||||||
libraries themselves. This Library General Public License is intended to
|
|
||||||
permit developers of non-free programs to use free libraries, while
|
|
||||||
preserving your freedom as a user of such programs to change the free
|
|
||||||
libraries that are incorporated in them. (We have not seen how to achieve
|
|
||||||
this as regards changes in header files, but we have achieved it as regards
|
|
||||||
changes in the actual functions of the Library.) The hope is that this
|
|
||||||
will lead to faster development of free libraries.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow. Pay close attention to the difference between a
|
|
||||||
"work based on the library" and a "work that uses the library". The
|
|
||||||
former contains code derived from the library, while the latter only
|
|
||||||
works together with the library.
|
|
||||||
|
|
||||||
Note that it is possible for a library to be covered by the ordinary
|
|
||||||
General Public License rather than by this special one.
|
|
||||||
|
|
||||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License Agreement applies to any software library which
|
|
||||||
contains a notice placed by the copyright holder or other authorized
|
|
||||||
party saying it may be distributed under the terms of this Library
|
|
||||||
General Public License (also called "this License"). Each licensee is
|
|
||||||
addressed as "you".
|
|
||||||
|
|
||||||
A "library" means a collection of software functions and/or data
|
|
||||||
prepared so as to be conveniently linked with application programs
|
|
||||||
(which use some of those functions and data) to form executables.
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or work
|
|
||||||
which has been distributed under these terms. A "work based on the
|
|
||||||
Library" means either the Library or any derivative work under
|
|
||||||
copyright law: that is to say, a work containing the Library or a
|
|
||||||
portion of it, either verbatim or with modifications and/or translated
|
|
||||||
straightforwardly into another language. (Hereinafter, translation is
|
|
||||||
included without limitation in the term "modification".)
|
|
||||||
|
|
||||||
"Source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For a library, 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 library.
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running a program using the Library is not restricted, and output from
|
|
||||||
such a program is covered only if its contents constitute a work based
|
|
||||||
on the Library (independent of the use of the Library in a tool for
|
|
||||||
writing it). Whether that is true depends on what the Library does
|
|
||||||
and what the program that uses the Library does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Library's
|
|
||||||
complete 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 distribute a copy of this License along with the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
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 Library or any portion
|
|
||||||
of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
|
|
||||||
|
|
||||||
b) You must cause the files modified to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
c) You must cause the whole of the work to be licensed at no
|
|
||||||
charge to all third parties under the terms of this License.
|
|
||||||
|
|
||||||
d) If a facility in the modified Library refers to a function or a
|
|
||||||
table of data to be supplied by an application program that uses
|
|
||||||
the facility, other than as an argument passed when the facility
|
|
||||||
is invoked, then you must make a good faith effort to ensure that,
|
|
||||||
in the event an application does not supply such function or
|
|
||||||
table, the facility still operates, and performs whatever part of
|
|
||||||
its purpose remains meaningful.
|
|
||||||
|
|
||||||
(For example, a function in a library to compute square roots has
|
|
||||||
a purpose that is entirely well-defined independent of the
|
|
||||||
application. Therefore, Subsection 2d requires that any
|
|
||||||
application-supplied function or table used by this function must
|
|
||||||
be optional: if the application does not supply it, the square
|
|
||||||
root function must still compute square roots.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Library,
|
|
||||||
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 Library, 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 Library.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Library
|
|
||||||
with the Library (or with a work based on the Library) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
|
||||||
License instead of this License to a given copy of the Library. To do
|
|
||||||
this, you must alter all the notices that refer to this License, so
|
|
||||||
that they refer to the ordinary GNU General Public License, version 2,
|
|
||||||
instead of to this License. (If a newer version than version 2 of the
|
|
||||||
ordinary GNU General Public License has appeared, then you can specify
|
|
||||||
that version instead if you wish.) Do not make any other change in
|
|
||||||
these notices.
|
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
|
||||||
that copy, so the ordinary GNU General Public License applies to all
|
|
||||||
subsequent copies and derivative works made from that copy.
|
|
||||||
|
|
||||||
This option is useful when you wish to copy part of the code of
|
|
||||||
the Library into a program that is not a library.
|
|
||||||
|
|
||||||
4. You may copy and distribute the Library (or a portion or
|
|
||||||
derivative of it, under Section 2) in object code or executable form
|
|
||||||
under the terms of Sections 1 and 2 above provided that you 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.
|
|
||||||
|
|
||||||
If distribution of 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 satisfies the requirement to
|
|
||||||
distribute the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
5. A program that contains no derivative of any portion of the
|
|
||||||
Library, but is designed to work with the Library by being compiled or
|
|
||||||
linked with it, is called a "work that uses the Library". Such a
|
|
||||||
work, in isolation, is not a derivative work of the Library, and
|
|
||||||
therefore falls outside the scope of this License.
|
|
||||||
|
|
||||||
However, linking a "work that uses the Library" with the Library
|
|
||||||
creates an executable that is a derivative of the Library (because it
|
|
||||||
contains portions of the Library), rather than a "work that uses the
|
|
||||||
library". The executable is therefore covered by this License.
|
|
||||||
Section 6 states terms for distribution of such executables.
|
|
||||||
|
|
||||||
When a "work that uses the Library" uses material from a header file
|
|
||||||
that is part of the Library, the object code for the work may be a
|
|
||||||
derivative work of the Library even though the source code is not.
|
|
||||||
Whether this is true is especially significant if the work can be
|
|
||||||
linked without the Library, or if the work is itself a library. The
|
|
||||||
threshold for this to be true is not precisely defined by law.
|
|
||||||
|
|
||||||
If such an object file uses only numerical parameters, data
|
|
||||||
structure layouts and accessors, and small macros and small inline
|
|
||||||
functions (ten lines or less in length), then the use of the object
|
|
||||||
file is unrestricted, regardless of whether it is legally a derivative
|
|
||||||
work. (Executables containing this object code plus portions of the
|
|
||||||
Library will still fall under Section 6.)
|
|
||||||
|
|
||||||
Otherwise, if the work is a derivative of the Library, you may
|
|
||||||
distribute the object code for the work under the terms of Section 6.
|
|
||||||
Any executables containing that work also fall under Section 6,
|
|
||||||
whether or not they are linked directly with the Library itself.
|
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also compile or
|
|
||||||
link a "work that uses the Library" with the Library to produce a
|
|
||||||
work containing portions of the Library, and distribute that work
|
|
||||||
under terms of your choice, provided that the terms permit
|
|
||||||
modification of the work for the customer's own use and reverse
|
|
||||||
engineering for debugging such modifications.
|
|
||||||
|
|
||||||
You must give prominent notice with each copy of the work that the
|
|
||||||
Library is used in it and that the Library and its use are covered by
|
|
||||||
this License. You must supply a copy of this License. If the work
|
|
||||||
during execution displays copyright notices, you must include the
|
|
||||||
copyright notice for the Library among them, as well as a reference
|
|
||||||
directing the user to the copy of this License. Also, you must do one
|
|
||||||
of these things:
|
|
||||||
|
|
||||||
a) Accompany the work with the complete corresponding
|
|
||||||
machine-readable source code for the Library including whatever
|
|
||||||
changes were used in the work (which must be distributed under
|
|
||||||
Sections 1 and 2 above); and, if the work is an executable linked
|
|
||||||
with the Library, with the complete machine-readable "work that
|
|
||||||
uses the Library", as object code and/or source code, so that the
|
|
||||||
user can modify the Library and then relink to produce a modified
|
|
||||||
executable containing the modified Library. (It is understood
|
|
||||||
that the user who changes the contents of definitions files in the
|
|
||||||
Library will not necessarily be able to recompile the application
|
|
||||||
to use the modified definitions.)
|
|
||||||
|
|
||||||
b) Accompany the work with a written offer, valid for at
|
|
||||||
least three years, to give the same user the materials
|
|
||||||
specified in Subsection 6a, above, for a charge no more
|
|
||||||
than the cost of performing this distribution.
|
|
||||||
|
|
||||||
c) If distribution of the work is made by offering access to copy
|
|
||||||
from a designated place, offer equivalent access to copy the above
|
|
||||||
specified materials from the same place.
|
|
||||||
|
|
||||||
d) Verify that the user has already received a copy of these
|
|
||||||
materials or that you have already sent this user a copy.
|
|
||||||
|
|
||||||
For an executable, the required form of the "work that uses the
|
|
||||||
Library" must include any data and utility programs needed for
|
|
||||||
reproducing the executable from it. 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.
|
|
||||||
|
|
||||||
It may happen that this requirement contradicts the license
|
|
||||||
restrictions of other proprietary libraries that do not normally
|
|
||||||
accompany the operating system. Such a contradiction means you cannot
|
|
||||||
use both them and the Library together in an executable that you
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
|
||||||
Library side-by-side in a single library together with other library
|
|
||||||
facilities not covered by this License, and distribute such a combined
|
|
||||||
library, provided that the separate distribution of the work based on
|
|
||||||
the Library and of the other library facilities is otherwise
|
|
||||||
permitted, and provided that you do these two things:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work
|
|
||||||
based on the Library, uncombined with any other library
|
|
||||||
facilities. This must be distributed under the terms of the
|
|
||||||
Sections above.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library of the fact
|
|
||||||
that part of it is a work based on the Library, and explaining
|
|
||||||
where to find the accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
8. You may not copy, modify, sublicense, link with, or distribute
|
|
||||||
the Library except as expressly provided under this License. Any
|
|
||||||
attempt otherwise to copy, modify, sublicense, link with, or
|
|
||||||
distribute the Library 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.
|
|
||||||
|
|
||||||
9. 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 Library or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Library (or any work based on the
|
|
||||||
Library), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Library or works based on it.
|
|
||||||
|
|
||||||
10. Each time you redistribute the Library (or any work based on the
|
|
||||||
Library), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute, link with or modify the Library
|
|
||||||
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.
|
|
||||||
|
|
||||||
11. 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 Library at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Library 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 Library.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
12. If the distribution and/or use of the Library is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Library 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.
|
|
||||||
|
|
||||||
13. The Free Software Foundation may publish revised and/or new
|
|
||||||
versions of the Library 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 Library
|
|
||||||
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 Library does not specify a
|
|
||||||
license version number, you may choose any version ever published by
|
|
||||||
the Free Software Foundation.
|
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
|
||||||
programs whose distribution conditions are incompatible with these,
|
|
||||||
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
|
|
||||||
|
|
||||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
|
||||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
||||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
|
||||||
OTHER PARTIES PROVIDE THE LIBRARY "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
|
|
||||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. 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 LIBRARY 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
|
|
||||||
LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
|
||||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
||||||
DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
Appendix: How to Apply These Terms to Your New Libraries
|
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
|
||||||
possible use to the public, we recommend making it free software that
|
|
||||||
everyone can redistribute and change. You can do so by permitting
|
|
||||||
redistribution under these terms (or, alternatively, under the terms of the
|
|
||||||
ordinary General Public License).
|
|
||||||
|
|
||||||
To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
That's all there is to it!
|
|
Binary file not shown.
@@ -1,173 +0,0 @@
|
|||||||
CWSDPMI is Copyright (C) 1995-2000 Charles W Sandmann (sandmann@clio.rice.edu)
|
|
||||||
1206 Braelinn, Sugar Land, TX 77479
|
|
||||||
|
|
||||||
This is release 5. The files in this binary distribution may be redistributed
|
|
||||||
under the GPL (with source) or without the source code provided:
|
|
||||||
|
|
||||||
* CWSDPMI.EXE or CWSDPR0.EXE are not modified in any way except via CWSPARAM.
|
|
||||||
|
|
||||||
* CWSDSTUB.EXE internal contents are not modified in any way except via
|
|
||||||
CWSPARAM or STUBEDIT. It may have a COFF image plus data appended to it.
|
|
||||||
|
|
||||||
* Notice to users that they have the right to receive the source code and/or
|
|
||||||
binary updates for CWSDPMI. Distributors should indicate a site for the
|
|
||||||
source in their documentation.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
CWSDPMI was written to provide DPMI services for V2 of DJGPP. It currently
|
|
||||||
does not support 16-bit DPMI applications, or DPMI applications requiring a
|
|
||||||
built in extender. It does support virtual memory and hardware interrupt
|
|
||||||
reflection from real mode to protected mode. DJGPP V1.1x and RSX applications
|
|
||||||
will also run using this server, which can be used to provide enhanced control
|
|
||||||
over hardware interrupts. Some DPMI 1.0 extensions (0x506, 0x507, 0x508) have
|
|
||||||
been implemented.
|
|
||||||
|
|
||||||
CWSDPR0.EXE is an alternate version which runs at ring 0 with virtual memory
|
|
||||||
disabled. It may be used if access to ring-0 features are desired. It
|
|
||||||
currently does not switch stacks on HW interrupts, so some DJGPP features
|
|
||||||
such as SIGINT and SIGFPE are not supported and will generate a double fault
|
|
||||||
or stack fault error (to be fixed someday).
|
|
||||||
|
|
||||||
CWSDSTUB.EXE is a stub loader image for DJGPP which includes CWSDPMI. This
|
|
||||||
allows single executable image distributions. You can use the EXE2COFF
|
|
||||||
program and COPY /B CWSDSTUB.EXE+yourimage yourimage.exe to create a
|
|
||||||
standalone executable image.
|
|
||||||
|
|
||||||
Some of the internal tuning and configuration parameters may be modified
|
|
||||||
in the image using CWSPARAM.EXE (see CWSPARAM.DOC).
|
|
||||||
|
|
||||||
If you want to use CWSDPMI with DJGPP, you expand the distribution into the
|
|
||||||
DJGPP directory tree. CWSDPMI.EXE will be put in the BIN directory with your
|
|
||||||
DJGPP images and it will automatically be loaded when they run.
|
|
||||||
|
|
||||||
Directions for use (server can be used in either of two different ways):
|
|
||||||
|
|
||||||
1) "cwsdpmi" alone with no parameters will terminate and stay resident
|
|
||||||
FOR A SINGLE DPMI PROCESS. This means it unloads itself when your
|
|
||||||
DPMI application exits. This mode is useful in software which needs
|
|
||||||
DPMI services, since CWSDPMI can be exec'ed and then will unload on exit.
|
|
||||||
|
|
||||||
2) "cwsdpmi -p" will terminate and stay resident until you remove it.
|
|
||||||
It can be loaded into UMBs with LH. "cwsdpmi -u" will unload the TSR.
|
|
||||||
|
|
||||||
3) The file used for virtual memory swapping, if desired, is controlled
|
|
||||||
by the "-sc:\cwsdpmi.swp" syntax on the command line. You must specify
|
|
||||||
either a file with full disk/directory syntax, or "-s-" which disables
|
|
||||||
virtual memory.
|
|
||||||
|
|
||||||
4) The default swap file name is c:\cwsdpmi.swp, but this can be changed
|
|
||||||
with the CWSPARAM image, as can some other parameters.
|
|
||||||
|
|
||||||
5) You can disable the DPMI 1.0 extensions by starting the image with the
|
|
||||||
"cwsdpmi -x" syntax. This feature allows you to run programs developed
|
|
||||||
under other DPMI providers which do not behave properly with these
|
|
||||||
extensions enabled (typically use of NULL pointers).
|
|
||||||
|
|
||||||
I would like to give special thanks to DJ Delorie who wrote the original
|
|
||||||
GO32 code on which CWSDPMI is based. Morten Welinder also provided and
|
|
||||||
improved much of the code in this program.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
This section contains a list of the error messages you might see out of
|
|
||||||
CWSDPMI and some details on what they mean.
|
|
||||||
|
|
||||||
Exceptions are only handled by CWSDPMI if the application does not establish
|
|
||||||
an exception handler, exceptions nest 5 deep, or the error is particularly bad:
|
|
||||||
|
|
||||||
"Page fault" -
|
|
||||||
1) an illegal page fault happens in a RMCB or HW interrupt, (lock all pages!)
|
|
||||||
2) all available pages have been locked,
|
|
||||||
3) the application is using non-committed pages for null pointer protection.
|
|
||||||
"Double Fault" - multiple exceptions occurred
|
|
||||||
"Invalid TSS" - typically due to RMCB or HW interrupt being called after the
|
|
||||||
selectors/memory have been deallocated (remember to reset the mouse)
|
|
||||||
"General Protection Fault" - bad parameter sent to a DPMI call
|
|
||||||
|
|
||||||
"80386 required."
|
|
||||||
|
|
||||||
Since 80286 and lesser processors don't have the hardware necessary to
|
|
||||||
run CWSDPMI. No workaround, upgrade.
|
|
||||||
|
|
||||||
"DOS 3 required."
|
|
||||||
|
|
||||||
A few interrupts are used which need DOS 3.0 or higher. I don't expect to
|
|
||||||
ever see this message, since 80386 machines were introduced after DOS 3.0
|
|
||||||
and that check is made first.
|
|
||||||
|
|
||||||
"CWSDPMI V0.90+ (r5) Copyright (C) 2000 CW Sandmann ABSOLUTELY NO WARRANTY"
|
|
||||||
|
|
||||||
An informational message displayed if the program is not run in one-pass mode.
|
|
||||||
|
|
||||||
"Protected mode not accessible."
|
|
||||||
|
|
||||||
This message should only be displayed if running CWSDPMI in a protected
|
|
||||||
environment with no access to protected mode. In this case, DPMI should
|
|
||||||
already be available and CWSDPMI would not be needed. This might happen if
|
|
||||||
a 16-bit DPMI client is loaded and a DJGPP image attempts to load CWSDPMI
|
|
||||||
to provide 32-bit DPMI services under Windows.
|
|
||||||
|
|
||||||
"Warning: cannot open swap file c:\cwsdpmi.swp"
|
|
||||||
|
|
||||||
Maybe you are out of file handles, or the swap file name is incorrectly
|
|
||||||
specified in the image (change the name with cwsparam).
|
|
||||||
|
|
||||||
"No swap space!"
|
|
||||||
|
|
||||||
This message means you tried to use more paging file than CWSDPMI was
|
|
||||||
configured to handle. Since this is protected against in the memory
|
|
||||||
allocation code, you should never see this message.
|
|
||||||
|
|
||||||
"Swap disk full!"
|
|
||||||
|
|
||||||
This means the paging file could not be expanded when trying to page
|
|
||||||
memory out to disk. This would normally not be seen, unless you are
|
|
||||||
writing output to the same disk which holds the paging file. Decrease
|
|
||||||
the amount of memory your DPMI application is using or free up disk space.
|
|
||||||
|
|
||||||
"Interrupt 0x??"
|
|
||||||
|
|
||||||
Your application tried to call an interrupt from protected mode which
|
|
||||||
normally shouldn't be called (something like a data pointer). If the
|
|
||||||
request was allowed to continue it would likely hang your machine. If you
|
|
||||||
see this message and think the interrupt should be allowed to continue, let
|
|
||||||
me know.
|
|
||||||
|
|
||||||
"Error: Using XMS switched CPU into V86 mode."
|
|
||||||
|
|
||||||
This message might be seen if you have your memory manager in AUTO mode. The
|
|
||||||
only workaround in this case is to stop using AUTO mode.
|
|
||||||
|
|
||||||
"Error: could not allocate page table memory"
|
|
||||||
|
|
||||||
The page table memory (a minimum of 16Kb) is allocated from conventional
|
|
||||||
memory (either in the 640Kb region or UMBs). If CWSDPMI cannot allocate the
|
|
||||||
minimum necessary memory, you would see this message. Free up some
|
|
||||||
conventional memory. You may also see this message if a page directory needs
|
|
||||||
to be faulted in, and there are no available pages. This means too many pages
|
|
||||||
have been locked for the allocated page tables available. While CWSDPMI
|
|
||||||
tries to dynamically allocate these if needed, this effort failed. You need
|
|
||||||
to increase the number of page tables with CWSPARAM, or increase the amount
|
|
||||||
of free conventional memory if it is low. If the application which calls
|
|
||||||
CWSDPMI internally manages all the DOS memory, the page tables may need to
|
|
||||||
be pre-allocated at DPMI startup time (if this is needed, try using the
|
|
||||||
run option flag 2 in cwsparam).
|
|
||||||
|
|
||||||
"16-bit DPMI unsupported."
|
|
||||||
|
|
||||||
CWSDPMI is a 32-bit only DPMI server. Ideally, on the request to enter DPMI's
|
|
||||||
PM with a 16-bit request, we would just fail the call setting the carry bit
|
|
||||||
like the DPMI specification describes. Some buggy 16-bit compiler tools don't
|
|
||||||
check the return status and will hang the machine in this case. So, I issue
|
|
||||||
an error message and exit the image instead.
|
|
||||||
|
|
||||||
"Descriptors exhausted."
|
|
||||||
|
|
||||||
An attempt to nest a DPMI client failed in the setup phase due to insufficient
|
|
||||||
free selectors in the LDT.
|
|
||||||
|
|
||||||
"CWSDPMI not removed"
|
|
||||||
|
|
||||||
When the -u parameter is specified, if DPMI is not detected this message is
|
|
||||||
printed. Informational.
|
|
Binary file not shown.
@@ -1,94 +0,0 @@
|
|||||||
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
|
|
||||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
|
||||||
/* Updated 2008 to use fread/fopen and friends instead of read/open so it compiles with GCC on Unix (Rubidium) */
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
exe2aout(char *fname)
|
|
||||||
{
|
|
||||||
unsigned short header[3];
|
|
||||||
FILE *ifile;
|
|
||||||
FILE *ofile;
|
|
||||||
char buf[4096];
|
|
||||||
int rbytes;
|
|
||||||
char *dot = strrchr(fname, '.');
|
|
||||||
if (!dot || strlen(dot) != 4
|
|
||||||
|| tolower(dot[1]) != 'e'
|
|
||||||
|| tolower(dot[2]) != 'x'
|
|
||||||
|| tolower(dot[3]) != 'e')
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: Arguments MUST end with a .exe extension\n", fname);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ifile = fopen(fname, "rb");
|
|
||||||
if (!ifile)
|
|
||||||
{
|
|
||||||
perror(fname);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
fread(header, sizeof(header), 1, ifile);
|
|
||||||
if (header[0] == 0x5a4d)
|
|
||||||
{
|
|
||||||
long header_offset = (long)header[2]*512L;
|
|
||||||
if (header[1])
|
|
||||||
header_offset += (long)header[1] - 512L;
|
|
||||||
fseek(ifile, header_offset, SEEK_SET);
|
|
||||||
header[0] = 0;
|
|
||||||
fread(header, sizeof(header), 1, ifile);
|
|
||||||
if ((header[0] != 0x010b) && (header[0] != 0x014c))
|
|
||||||
{
|
|
||||||
fprintf(stderr, "`%s' does not have a COFF/AOUT program appended to it\n", fname);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
fseek(ifile, header_offset, SEEK_SET);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf(stderr, "`%s' is not an .EXE file\n", fname);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
*dot = 0;
|
|
||||||
ofile = fopen(fname, "w+b");
|
|
||||||
if (!ofile)
|
|
||||||
{
|
|
||||||
perror(fname);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ((rbytes=fread(buf, 1, 4096, ifile)) > 0)
|
|
||||||
{
|
|
||||||
int wb = fwrite(buf, 1, rbytes, ofile);
|
|
||||||
if (wb < 0)
|
|
||||||
{
|
|
||||||
perror(fname);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (wb < rbytes)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "`%s': disk full\n", fname);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(ifile);
|
|
||||||
fclose(ofile);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
if (argc == 1) printf("Usage: %s <exename>", argv[0]);
|
|
||||||
for (i=1; i<argc; i++)
|
|
||||||
exe2aout(argv[i]);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
cd `dirname $0`
|
|
||||||
cc -o exe2coff exe2coff.c || exit
|
|
||||||
cp $1 binary.exe || exit
|
|
||||||
./exe2coff binary.exe || exit
|
|
||||||
cat cwsdstub.exe binary > binary.exe || exit
|
|
||||||
mv binary.exe $1
|
|
||||||
rm binary exe2coff
|
|
@@ -1,7 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
# sets VERSION to the value if RELEASE if there are any,
|
# sets VERSION to the value if RELEASE if there are any,
|
||||||
# otherwise it sets VERSION to revision number
|
# otherwise it sets VERSION to revision number
|
||||||
if [ "$3" ]; then
|
if [ "$3" ]; then
|
||||||
|
@@ -1,201 +1,75 @@
|
|||||||
# $Id$
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# spec file for the openttd rpm package
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007-2009 The OpenTTD developers
|
# spec file for package openttd (trunk)
|
||||||
#
|
#
|
||||||
|
# Copyright (c) 2007 The OpenTTD team.
|
||||||
# This file and all modifications and additions to the pristine
|
# This file and all modifications and additions to the pristine
|
||||||
# package are under the same license as the package itself
|
# 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
|
Name: openttd
|
||||||
Version: 0.7.4
|
Version: svn
|
||||||
Release: 1%{?dist}
|
Release: head
|
||||||
|
Group: Applications/Games
|
||||||
Group: Amusements/Games
|
Source: %{name}-%{version}-%{release}.tar.gz
|
||||||
License: GPLv2
|
License: GPL
|
||||||
URL: http://www.openttd.org
|
URL: http://www.openttd.org
|
||||||
|
Packager: Denis Burlaka <burlaka@yandex.ru>
|
||||||
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
|
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
|
||||||
|
Requires: SDL zlib libpng freetype2 fontconfig
|
||||||
Source: %{name}-%{version}-source.tar.bz2
|
BuildRequires: gcc SDL-devel zlib-devel libpng-devel fontconfig-devel
|
||||||
|
%if %{_vendor}=="suse"
|
||||||
Requires: fontconfig
|
|
||||||
Requires: SDL
|
|
||||||
Requires: zlib
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: fontconfig-devel
|
|
||||||
BuildRequires: libpng-devel
|
|
||||||
BuildRequires: libicu-devel
|
|
||||||
BuildRequires: SDL-devel
|
|
||||||
BuildRequires: zlib-devel
|
|
||||||
# vendor specific dependencies
|
|
||||||
%if %{_vendor}=="alt"
|
|
||||||
Requires: freetype
|
|
||||||
BuildRequires: freetype-devel
|
|
||||||
%endif
|
|
||||||
%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
|
|
||||||
Requires: freetype
|
|
||||||
BuildRequires: freetype-devel
|
|
||||||
BuildRequires: desktop-file-utils
|
|
||||||
%endif
|
|
||||||
%if %{_vendor}=="suse" || %{_vendor}=="mandriva"
|
|
||||||
Requires: freetype2
|
|
||||||
BuildRequires: freetype2-devel
|
BuildRequires: freetype2-devel
|
||||||
%endif
|
%endif
|
||||||
%if %{_vendor}=="suse"
|
%if %{_vendor}=="fedora"
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: freetype-devel
|
||||||
%endif
|
%endif
|
||||||
|
%if %{_vendor}=="mandriva"
|
||||||
# recommends works for suse (not sles9) and mandriva, only
|
BuildRequires: libfreetype6-devel
|
||||||
%if 0%{?suse_version} > 910 || %{_vendor}=="mandriva"
|
|
||||||
Recommends: opengfx
|
|
||||||
# for 0.8.0
|
|
||||||
#Recommends: opensfx
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||||
|
Prefix: /usr
|
||||||
|
|
||||||
%description
|
%description
|
||||||
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
|
OpenTTD is a clone of the Microprose game "Transport Tycoon Deluxe", a popular game originally written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.
|
||||||
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.
|
|
||||||
|
|
||||||
OpenTTD is licensed under the GNU General Public License version 2.0. For more
|
OpenTTD is licensed under the GNU General Public License version 2.0. For more information, see the file 'COPYING' included with every release and source download of the game.
|
||||||
information, see the file 'COPYING' included with every release and source
|
|
||||||
download of the game.
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# suse sle <10 has no support for makedepend
|
./configure --prefix-dir=%{prefix} --binary-dir=bin --install-dir="$RPM_BUILD_ROOT"
|
||||||
%if 0%{?sles_version} == 9 || 0%{?sles_version} == 10
|
make
|
||||||
%define do_makedepend 0
|
|
||||||
%else
|
|
||||||
%define do_makedepend 1
|
|
||||||
%endif
|
|
||||||
./configure \
|
|
||||||
--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;" \
|
|
||||||
# --menu-name="OpenTTD" \
|
|
||||||
# --doc-dir="share\doc\%{name}" \
|
|
||||||
# --icon-dir="share/pixmaps" \
|
|
||||||
# --icon-theme-dir="share/icons/hicolor" \
|
|
||||||
# --man-dir="share/man/man6" \
|
|
||||||
# --menu-dir="share/applications"
|
|
||||||
|
|
||||||
make %{?_smp_mflags}
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install INSTALL_DIR="%{buildroot}"
|
make ROOT="$RPM_BUILD_ROOT" install
|
||||||
|
|
||||||
# Validate menu entrys (vendor specific)
|
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications
|
||||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
cat << EOF > $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop
|
||||||
desktop-file-install \
|
|
||||||
--vendor="%{_vendor}" \
|
|
||||||
--remove-key Version \
|
|
||||||
--dir="%{buildroot}/%{_datadir}/applications/" \
|
|
||||||
"%{buildroot}/%{_datadir}/applications/%{name}.desktop" \
|
|
||||||
# --delete-original
|
|
||||||
%endif
|
|
||||||
%if %{_vendor}=="suse"
|
|
||||||
%__cat > %{name}.desktop << EOF
|
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
|
Categories=Games;
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
|
Exec=/usr/bin/openttd
|
||||||
Name=OpenTTD
|
Name=OpenTTD
|
||||||
Comment=OpenTTD - A clone of the Microprose game 'Transport Tycoon Deluxe'
|
Icon=openttd.32
|
||||||
GenericName=OpenTTD
|
|
||||||
Type=Application
|
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Exec=%{name}
|
Type=Application
|
||||||
Icon=%{name}
|
|
||||||
Categories=Game;StrategyGame;
|
|
||||||
EOF
|
EOF
|
||||||
%suse_update_desktop_file -i %{name} Game StrategyGame
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
#rm -rf "%{buildroot}"
|
rm -Rf "$RPM_BUILD_ROOT"
|
||||||
|
|
||||||
%post
|
|
||||||
# Update the icon cache (vendor specific)
|
|
||||||
%if %{_vendor}=="mandriva"
|
|
||||||
%update_icon_cache hicolor
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
|
||||||
touch --no-create %{_datadir}/icons/hicolor
|
|
||||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
|
||||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%postun
|
|
||||||
# Update the icon cache (vendor specific)
|
|
||||||
%if %{_vendor}=="mandriva"
|
|
||||||
%update_icon_cache hicolor
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
|
||||||
touch --no-create %{_datadir}/icons/hicolor
|
|
||||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
|
||||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-, root, games, -)
|
%dir %{_datadir}/games/%{name}
|
||||||
%dir %{_datadir}/doc/%{name}
|
%dir %{_datadir}/games/%{name}/lang
|
||||||
%dir %{_datadir}/%{name}
|
%dir %{_datadir}/games/%{name}/data
|
||||||
%dir %{_datadir}/%{name}/lang
|
%dir %{_datadir}/games/%{name}/gm
|
||||||
%dir %{_datadir}/%{name}/data
|
%dir %{_datadir}/games/%{name}/docs
|
||||||
%dir %{_datadir}/%{name}/gm
|
%dir %{_datadir}/pixmaps
|
||||||
%dir %{_datadir}/%{name}/scripts
|
%defattr(644, root, games, 755)
|
||||||
%attr(755, root, games) %{_bindir}/%{name}
|
%attr(755, root, games) %{_bindir}/%{name}
|
||||||
%{_datadir}/doc/%{name}/*
|
%{_datadir}/games/%{name}/lang/*
|
||||||
%{_datadir}/%{name}/lang/*
|
%{_datadir}/games/%{name}/data/*
|
||||||
%{_datadir}/%{name}/data/*
|
%{_datadir}/games/%{name}/docs/*
|
||||||
%{_datadir}/%{name}/scripts/*
|
|
||||||
%{_datadir}/applications/*%{name}.desktop
|
|
||||||
%{_datadir}/pixmaps/*
|
%{_datadir}/pixmaps/*
|
||||||
%{_datadir}/icons/*
|
%{_datadir}/applications/%{name}.desktop
|
||||||
%doc %{_mandir}/man6/%{name}.6.*
|
|
||||||
|
|
||||||
%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,4 +0,0 @@
|
|||||||
@echo off
|
|
||||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win9x.txt install.nsi > win9x.log
|
|
||||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win32.txt install.nsi > win32.log
|
|
||||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win64.txt install.nsi > win64.log
|
|
@@ -1,11 +1,11 @@
|
|||||||
!define APPNAME "OpenTTD" ; Define application name
|
!define APPNAME "OpenTTD" ; Define application name
|
||||||
!define APPVERSION "0.7.5-RC1" ; Define application version
|
!define APPVERSION "0.6.3" ; Define application version
|
||||||
!define APPVERSIONINTERNAL "0.7.5.0" ; Define application version in X.X.X.X
|
!define INSTALLERVERSION 53 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
|
||||||
!define INSTALLERVERSION 71 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
|
|
||||||
!include ${VERSION_INCLUDE}
|
!include ${VERSION_INCLUDE}
|
||||||
|
|
||||||
!define APPURLLINK "http://www.openttd.org"
|
!define APPURLLINK "http://www.openttd.org"
|
||||||
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
|
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
|
||||||
|
!define APPVERSIONINTERNAL "${APPVERSION}.0" ; Needs to be of the format X.X.X.X
|
||||||
|
|
||||||
!define MUI_ICON "..\..\..\media\openttd.ico"
|
!define MUI_ICON "..\..\..\media\openttd.ico"
|
||||||
!define MUI_UNICON "..\..\..\media\openttd.ico"
|
!define MUI_UNICON "..\..\..\media\openttd.ico"
|
||||||
@@ -71,6 +71,10 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
|
|||||||
|
|
||||||
!insertmacro MUI_PAGE_INSTFILES
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
|
||||||
|
;-----------------------------------------------------
|
||||||
|
; New custom page to show UNICODE and MSLU information
|
||||||
|
Page custom ShowWarningsPage
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_TITLE_3LINES
|
!define MUI_FINISHPAGE_TITLE_3LINES
|
||||||
!define MUI_FINISHPAGE_RUN_TEXT "Run ${APPNAMEANDVERSION} now!"
|
!define MUI_FINISHPAGE_RUN_TEXT "Run ${APPNAMEANDVERSION} now!"
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\openttd.exe"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\openttd.exe"
|
||||||
@@ -106,12 +110,14 @@ Section "!OpenTTD" Section1
|
|||||||
; Copy data files
|
; Copy data files
|
||||||
SetOutPath "$INSTDIR\data\"
|
SetOutPath "$INSTDIR\data\"
|
||||||
File ${PATH_ROOT}bin\data\*.grf
|
File ${PATH_ROOT}bin\data\*.grf
|
||||||
File ${PATH_ROOT}bin\data\*.obg
|
|
||||||
File ${PATH_ROOT}bin\data\opntitle.dat
|
File ${PATH_ROOT}bin\data\opntitle.dat
|
||||||
|
; Copy scenario files (don't choke if they don't exist)
|
||||||
|
SetOutPath "$INSTDIR\scenario\"
|
||||||
|
File /nonfatal ${PATH_ROOT}bin\scenario\*.scn
|
||||||
|
|
||||||
; Copy the scripts
|
; Copy heightmap files (don't choke if they don't exist)
|
||||||
SetOutPath "$INSTDIR\scripts\"
|
SetOutPath "$INSTDIR\scenario\heightmap\"
|
||||||
File ${PATH_ROOT}bin\scripts\*.*
|
File /nonfatal ${PATH_ROOT}bin\scenario\heightmap\*.*
|
||||||
|
|
||||||
; Copy the rest of the stuff
|
; Copy the rest of the stuff
|
||||||
SetOutPath "$INSTDIR\"
|
SetOutPath "$INSTDIR\"
|
||||||
@@ -264,9 +270,6 @@ Section "Uninstall"
|
|||||||
Delete "$INSTDIR\data\trkfoundw.grf"
|
Delete "$INSTDIR\data\trkfoundw.grf"
|
||||||
Delete "$INSTDIR\data\openttdd.grf"
|
Delete "$INSTDIR\data\openttdd.grf"
|
||||||
Delete "$INSTDIR\data\openttdw.grf"
|
Delete "$INSTDIR\data\openttdw.grf"
|
||||||
Delete "$INSTDIR\data\orig_win.obg"
|
|
||||||
Delete "$INSTDIR\data\orig_dos.obg"
|
|
||||||
Delete "$INSTDIR\data\orig_dos_de.obg"
|
|
||||||
|
|
||||||
Delete "$INSTDIR\data\sample.cat"
|
Delete "$INSTDIR\data\sample.cat"
|
||||||
; Windows Data files
|
; Windows Data files
|
||||||
@@ -288,9 +291,6 @@ Section "Uninstall"
|
|||||||
; Language files
|
; Language files
|
||||||
Delete "$INSTDIR\lang\*.lng"
|
Delete "$INSTDIR\lang\*.lng"
|
||||||
|
|
||||||
; Scripts
|
|
||||||
Delete "$INSTDIR\scripts\*.*"
|
|
||||||
|
|
||||||
; Remove remaining directories
|
; Remove remaining directories
|
||||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
|
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
|
||||||
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
||||||
@@ -367,6 +367,23 @@ WinNT:
|
|||||||
ClearErrors
|
ClearErrors
|
||||||
FunctionEnd
|
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
|
; Determine windows version, returns "win9x" if Win9x/Me or "winnt" on the stack
|
||||||
Function GetWindowsVersion
|
Function GetWindowsVersion
|
||||||
|
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
|
||||||
|
|
@@ -16,26 +16,43 @@ End Sub
|
|||||||
|
|
||||||
Sub UpdateFile(modified, revision, version, cur_date, filename)
|
Sub UpdateFile(modified, revision, version, cur_date, filename)
|
||||||
FSO.CopyFile filename & ".in", filename
|
FSO.CopyFile filename & ".in", filename
|
||||||
FindReplaceInFile filename, "!!MODIFIED!!", modified
|
FindReplaceInFile filename, "@@MODIFIED@@", modified
|
||||||
FindReplaceInFile filename, "!!REVISION!!", revision
|
FindReplaceInFile filename, "@@REVISION@@", revision
|
||||||
FindReplaceInFile filename, "!!VERSION!!", version
|
FindReplaceInFile filename, "@@VERSION@@", version
|
||||||
FindReplaceInFile filename, "!!DATE!!", cur_date
|
FindReplaceInFile filename, "@@DATE@@", cur_date
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub UpdateFiles(version)
|
Sub UpdateFiles(version)
|
||||||
Dim modified, revision, cur_date
|
Dim WshShell, cur_date, modified, revision, oExec
|
||||||
|
Set WshShell = CreateObject("WScript.Shell")
|
||||||
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
||||||
|
revision = 0
|
||||||
If InStr(version, Chr(9)) Then
|
modified = 1
|
||||||
revision = Mid(version, InStr(version, Chr(9)) + 1)
|
Select Case Mid(version, 1, 1)
|
||||||
revision = Mid(revision, 1, InStr(revision, Chr(9)) - 1)
|
Case "r" ' svn
|
||||||
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
|
revision = Mid(version, 2)
|
||||||
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
If InStr(revision, "M") Then
|
||||||
Else
|
revision = Mid(revision, 1, InStr(revision, "M") - 1)
|
||||||
version = "0.7.5-RC1"
|
modified = 2
|
||||||
revision = 0
|
Else
|
||||||
modified = 1
|
modified = 0
|
||||||
End If
|
End If
|
||||||
|
If InStr(revision, "-") Then
|
||||||
|
revision = Mid(revision, 1, InStr(revision, "-") - 1)
|
||||||
|
End If
|
||||||
|
Case "h" ' mercurial (hg)
|
||||||
|
Set oExec = WshShell.Exec("hg log -r " & Mid(version, 2, 8) & ":0 -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src")
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
revision = Mid(OExec.StdOut.ReadLine(), 7)
|
||||||
|
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||||
|
End If
|
||||||
|
Case "g" ' git
|
||||||
|
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../src")
|
||||||
|
if Err.Number = 0 Then
|
||||||
|
revision = Mid(oExec.StdOut.ReadLine(), 7)
|
||||||
|
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||||
|
End If
|
||||||
|
End Select
|
||||||
|
|
||||||
UpdateFile modified, revision, version, cur_date, "../src/rev.cpp"
|
UpdateFile modified, revision, version, cur_date, "../src/rev.cpp"
|
||||||
UpdateFile modified, revision, version, cur_date, "../src/ottdres.rc"
|
UpdateFile modified, revision, version, cur_date, "../src/ottdres.rc"
|
||||||
@@ -79,178 +96,151 @@ Function ReadRegistryKey(shive, subkey, valuename, architecture)
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function DetermineSVNVersion()
|
Function DetermineSVNVersion()
|
||||||
Dim WshShell, version, branch, modified, revision, url, oExec, line, hash
|
Dim WshShell, version, url, oExec, line
|
||||||
Set WshShell = CreateObject("WScript.Shell")
|
Set WshShell = CreateObject("WScript.Shell")
|
||||||
On Error Resume Next
|
On Error Resume Next
|
||||||
|
|
||||||
revision = 0
|
|
||||||
|
|
||||||
' Try TortoiseSVN
|
' Try TortoiseSVN
|
||||||
' Get the directory where TortoiseSVN (should) reside(s)
|
' Get the directory where TortoiseSVN (should) reside(s)
|
||||||
Dim sTortoise
|
Dim sTortoise
|
||||||
' First, try with 32-bit architecture
|
' First, try with 32-bit architecture
|
||||||
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 32)
|
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 32)
|
||||||
If sTortoise = "" Then
|
If sTortoise = Nothing Then
|
||||||
' No 32-bit version of TortoiseSVN installed, try 64-bit version (doesn't hurt on 32-bit machines, it returns nothing or is ignored)
|
' No 32-bit version of TortoiseSVN installed, try 64-bit version (doesn't hurt on 32-bit machines, it returns nothing or is ignored)
|
||||||
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 64)
|
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 64)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' If TortoiseSVN is installed, try to get the revision number
|
' If TortoiseSVN is installed, try to get the revision number
|
||||||
If sTortoise <> "" Then
|
If sTortoise <> Nothing Then
|
||||||
Dim SubWCRev
|
Dim file
|
||||||
Set SubWCRev = WScript.CreateObject("SubWCRev.object")
|
' Write some "magic" to a temporary file so we can acquire the svn revision/state
|
||||||
SubWCRev.GetWCInfo FSO.GetAbsolutePathName("../src"), 0, 0
|
Set file = FSO.CreateTextFile("tsvn_tmp", -1, 0)
|
||||||
revision = SubWCRev.Revision
|
file.WriteLine "r$WCREV$$WCMODS?M:$"
|
||||||
version = "r" & revision
|
file.WriteLine "$WCURL$"
|
||||||
modified = 0
|
file.Close
|
||||||
if SubWCRev.HasModifications then modified = 2
|
Set oExec = WshShell.Exec(sTortoise & "\bin\SubWCRev.exe ../src tsvn_tmp tsvn_tmp")
|
||||||
url = SubWCRev.Url
|
' Wait till the application is finished ...
|
||||||
|
Do
|
||||||
|
OExec.StdOut.ReadLine()
|
||||||
|
Loop While Not OExec.StdOut.atEndOfStream
|
||||||
|
|
||||||
|
Set file = FSO.OpenTextFile("tsvn_tmp", 1, 0, 0)
|
||||||
|
version = file.ReadLine
|
||||||
|
url = file.ReadLine
|
||||||
|
file.Close
|
||||||
|
|
||||||
|
Set file = FSO.GetFile("tsvn_tmp")
|
||||||
|
file.Delete
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Looks like there is no TortoiseSVN installed either. Then we don't know it.
|
' Looks like there is no TortoiseSVN installed either. Then we don't know it.
|
||||||
If revision = 0 Then
|
If InStr(version, "$") Then
|
||||||
' Reset error and version
|
' Reset error and version
|
||||||
Err.Clear
|
Err.Clear
|
||||||
version = "norev000"
|
version = "norev000"
|
||||||
modified = 0
|
|
||||||
|
|
||||||
' Set the environment to english
|
|
||||||
WshShell.Environment("PROCESS")("LANG") = "en"
|
|
||||||
|
|
||||||
' Do we have subversion installed? Check immediatelly whether we've got a modified WC.
|
' Do we have subversion installed? Check immediatelly whether we've got a modified WC.
|
||||||
Set oExec = WshShell.Exec("svnversion ../src")
|
Set oExec = WshShell.Exec("svnversion ../src")
|
||||||
If Err.Number = 0 Then
|
If Err.Number = 0 Then
|
||||||
' Wait till the application is finished ...
|
' Wait till the application is finished ...
|
||||||
Do While oExec.Status = 0
|
Do While oExec.Status = 0
|
||||||
Loop
|
Loop
|
||||||
|
End If
|
||||||
|
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||||
|
Dim modified
|
||||||
|
If InStr(OExec.StdOut.ReadLine(), "M") Then
|
||||||
|
modified = "M"
|
||||||
|
Else
|
||||||
|
modified = ""
|
||||||
|
End If
|
||||||
|
|
||||||
line = OExec.StdOut.ReadLine()
|
' Set the environment to english
|
||||||
If line <> "exported" Then
|
WshShell.Environment("PROCESS")("LANG") = "en"
|
||||||
If InStr(line, "M") Then
|
|
||||||
modified = 2
|
|
||||||
End If
|
|
||||||
|
|
||||||
' And use svn info to get the correct revision and branch information.
|
' And use svn info to get the correct revision and branch information.
|
||||||
Set oExec = WshShell.Exec("svn info ../src")
|
Set oExec = WshShell.Exec("svn info ../src")
|
||||||
If Err.Number = 0 Then
|
If Err.Number = 0 Then
|
||||||
Do
|
Do
|
||||||
line = OExec.StdOut.ReadLine()
|
line = OExec.StdOut.ReadLine()
|
||||||
If InStr(line, "URL") Then
|
If InStr(line, "URL") Then
|
||||||
url = line
|
url = line
|
||||||
End If
|
End If
|
||||||
If InStr(line, "Last Changed Rev") Then
|
If InStr(line, "Last Changed Rev") Then
|
||||||
revision = Mid(line, 19)
|
version = "r" & Mid(line, 19) & modified
|
||||||
version = "r" & revision
|
End If
|
||||||
End If
|
Loop While Not OExec.StdOut.atEndOfStream
|
||||||
Loop While Not OExec.StdOut.atEndOfStream
|
End If
|
||||||
End If ' Err.Number = 0
|
End If
|
||||||
End If ' line <> "exported"
|
End If
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' InStr(version, "$")
|
|
||||||
|
|
||||||
If version <> "norev000" Then
|
If version <> "norev000" Then
|
||||||
If InStr(url, "branches") Then
|
If InStr(url, "branches") Then
|
||||||
url = Mid(url, InStr(url, "branches/") + 9)
|
url = Mid(url, InStr(url, "branches") + 8)
|
||||||
branch = Mid(url, 1, InStr(2, url, "/") - 1)
|
url = Mid(url, 1, InStr(2, url, "/") - 1)
|
||||||
|
version = version & Replace(url, "/", "-")
|
||||||
End If
|
End If
|
||||||
Else ' version <> "norev000"
|
Else
|
||||||
' svn detection failed, reset error and try git
|
' svn detection failed, reset error and try git
|
||||||
Err.Clear
|
Err.Clear
|
||||||
Set oExec = WshShell.Exec("git rev-parse --verify HEAD")
|
Set oExec = WshShell.Exec("git rev-parse --verify --short=8 HEAD")
|
||||||
If Err.Number = 0 Then
|
If Err.Number = 0 Then
|
||||||
' Wait till the application is finished ...
|
' Wait till the application is finished ...
|
||||||
Do While oExec.Status = 0
|
Do While oExec.Status = 0
|
||||||
Loop
|
Loop
|
||||||
|
End If
|
||||||
|
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||||
|
version = "g" & oExec.StdOut.ReadLine()
|
||||||
|
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
|
||||||
|
Do While oExec.Status = 0 And Err.Number = 0
|
||||||
|
Loop
|
||||||
|
If Err.Number = 0 And oExec.ExitCode = 1 Then
|
||||||
|
version = version & "M"
|
||||||
|
End If
|
||||||
|
|
||||||
If oExec.ExitCode = 0 Then
|
Set oExec = WshShell.Exec("git symbolic-ref HEAD")
|
||||||
hash = oExec.StdOut.ReadLine()
|
If Err.Number = 0 Then
|
||||||
version = "g" & Mid(hash, 1, 8)
|
line = oExec.StdOut.ReadLine()
|
||||||
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
|
line = Mid(line, InStrRev(line, "/") + 1)
|
||||||
If Err.Number = 0 Then
|
If line <> "master" Then
|
||||||
' Wait till the application is finished ...
|
version = version & "-" & line
|
||||||
Do While oExec.Status = 0
|
End If
|
||||||
Loop
|
End If
|
||||||
|
Else
|
||||||
If oExec.ExitCode = 1 Then
|
' try mercurial (hg)
|
||||||
modified = 2
|
|
||||||
End If ' oExec.ExitCode = 1
|
|
||||||
|
|
||||||
Set oExec = WshShell.Exec("git symbolic-ref HEAD")
|
|
||||||
If Err.Number = 0 Then
|
|
||||||
line = oExec.StdOut.ReadLine()
|
|
||||||
line = Mid(line, InStrRev(line, "/") + 1)
|
|
||||||
If line <> "master" Then
|
|
||||||
branch = line
|
|
||||||
End If ' line <> "master"
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
|
|
||||||
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../src")
|
|
||||||
if Err.Number = 0 Then
|
|
||||||
revision = Mid(oExec.StdOut.ReadLine(), 7)
|
|
||||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' oExec.ExitCode = 0
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
|
|
||||||
If version = "norev000" Then
|
|
||||||
' git detection failed, reset error and try mercurial (hg)
|
|
||||||
Err.Clear
|
Err.Clear
|
||||||
Set oExec = WshShell.Exec("hg parents")
|
Set oExec = WshShell.Exec("hg parents")
|
||||||
If Err.Number = 0 Then
|
If Err.Number = 0 Then
|
||||||
' Wait till the application is finished ...
|
' Wait till the application is finished ...
|
||||||
Do While oExec.Status = 0
|
Do While oExec.Status = 0
|
||||||
Loop
|
Loop
|
||||||
|
End If
|
||||||
If oExec.ExitCode = 0 Then
|
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||||
line = OExec.StdOut.ReadLine()
|
line = OExec.StdOut.ReadLine()
|
||||||
hash = Mid(line, InStrRev(line, ":") + 1)
|
version = "h" & Mid(line, InStrRev(line, ":") + 1, 8)
|
||||||
version = "h" & Mid(hash, 1, 8)
|
Set oExec = WshShell.Exec("hg status ../src")
|
||||||
Set oExec = WshShell.Exec("hg status ../src")
|
If Err.Number = 0 Then
|
||||||
If Err.Number = 0 Then
|
Do
|
||||||
Do
|
line = OExec.StdOut.ReadLine()
|
||||||
line = OExec.StdOut.ReadLine()
|
If Len(line) > 0 And Mid(line, 1, 1) <> "?" Then
|
||||||
If Len(line) > 0 And Mid(line, 1, 1) <> "?" Then
|
version = version & "M"
|
||||||
modified = 2
|
Exit Do
|
||||||
Exit Do
|
End If
|
||||||
End If ' Len(line) > 0 And Mid(line, 1, 1) <> "?"
|
Loop While Not OExec.StdOut.atEndOfStream
|
||||||
Loop While Not OExec.StdOut.atEndOfStream
|
End If
|
||||||
|
Set oExec = WshShell.Exec("hg branch")
|
||||||
Set oExec = WshShell.Exec("hg branch")
|
If Err.Number = 0 Then
|
||||||
If Err.Number = 0 Then
|
line = OExec.StdOut.ReadLine()
|
||||||
line = OExec.StdOut.ReadLine()
|
If line <> "default" Then
|
||||||
If line <> "default" Then
|
version = version & "-" & line
|
||||||
branch = line
|
End If
|
||||||
End If ' line <> "default"
|
End If
|
||||||
End If ' Err.Number = 0
|
End If
|
||||||
|
End If
|
||||||
Set oExec = WshShell.Exec("hg log -r " & hash & ":0 -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src")
|
|
||||||
If Err.Number = 0 Then
|
|
||||||
revision = Mid(OExec.StdOut.ReadLine(), 7)
|
|
||||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' oExec.ExitCode = 0
|
|
||||||
End If ' Err.Number = 0
|
|
||||||
End If ' version = "norev000"
|
|
||||||
End If ' version <> "norev000"
|
|
||||||
|
|
||||||
If modified = 2 Then
|
|
||||||
version = version & "M"
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If branch <> "" Then
|
DetermineSVNVersion = version
|
||||||
version = version & "-" & branch
|
|
||||||
End If
|
|
||||||
|
|
||||||
If version <> "norev000" Then
|
|
||||||
DetermineSVNVersion = version & Chr(9) & revision & Chr(9) & modified
|
|
||||||
Else
|
|
||||||
DetermineSVNVersion = version
|
|
||||||
End If
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function IsCachedVersion(ByVal version)
|
Function IsCachedVersion(version)
|
||||||
Dim cache_file, cached_version
|
Dim cache_file, cached_version
|
||||||
cached_version = ""
|
cached_version = ""
|
||||||
Set cache_file = FSO.OpenTextFile("../config.cache.version", 1, True, 0)
|
Set cache_file = FSO.OpenTextFile("../config.cache.version", 1, True, 0)
|
||||||
@@ -259,10 +249,6 @@ Function IsCachedVersion(ByVal version)
|
|||||||
End If
|
End If
|
||||||
cache_file.Close
|
cache_file.Close
|
||||||
|
|
||||||
If InStr(version, Chr(9)) Then
|
|
||||||
version = Mid(version, 1, Instr(version, Chr(9)) - 1)
|
|
||||||
End If
|
|
||||||
|
|
||||||
If version <> cached_version Then
|
If version <> cached_version Then
|
||||||
Set cache_file = fso.CreateTextFile("../config.cache.version", True)
|
Set cache_file = fso.CreateTextFile("../config.cache.version", True)
|
||||||
cache_file.WriteLine(version)
|
cache_file.WriteLine(version)
|
||||||
@@ -273,13 +259,8 @@ Function IsCachedVersion(ByVal version)
|
|||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function CheckFile(filename)
|
|
||||||
CheckFile = FSO.FileExists(filename)
|
|
||||||
If CheckFile Then CheckFile = (FSO.GetFile(filename).DateLastModified >= FSO.GetFile(filename & ".in").DateLastModified)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Dim version
|
Dim version
|
||||||
version = DetermineSVNVersion
|
version = DetermineSVNVersion
|
||||||
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/ottdres.rc")) Then
|
If Not (IsCachedVersion(version) And FSO.FileExists("../src/rev.cpp") And FSO.FileExists("../src/ottdres.rc")) Then
|
||||||
UpdateFiles version
|
UpdateFiles version
|
||||||
End If
|
End If
|
||||||
|
@@ -28,7 +28,6 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
# First, collect the list of Windows files
|
# First, collect the list of Windows files
|
||||||
allegro_config=""
|
|
||||||
sdl_config="1"
|
sdl_config="1"
|
||||||
png_config="1"
|
png_config="1"
|
||||||
os="MSVC"
|
os="MSVC"
|
||||||
@@ -56,15 +55,6 @@ safety_check() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h' | sed 's/ //' | sort > tmp.headers.source.list
|
|
||||||
find "$ROOT_DIR/src" \( -iname "*.h" -or -iname "*.hpp" \) -and -not -ipath "*/.svn/*" | sed "s~$ROOT_DIR/src/~~" | sort > tmp.headers.src
|
|
||||||
if [ -n "`diff tmp.headers.source.list tmp.headers.src`" ]; then
|
|
||||||
echo "The following headers are missing in source.list and not in /src/ or vice versa."
|
|
||||||
diff tmp.headers.source.list tmp.headers.src | grep '[<>]' | sort
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
rm tmp.headers.*
|
|
||||||
|
|
||||||
load_main_data() {
|
load_main_data() {
|
||||||
# Read the source.list and process it
|
# Read the source.list and process it
|
||||||
RES="`cat $1 | tr '\r' '\n' | awk '
|
RES="`cat $1 | tr '\r' '\n' | awk '
|
||||||
@@ -79,13 +69,11 @@ load_main_data() {
|
|||||||
|
|
||||||
deep += 1;
|
deep += 1;
|
||||||
|
|
||||||
if ($0 == "ALLEGRO" && "'$allegro_config'" == "") { next; }
|
|
||||||
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
||||||
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
||||||
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
||||||
if ($0 == "OS2" && "'$os'" != "OS2") { next; }
|
if ($0 == "OS2" && "'$os'" != "OS2") { next; }
|
||||||
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
||||||
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
|
|
||||||
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
||||||
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
||||||
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
||||||
@@ -95,7 +83,7 @@ load_main_data() {
|
|||||||
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
||||||
if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; }
|
if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; }
|
||||||
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
||||||
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
|
if ($0 == "NO_THREADS" && "'$with_threads'" == "0") { next; }
|
||||||
|
|
||||||
skip += 1;
|
skip += 1;
|
||||||
|
|
||||||
@@ -141,7 +129,7 @@ load_lang_data() {
|
|||||||
RES=""
|
RES=""
|
||||||
for i in `ls $1`
|
for i in `ls $1`
|
||||||
do
|
do
|
||||||
i=`basename $i | sed s~.txt$~~g`
|
i=`basename $i | sed s/.txt$//g`
|
||||||
RES="$RES
|
RES="$RES
|
||||||
<File
|
<File
|
||||||
RelativePath=\"..\\src\\lang\\"$i".txt\"
|
RelativePath=\"..\\src\\lang\\"$i".txt\"
|
||||||
@@ -153,7 +141,7 @@ load_lang_data() {
|
|||||||
Name=\"VCCustomBuildTool\"
|
Name=\"VCCustomBuildTool\"
|
||||||
Description=\"Generating "$i" language file\"
|
Description=\"Generating "$i" language file\"
|
||||||
CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang "\$(InputPath)"
\"
|
CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang "\$(InputPath)"
\"
|
||||||
AdditionalDependencies=\"..\\src\\lang\\english.txt\"
|
AdditionalDependencies=\"\"
|
||||||
Outputs=\"..\\bin\\lang\\"$i".lng\"
|
Outputs=\"..\\bin\\lang\\"$i".lng\"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
|
@@ -46,85 +46,6 @@ Sub safety_check(filename)
|
|||||||
file.Close
|
file.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub get_files(srcdir, dir, list)
|
|
||||||
Dim file, filename
|
|
||||||
Dim rekeep, reskip
|
|
||||||
|
|
||||||
' pattern for files to keep
|
|
||||||
Set rekeep = New RegExp
|
|
||||||
rekeep.Pattern = "\.h(pp)?$"
|
|
||||||
rekeep.Global = True
|
|
||||||
|
|
||||||
' pattern for files to exclude
|
|
||||||
Set reskip = New RegExp
|
|
||||||
reskip.Pattern = "\.svn"
|
|
||||||
reskip.Global = True
|
|
||||||
|
|
||||||
For Each file in dir.Files
|
|
||||||
filename = Replace(file.path, srcdir, "") ' Remove */src/
|
|
||||||
filename = Replace(filename, "\", "/") ' Replace separators
|
|
||||||
If rekeep.Test(filename) And Not reskip.Test(filename) Then
|
|
||||||
list.Add filename, filename
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub get_dir_files(srcdir, dir, list)
|
|
||||||
Dim folder
|
|
||||||
' Get files
|
|
||||||
get_files srcdir, dir, list
|
|
||||||
|
|
||||||
' Recurse in subfolders
|
|
||||||
For Each folder in dir.SubFolders
|
|
||||||
get_dir_files srcdir, folder, list
|
|
||||||
Next
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub headers_check(filename, dir)
|
|
||||||
Dim source_list_headers, src_dir_headers, regexp, line, file, str
|
|
||||||
|
|
||||||
' Define regexp for source.list parsing
|
|
||||||
Set regexp = New RegExp
|
|
||||||
regexp.Pattern = "\.h"
|
|
||||||
regexp.Global = True
|
|
||||||
|
|
||||||
' Parse source.list and store headers in a dictionary
|
|
||||||
Set source_list_headers = CreateObject("Scripting.Dictionary")
|
|
||||||
Set file = FSO.OpenTextFile(filename, 1, 0, 0)
|
|
||||||
While Not file.AtEndOfStream
|
|
||||||
line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
|
|
||||||
If Len(line) > 0 And regexp.Test(line) And line <> "../objs/langs/table/strings.h" Then
|
|
||||||
source_list_headers.Add line, line
|
|
||||||
End If
|
|
||||||
Wend
|
|
||||||
file.Close()
|
|
||||||
|
|
||||||
' Get header files in /src/
|
|
||||||
Set src_dir_headers = CreateObject("Scripting.Dictionary")
|
|
||||||
get_dir_files dir, FSO.GetFolder(dir), src_dir_headers
|
|
||||||
|
|
||||||
' Finding files in source.list but not in /src/
|
|
||||||
For Each line In source_list_headers
|
|
||||||
If Not src_dir_headers.Exists(line) Then
|
|
||||||
str = str & "< " & line & vbCrLf
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Finding files in /src/ but not in source.list
|
|
||||||
For Each line In src_dir_headers
|
|
||||||
If Not source_list_headers.Exists(line) Then
|
|
||||||
str = str & "> " & line & vbCrLf
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Display the missing files if any
|
|
||||||
If str <> "" Then
|
|
||||||
str = "The following headers are missing in source.list and not in /src/ or vice versa." _
|
|
||||||
& vbCrLf & str
|
|
||||||
WScript.Echo str
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Function load_main_data(filename)
|
Function load_main_data(filename)
|
||||||
Dim res, file, line, deep, skip, first_time
|
Dim res, file, line, deep, skip, first_time
|
||||||
res = ""
|
res = ""
|
||||||
@@ -151,7 +72,7 @@ Function load_main_data(filename)
|
|||||||
line = "WIN32" Or _
|
line = "WIN32" Or _
|
||||||
line = "MSVC" Or _
|
line = "MSVC" Or _
|
||||||
line = "DIRECTMUSIC" Or _
|
line = "DIRECTMUSIC" Or _
|
||||||
line = "HAVE_THREAD" _
|
line = "NO_THREADS" _
|
||||||
) Then skip = skip + 1
|
) Then skip = skip + 1
|
||||||
deep = deep + 1
|
deep = deep + 1
|
||||||
Case "#"
|
Case "#"
|
||||||
@@ -203,7 +124,7 @@ Function load_lang_data(dir)
|
|||||||
& vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
|
& vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
|
||||||
& vbCrLf & " Description=" & Chr(34) & "Generating " & file & " language file" & 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 & " 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 & " Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _
|
||||||
& vbCrLf & " />" _
|
& vbCrLf & " />" _
|
||||||
& vbCrLf & " </FileConfiguration>" _
|
& vbCrLf & " </FileConfiguration>" _
|
||||||
@@ -250,7 +171,6 @@ If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
safety_check ROOT_DIR & "/source.list"
|
safety_check ROOT_DIR & "/source.list"
|
||||||
headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles
|
|
||||||
|
|
||||||
Dim openttd
|
Dim openttd
|
||||||
openttd = load_main_data(ROOT_DIR &"/source.list")
|
openttd = load_main_data(ROOT_DIR &"/source.list")
|
||||||
|
@@ -56,26 +56,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating afrikaans language file"
|
Description="Generating afrikaans language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\afrikaans.lng"
|
Outputs="..\bin\lang\afrikaans.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\arabic_egypt.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
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"
|
|
||||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
||||||
>
|
>
|
||||||
@@ -86,7 +71,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating brazilian_portuguese language file"
|
Description="Generating brazilian_portuguese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -101,7 +86,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating bulgarian language file"
|
Description="Generating bulgarian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\bulgarian.lng"
|
Outputs="..\bin\lang\bulgarian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -116,7 +101,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating catalan language file"
|
Description="Generating catalan language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\catalan.lng"
|
Outputs="..\bin\lang\catalan.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -131,7 +116,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating croatian language file"
|
Description="Generating croatian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\croatian.lng"
|
Outputs="..\bin\lang\croatian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -146,7 +131,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating czech language file"
|
Description="Generating czech language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\czech.lng"
|
Outputs="..\bin\lang\czech.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -161,7 +146,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating danish language file"
|
Description="Generating danish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\danish.lng"
|
Outputs="..\bin\lang\danish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -176,7 +161,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating dutch language file"
|
Description="Generating dutch language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\dutch.lng"
|
Outputs="..\bin\lang\dutch.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -191,7 +176,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating english language file"
|
Description="Generating english language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\english.lng"
|
Outputs="..\bin\lang\english.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -206,7 +191,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating english_US language file"
|
Description="Generating english_US language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\english_US.lng"
|
Outputs="..\bin\lang\english_US.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -221,7 +206,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating esperanto language file"
|
Description="Generating esperanto language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\esperanto.lng"
|
Outputs="..\bin\lang\esperanto.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -236,7 +221,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating estonian language file"
|
Description="Generating estonian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\estonian.lng"
|
Outputs="..\bin\lang\estonian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -251,7 +236,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating finnish language file"
|
Description="Generating finnish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\finnish.lng"
|
Outputs="..\bin\lang\finnish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -266,7 +251,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating french language file"
|
Description="Generating french language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\french.lng"
|
Outputs="..\bin\lang\french.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -281,7 +266,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating galician language file"
|
Description="Generating galician language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\galician.lng"
|
Outputs="..\bin\lang\galician.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -296,26 +281,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating german language file"
|
Description="Generating german language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\german.lng"
|
Outputs="..\bin\lang\german.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\hebrew.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating hebrew language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\hebrew.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\hungarian.txt"
|
RelativePath="..\src\lang\hungarian.txt"
|
||||||
>
|
>
|
||||||
@@ -326,7 +296,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating hungarian language file"
|
Description="Generating hungarian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\hungarian.lng"
|
Outputs="..\bin\lang\hungarian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -341,26 +311,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating icelandic language file"
|
Description="Generating icelandic language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\icelandic.lng"
|
Outputs="..\bin\lang\icelandic.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\indonesian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating indonesian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\indonesian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\italian.txt"
|
RelativePath="..\src\lang\italian.txt"
|
||||||
>
|
>
|
||||||
@@ -371,7 +326,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating italian language file"
|
Description="Generating italian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\italian.lng"
|
Outputs="..\bin\lang\italian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -386,7 +341,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating japanese language file"
|
Description="Generating japanese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\japanese.lng"
|
Outputs="..\bin\lang\japanese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -401,26 +356,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating korean language file"
|
Description="Generating korean language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\korean.lng"
|
Outputs="..\bin\lang\korean.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\latvian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating latvian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\latvian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\lithuanian.txt"
|
RelativePath="..\src\lang\lithuanian.txt"
|
||||||
>
|
>
|
||||||
@@ -431,26 +371,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating lithuanian language file"
|
Description="Generating lithuanian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\lithuanian.lng"
|
Outputs="..\bin\lang\lithuanian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\luxembourgish.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating luxembourgish language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\luxembourgish.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
||||||
>
|
>
|
||||||
@@ -461,7 +386,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating norwegian_bokmal language file"
|
Description="Generating norwegian_bokmal language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -476,11 +401,26 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating norwegian_nynorsk language file"
|
Description="Generating norwegian_nynorsk language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\src\lang\origveh.txt"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
Description="Generating origveh language file"
|
||||||
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
|
AdditionalDependencies=""
|
||||||
|
Outputs="..\bin\lang\origveh.lng"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\piglatin.txt"
|
RelativePath="..\src\lang\piglatin.txt"
|
||||||
>
|
>
|
||||||
@@ -491,7 +431,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating piglatin language file"
|
Description="Generating piglatin language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\piglatin.lng"
|
Outputs="..\bin\lang\piglatin.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -506,7 +446,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating polish language file"
|
Description="Generating polish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\polish.lng"
|
Outputs="..\bin\lang\polish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -521,7 +461,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating portuguese language file"
|
Description="Generating portuguese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\portuguese.lng"
|
Outputs="..\bin\lang\portuguese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -536,7 +476,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating romanian language file"
|
Description="Generating romanian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\romanian.lng"
|
Outputs="..\bin\lang\romanian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -551,26 +491,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating russian language file"
|
Description="Generating russian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\russian.lng"
|
Outputs="..\bin\lang\russian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\serbian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating serbian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\serbian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\simplified_chinese.txt"
|
RelativePath="..\src\lang\simplified_chinese.txt"
|
||||||
>
|
>
|
||||||
@@ -581,7 +506,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating simplified_chinese language file"
|
Description="Generating simplified_chinese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\simplified_chinese.lng"
|
Outputs="..\bin\lang\simplified_chinese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -596,7 +521,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating slovak language file"
|
Description="Generating slovak language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\slovak.lng"
|
Outputs="..\bin\lang\slovak.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -611,7 +536,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating slovenian language file"
|
Description="Generating slovenian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\slovenian.lng"
|
Outputs="..\bin\lang\slovenian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -626,7 +551,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating spanish language file"
|
Description="Generating spanish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\spanish.lng"
|
Outputs="..\bin\lang\spanish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -641,7 +566,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating swedish language file"
|
Description="Generating swedish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\swedish.lng"
|
Outputs="..\bin\lang\swedish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -656,7 +581,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating traditional_chinese language file"
|
Description="Generating traditional_chinese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\traditional_chinese.lng"
|
Outputs="..\bin\lang\traditional_chinese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -671,7 +596,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating turkish language file"
|
Description="Generating turkish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\turkish.lng"
|
Outputs="..\bin\lang\turkish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -686,26 +611,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating ukrainian language file"
|
Description="Generating ukrainian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\ukrainian.lng"
|
Outputs="..\bin\lang\ukrainian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\welsh.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating welsh language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\welsh.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
|
@@ -57,26 +57,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating afrikaans language file"
|
Description="Generating afrikaans language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\afrikaans.lng"
|
Outputs="..\bin\lang\afrikaans.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\arabic_egypt.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
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"
|
|
||||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
||||||
>
|
>
|
||||||
@@ -87,7 +72,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating brazilian_portuguese language file"
|
Description="Generating brazilian_portuguese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
Outputs="..\bin\lang\brazilian_portuguese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -102,7 +87,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating bulgarian language file"
|
Description="Generating bulgarian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\bulgarian.lng"
|
Outputs="..\bin\lang\bulgarian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -117,7 +102,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating catalan language file"
|
Description="Generating catalan language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\catalan.lng"
|
Outputs="..\bin\lang\catalan.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -132,7 +117,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating croatian language file"
|
Description="Generating croatian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\croatian.lng"
|
Outputs="..\bin\lang\croatian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -147,7 +132,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating czech language file"
|
Description="Generating czech language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\czech.lng"
|
Outputs="..\bin\lang\czech.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -162,7 +147,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating danish language file"
|
Description="Generating danish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\danish.lng"
|
Outputs="..\bin\lang\danish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -177,7 +162,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating dutch language file"
|
Description="Generating dutch language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\dutch.lng"
|
Outputs="..\bin\lang\dutch.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -192,7 +177,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating english language file"
|
Description="Generating english language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\english.lng"
|
Outputs="..\bin\lang\english.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -207,7 +192,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating english_US language file"
|
Description="Generating english_US language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\english_US.lng"
|
Outputs="..\bin\lang\english_US.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -222,7 +207,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating esperanto language file"
|
Description="Generating esperanto language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\esperanto.lng"
|
Outputs="..\bin\lang\esperanto.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -237,7 +222,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating estonian language file"
|
Description="Generating estonian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\estonian.lng"
|
Outputs="..\bin\lang\estonian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -252,7 +237,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating finnish language file"
|
Description="Generating finnish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\finnish.lng"
|
Outputs="..\bin\lang\finnish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -267,7 +252,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating french language file"
|
Description="Generating french language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\french.lng"
|
Outputs="..\bin\lang\french.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -282,7 +267,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating galician language file"
|
Description="Generating galician language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\galician.lng"
|
Outputs="..\bin\lang\galician.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -297,26 +282,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating german language file"
|
Description="Generating german language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\german.lng"
|
Outputs="..\bin\lang\german.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\hebrew.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating hebrew language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\hebrew.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\hungarian.txt"
|
RelativePath="..\src\lang\hungarian.txt"
|
||||||
>
|
>
|
||||||
@@ -327,7 +297,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating hungarian language file"
|
Description="Generating hungarian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\hungarian.lng"
|
Outputs="..\bin\lang\hungarian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -342,26 +312,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating icelandic language file"
|
Description="Generating icelandic language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\icelandic.lng"
|
Outputs="..\bin\lang\icelandic.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\indonesian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating indonesian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\indonesian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\italian.txt"
|
RelativePath="..\src\lang\italian.txt"
|
||||||
>
|
>
|
||||||
@@ -372,7 +327,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating italian language file"
|
Description="Generating italian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\italian.lng"
|
Outputs="..\bin\lang\italian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -387,7 +342,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating japanese language file"
|
Description="Generating japanese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\japanese.lng"
|
Outputs="..\bin\lang\japanese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -402,26 +357,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating korean language file"
|
Description="Generating korean language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\korean.lng"
|
Outputs="..\bin\lang\korean.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\latvian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating latvian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\latvian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\lithuanian.txt"
|
RelativePath="..\src\lang\lithuanian.txt"
|
||||||
>
|
>
|
||||||
@@ -432,26 +372,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating lithuanian language file"
|
Description="Generating lithuanian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\lithuanian.lng"
|
Outputs="..\bin\lang\lithuanian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\luxembourgish.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating luxembourgish language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\luxembourgish.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
||||||
>
|
>
|
||||||
@@ -462,7 +387,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating norwegian_bokmal language file"
|
Description="Generating norwegian_bokmal language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
Outputs="..\bin\lang\norwegian_bokmal.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -477,11 +402,26 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating norwegian_nynorsk language file"
|
Description="Generating norwegian_nynorsk language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
Outputs="..\bin\lang\norwegian_nynorsk.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\src\lang\origveh.txt"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
Description="Generating origveh language file"
|
||||||
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
|
AdditionalDependencies=""
|
||||||
|
Outputs="..\bin\lang\origveh.lng"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\piglatin.txt"
|
RelativePath="..\src\lang\piglatin.txt"
|
||||||
>
|
>
|
||||||
@@ -492,7 +432,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating piglatin language file"
|
Description="Generating piglatin language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\piglatin.lng"
|
Outputs="..\bin\lang\piglatin.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -507,7 +447,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating polish language file"
|
Description="Generating polish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\polish.lng"
|
Outputs="..\bin\lang\polish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -522,7 +462,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating portuguese language file"
|
Description="Generating portuguese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\portuguese.lng"
|
Outputs="..\bin\lang\portuguese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -537,7 +477,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating romanian language file"
|
Description="Generating romanian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\romanian.lng"
|
Outputs="..\bin\lang\romanian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -552,26 +492,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating russian language file"
|
Description="Generating russian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\russian.lng"
|
Outputs="..\bin\lang\russian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\serbian.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating serbian language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\serbian.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\lang\simplified_chinese.txt"
|
RelativePath="..\src\lang\simplified_chinese.txt"
|
||||||
>
|
>
|
||||||
@@ -582,7 +507,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating simplified_chinese language file"
|
Description="Generating simplified_chinese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\simplified_chinese.lng"
|
Outputs="..\bin\lang\simplified_chinese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -597,7 +522,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating slovak language file"
|
Description="Generating slovak language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\slovak.lng"
|
Outputs="..\bin\lang\slovak.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -612,7 +537,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating slovenian language file"
|
Description="Generating slovenian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\slovenian.lng"
|
Outputs="..\bin\lang\slovenian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -627,7 +552,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating spanish language file"
|
Description="Generating spanish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\spanish.lng"
|
Outputs="..\bin\lang\spanish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -642,7 +567,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating swedish language file"
|
Description="Generating swedish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\swedish.lng"
|
Outputs="..\bin\lang\swedish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -657,7 +582,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating traditional_chinese language file"
|
Description="Generating traditional_chinese language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\traditional_chinese.lng"
|
Outputs="..\bin\lang\traditional_chinese.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -672,7 +597,7 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating turkish language file"
|
Description="Generating turkish language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\turkish.lng"
|
Outputs="..\bin\lang\turkish.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -687,26 +612,11 @@
|
|||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Generating ukrainian language file"
|
Description="Generating ukrainian language file"
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
AdditionalDependencies=""
|
||||||
Outputs="..\bin\lang\ukrainian.lng"
|
Outputs="..\bin\lang\ukrainian.lng"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\src\lang\welsh.txt"
|
|
||||||
>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
Description="Generating welsh language file"
|
|
||||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
|
||||||
AdditionalDependencies="..\src\lang\english.txt"
|
|
||||||
Outputs="..\bin\lang\welsh.lng"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -53,14 +53,13 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
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\";WITH_ASSERT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="1"
|
ExceptionHandling="1"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@@ -90,21 +89,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
OptimizeForWindows98="1"
|
OptimizeForWindows98="1"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
@@ -166,10 +163,9 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
@@ -190,21 +186,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="0"
|
LinkIncremental="0"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -266,14 +260,13 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
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;WITH_ASSERT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="1"
|
ExceptionHandling="1"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@@ -303,21 +296,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
OptimizeForWindows98="1"
|
OptimizeForWindows98="1"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
@@ -380,10 +371,9 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
@@ -406,21 +396,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="0"
|
LinkIncremental="0"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -496,6 +484,10 @@
|
|||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\media\mainicon.ico"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\media\openttd.ico"
|
RelativePath=".\..\media\openttd.ico"
|
||||||
>
|
>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -54,14 +54,13 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
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\";WITH_ASSERT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="1"
|
ExceptionHandling="1"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@@ -91,21 +90,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
@@ -165,10 +162,9 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
@@ -189,21 +185,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="0"
|
LinkIncremental="0"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
@@ -264,14 +258,13 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
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;WITH_ASSERT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="1"
|
ExceptionHandling="1"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@@ -301,21 +294,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
@@ -377,10 +368,9 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
AdditionalIncludeDirectories="..\objs\langs"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
@@ -403,21 +393,19 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="2057"
|
Culture="1053"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||||
LinkIncremental="0"
|
LinkIncremental="0"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
StackReserveSize="1048576"
|
|
||||||
StackCommitSize="1048576"
|
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
@@ -493,6 +481,10 @@
|
|||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\media\mainicon.ico"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\media\openttd.ico"
|
RelativePath=".\..\media\openttd.ico"
|
||||||
>
|
>
|
||||||
|
@@ -43,7 +43,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
||||||
|
@@ -44,7 +44,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
FavorSizeOrSpeed="2"
|
FavorSizeOrSpeed="2"
|
||||||
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Determining version number"
|
Description="Determining version number"
|
||||||
CommandLine="cscript "$(InputDir)/determineversion.vbs""
|
CommandLine=""$(InputDir)/determineversion.vbs""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
@@ -34,10 +34,6 @@
|
|||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<File
|
|
||||||
RelativePath="..\src\ottdres.rc.in"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\rev.cpp.in"
|
RelativePath="..\src\rev.cpp.in"
|
||||||
>
|
>
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Determining version number"
|
Description="Determining version number"
|
||||||
CommandLine="cscript "$(InputDir)/determineversion.vbs""
|
CommandLine=""$(InputDir)/determineversion.vbs""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
@@ -35,10 +35,6 @@
|
|||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<File
|
|
||||||
RelativePath="..\src\ottdres.rc.in"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\src\rev.cpp.in"
|
RelativePath="..\src\rev.cpp.in"
|
||||||
>
|
>
|
||||||
|
259
readme.txt
259
readme.txt
@@ -1,6 +1,6 @@
|
|||||||
OpenTTD README
|
OpenTTD README
|
||||||
Last updated: 2009-12-01
|
Last updated: 2008-10-01
|
||||||
Release version: 0.7.4
|
Release version: 0.6.3
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@@ -17,7 +17,6 @@ Table of Contents:
|
|||||||
5.0) OpenTTD features
|
5.0) OpenTTD features
|
||||||
6.0) Configuration File
|
6.0) Configuration File
|
||||||
7.0) Compiling
|
7.0) Compiling
|
||||||
* 7.1) Required/optional libraries
|
|
||||||
8.0) Translating
|
8.0) Translating
|
||||||
* 8.1 Guidelines
|
* 8.1 Guidelines
|
||||||
* 8.2 Translation
|
* 8.2 Translation
|
||||||
@@ -49,94 +48,24 @@ http://forum.openttd.org/
|
|||||||
|
|
||||||
2.1) Reporting Bugs:
|
2.1) Reporting Bugs:
|
||||||
---- ---------------
|
---- ---------------
|
||||||
First of all, check whether the bug is not already known. Do this by looking
|
To report a bug, please create a Flyspray account and follow the bugs
|
||||||
through the file called 'known-bugs.txt' which is distributed with OpenTTD
|
link from our homepage. Please make sure the bug is reproducible and
|
||||||
like this readme.
|
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 Flyspray project page URL is: http://bugs.openttd.org/
|
||||||
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.
|
|
||||||
|
|
||||||
When you are sure it is not already reported you should:
|
Please include the following information in your bug report:
|
||||||
* Make sure you are running a recent version, i.e. run the latest stable or
|
- OpenTTD version (PLEASE test the latest SVN/nightly build)
|
||||||
nightly based on where you found the bug.
|
- Bug details, including instructions how to reproduce it
|
||||||
* Make sure you are not running a non-official binary, like a patch pack.
|
- Platform and compiler (Win32, Linux, FreeBSD, ...)
|
||||||
When you are playing with a patch pack you should report any bugs to the
|
- Attach a saved game *and* a screenshot if possible
|
||||||
forum thread related to that patch pack.
|
- If this bug only occurred recently please note the last
|
||||||
* Make it reproducable for the developers. In other words, create a savegame
|
version without the bug and the first version including
|
||||||
in which you can reproduce the issue once loaded. It is very useful to give
|
the bug. That way we can fix it quicker by looking at the
|
||||||
us the crash.dmp, crash.sav and crash.log which are created on crashes.
|
changes made.
|
||||||
* 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.
|
|
||||||
|
|
||||||
2.2) Reporting Desyncs:
|
|
||||||
---- ------------------
|
|
||||||
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 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
|
|
||||||
and all actions will be written to there.
|
|
||||||
|
|
||||||
To enable the desync debugging you need to set the debug level for 'desync'
|
|
||||||
to at least 1. You do this by starting OpenTTD with '-d desync=<level>' as
|
|
||||||
parameter or by typing 'debug_level desync=<level>' in OpenTTD's internal
|
|
||||||
console.
|
|
||||||
The desync debug levels are:
|
|
||||||
0: nothing.
|
|
||||||
1: dumping of commands to 'commands-out.log'.
|
|
||||||
2: same as 1 plus checking vehicle caches and dumping that too.
|
|
||||||
3: same as 2 plus monthly saves in autosave.
|
|
||||||
4 and higher: same as 3
|
|
||||||
|
|
||||||
Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove
|
|
||||||
the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you
|
|
||||||
have to occasionally remove them yourself!
|
|
||||||
|
|
||||||
The naming format of the desync savegames is as follows:
|
|
||||||
dmp_cmds_XXXXXXXX_YYYYYYYY.sav. The XXXXXXXX is the hexadecimal representation
|
|
||||||
of the generation seed of the game and YYYYYYYY is the hexadecimal
|
|
||||||
representation of the date of the game. This sorts the savegames by game and
|
|
||||||
then by date making it easier to find the right savegames.
|
|
||||||
|
|
||||||
When a desync has occurred with the desync debugging turned on you should file
|
|
||||||
a bug report with the following files attached:
|
|
||||||
- commands-out.log as it contains all the commands that were done
|
|
||||||
- the last saved savegame (search for the last line beginning with
|
|
||||||
'save: dmp_cmds_' in commands-out.log). We use this savegame to check
|
|
||||||
whether we can quickly reproduce the desync. Otherwise we will need...
|
|
||||||
- the first saved savegame (search for the first line beginning with 'save'
|
|
||||||
where the first part, up to the last underscore '_', is the same). We need
|
|
||||||
this savegame to be able to reproduce the bug when the last savegame is not
|
|
||||||
old enough. If you loaded a scenario or savegame you need to attach that.
|
|
||||||
- optionally you can attach the savegames from around 50%, 75%, 85%, 90% and
|
|
||||||
95% of the game's progression. We can use these savegames to speed up the
|
|
||||||
reproduction of the desync, but we should be able to reproduce these
|
|
||||||
savegames based on the first savegame and commands-out.log.
|
|
||||||
- in case you use any NewGRFs you should attach the ones you used unless
|
|
||||||
we can easily find them ourselves via e.g. grfcrawler or when they are
|
|
||||||
in the OpenTTDCoop pack.
|
|
||||||
|
|
||||||
Do NOT remove the dmp_cmds savegames of a desync you have reported until the
|
|
||||||
desync has been fixed; if you, by accident, send us the wrong savegames we
|
|
||||||
will not be able to reproduce the desync and thus will be unable to fix it.
|
|
||||||
|
|
||||||
3.0) Supported Platforms:
|
3.0) Supported Platforms:
|
||||||
---- --------------------
|
---- --------------------
|
||||||
@@ -144,15 +73,14 @@ OpenTTD has been ported to several platforms and operating systems. It shouldn't
|
|||||||
be very difficult to port it to a new platform. The currently working platforms
|
be very difficult to port it to a new platform. The currently working platforms
|
||||||
are:
|
are:
|
||||||
|
|
||||||
BeOS - SDL or Allegro
|
BeOS - SDL
|
||||||
DOS - Allegro
|
|
||||||
FreeBSD - SDL
|
FreeBSD - SDL
|
||||||
Linux - SDL or Allegro
|
Linux - SDL
|
||||||
MacOS X (universal) - Cocoa video and sound drivers (SDL works too, but not 100% and not as a universal binary)
|
MacOS X (universal) - Cocoa video and sound drivers (SDL works too, but not 100% and not as a universal binary)
|
||||||
MorphOS - SDL
|
MorphOS - SDL
|
||||||
OpenBSD - SDL
|
OpenBSD - SDL
|
||||||
OS/2 - SDL
|
OS/2 - SDL
|
||||||
Windows - Win32 GDI (faster) or SDL or Allegro
|
Windows - Win32 GDI (faster) or SDL
|
||||||
|
|
||||||
|
|
||||||
4.0) Installing and running OpenTTD:
|
4.0) Installing and running OpenTTD:
|
||||||
@@ -175,15 +103,6 @@ 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
|
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)
|
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:
|
4.1) (Required) 3rd party files:
|
||||||
---- ---------------------------
|
---- ---------------------------
|
||||||
|
|
||||||
@@ -217,19 +136,6 @@ 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
|
the following sections) as sooner or later you will run into graphical glitches
|
||||||
when using other versions of the game.
|
when using other versions of the game.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
4.2) OpenTTD directories
|
4.2) OpenTTD directories
|
||||||
---- -------------------------------
|
---- -------------------------------
|
||||||
|
|
||||||
@@ -287,56 +193,21 @@ again, see section 4.1).
|
|||||||
OpenTTD has a lot of features going beyond the original TTD emulation.
|
OpenTTD has a lot of features going beyond the original TTD emulation.
|
||||||
Unfortunately, there is currently no comprehensive list of features, but there
|
Unfortunately, there is currently no comprehensive list of features, but there
|
||||||
is a basic features list on the web, and some optional features can be
|
is a basic features list on the web, and some optional features can be
|
||||||
controlled through the Advanced Settings dialog. We also implement some
|
controlled through the Configure Patches dialog. We also implement some
|
||||||
features known from TTDPatch (http://www.ttdpatch.net/).
|
features known from TTDPatch (http://www.ttdpatch.net/).
|
||||||
|
|
||||||
Several important non-standard controls:
|
Several important non-standard controls:
|
||||||
|
|
||||||
* Ctrl makes many commands more powerful. For example Ctrl clicking on signals
|
* Use Ctrl to place semaphore signals
|
||||||
with the build signal tool changes their behaviour.
|
|
||||||
* Ingame console. More information at
|
* Ingame console. More information at
|
||||||
http://wiki.openttd.org/index.php/Console
|
http://wiki.openttd.org/index.php/Console
|
||||||
* Right clicking shows tooltips
|
|
||||||
|
|
||||||
|
|
||||||
5.1) Logging of potentially dangerous actions:
|
|
||||||
---- ----------------------------------------
|
|
||||||
|
|
||||||
OpenTTD is a complex program, and together with NewGRF, it may show a buggy
|
|
||||||
behaviour. But not only bugs in code can cause problems. There are several
|
|
||||||
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 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.
|
|
||||||
|
|
||||||
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 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 gamelog by typing 'gamelog' in the console or by running
|
|
||||||
OpenTTD in debug mode.
|
|
||||||
|
|
||||||
|
|
||||||
6.0) Configuration File:
|
6.0) Configuration File:
|
||||||
---- -------------------
|
---- -------------------
|
||||||
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
|
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
|
||||||
.INI format. It's mostly undocumented. Almost all settings can be changed
|
.INI format. It's mostly undocumented. Almost all settings can be changed
|
||||||
ingame by using the 'Advanced Settings' window.
|
ingame by using the 'Configure Patches' window.
|
||||||
When you can not find openttd.cfg you should look in the directories as
|
|
||||||
described in section 4.2. If you do not have an openttd.cfg OpenTTD will
|
|
||||||
create one after closing.
|
|
||||||
|
|
||||||
|
|
||||||
7.0) Compiling:
|
7.0) Compiling:
|
||||||
@@ -355,12 +226,18 @@ Windows:
|
|||||||
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
|
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
|
||||||
Please read the Makefile for more information.
|
Please read the Makefile for more information.
|
||||||
|
|
||||||
Solaris, FreeBSD, OpenBSD:
|
Solaris 10:
|
||||||
Use "gmake", but do a "./configure" before the first build.
|
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".
|
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.
|
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:
|
MacOS X:
|
||||||
Use "make" or Xcode (which will then call make for you)
|
Use "make" or Xcode (which will then call make for you)
|
||||||
@@ -372,6 +249,15 @@ MacOS X:
|
|||||||
BeOS:
|
BeOS:
|
||||||
Use "make", but do a "./configure" before the first build.
|
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:
|
MorphOS:
|
||||||
Use "make". However, for the first build one has to do a "./configure" first.
|
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
|
Note that you need the MorphOS SDK, latest libnix updates (else C++ parts of
|
||||||
@@ -382,38 +268,16 @@ OS/2:
|
|||||||
A comprehensive GNU build environment is required to build the OS/2 version.
|
A comprehensive GNU build environment is required to build the OS/2 version.
|
||||||
See the docs/Readme_OS2.txt file for more information.
|
See the docs/Readme_OS2.txt file for more information.
|
||||||
|
|
||||||
DOS:
|
|
||||||
A build environment with DJGPP is needed as well as libraries such as
|
|
||||||
Allegro, zlib and libpng, which all can be downloaded from the DJGPP
|
|
||||||
website. Compilation is straight forward: use make, but do a "./configure"
|
|
||||||
before the first build. The build binary will need cwsdpmi.exe to be in
|
|
||||||
the same directory as the openttd executable. cwsdpmi.exe can be found in
|
|
||||||
the os/dos subdirectory. If you compile with stripping turned on a binary
|
|
||||||
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
|
|
||||||
- libpng: making screenshots and loading heightmaps
|
|
||||||
- libfreetype: loading generic fonts and rendering them
|
|
||||||
- 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:
|
8.0) Translating:
|
||||||
---- -------------------
|
---- -------------------
|
||||||
See http://www.openttd.org/development for up-to-date information.
|
See http://www.openttd.org/translating.php for up-to-date information.
|
||||||
|
|
||||||
The use of the online Translator service, located at
|
The use of the online Translator service, located at
|
||||||
http://translator.openttd.org/, is highly encouraged. For getting an account
|
http://translator2.openttd.org/, is highly encouraged. For a username/password
|
||||||
simply follow the guidelines in the FAQ of the translator website.
|
combo you should contact the development team, either by mail, IRC or the
|
||||||
|
forums. The system is straightforward to use, and if you have any problems,
|
||||||
|
read the online help located there.
|
||||||
|
|
||||||
If for some reason the website is down for a longer period of time, the
|
If for some reason the website is down for a longer period of time, the
|
||||||
information below might be of help.
|
information below might be of help.
|
||||||
@@ -430,7 +294,7 @@ Here are some translation guidelines which you should follow closely.
|
|||||||
---- -------------------
|
---- -------------------
|
||||||
So, now that you've notified the development team about your intention to
|
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
|
translate (You did, right? Of course you did.) you can pick up english.txt
|
||||||
(found in the SVN repository under /src/lang) and translate.
|
(found in the SVN repository under /lang) and translate.
|
||||||
|
|
||||||
You must change the first two lines of the file appropriately:
|
You must change the first two lines of the file appropriately:
|
||||||
|
|
||||||
@@ -447,10 +311,7 @@ Note: Do not alter the following parts of the file:
|
|||||||
8.3) Previewing:
|
8.3) Previewing:
|
||||||
---- -------------------
|
---- -------------------
|
||||||
In order to view the translation in the game, you need to compile your language
|
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:
|
file with the strgen utility, which is now bundled with the game.
|
||||||
http://www.openttd.org/download-strgen
|
|
||||||
To compile it yourself just take the normal OpenTTD sources and build that.
|
|
||||||
During the build process the strgen utility will be made.
|
|
||||||
|
|
||||||
strgen is a command-line utility. It takes the language filename as parameter.
|
strgen is a command-line utility. It takes the language filename as parameter.
|
||||||
Example:
|
Example:
|
||||||
@@ -498,47 +359,41 @@ put them in the data/ folder and you're set to go.
|
|||||||
X.X) Credits:
|
X.X) Credits:
|
||||||
---- --------
|
---- --------
|
||||||
The OpenTTD team (in alphabetical order):
|
The OpenTTD team (in alphabetical order):
|
||||||
Albert Hofkamp (Alberth) - GUI expert
|
|
||||||
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
|
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
|
||||||
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
|
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
|
||||||
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
|
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
|
||||||
Victor Fischer (Celestar) - Programming everywhere you need him to
|
Loïc Guilloux (glx) - General coding
|
||||||
Christoph Elsenhans (frosch) - General coding
|
Christoph Elsenhans (frosch) - General coding
|
||||||
Loïc Guilloux (glx) - Windows Expert
|
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
|
||||||
Michael Lutz (michi_cc) - Path based signals
|
Jonathan Coome (Maedhros) - High priest of the newGRF Temple
|
||||||
|
Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host
|
||||||
Owen Rudge (orudge) - Forum host, OS/2 port
|
Owen Rudge (orudge) - Forum host, OS/2 port
|
||||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
||||||
Remko Bijker (Rubidium) - Lead coder and way more
|
Remko Bijker (Rubidium) - Lead coder and way more
|
||||||
Zdeněk Sojka (SmatZ) - Bug finder and fixer
|
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
|
||||||
Thijs Marinussen (Yexo) - AI Framework
|
Zdenek Sojka (SmatZ) - Bug finder and fixer
|
||||||
|
|
||||||
Inactive Developers:
|
Inactive Developers:
|
||||||
|
Victor Fischer (Celestar) - Programming everywhere you need him to
|
||||||
Tamás Faragó (Darkvater) - Ex-Lead coder
|
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
|
|
||||||
Christoph Mallon (Tron) - Programmer, code correctness police
|
Christoph Mallon (Tron) - Programmer, code correctness police
|
||||||
|
|
||||||
Retired Developers:
|
Retired Developers:
|
||||||
Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)
|
Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)
|
||||||
Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)
|
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)
|
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, webhoster (0.3 - pre0.6)
|
||||||
Patric Stout (TrueLight) - Programmer (0.3 - pre0.7), sys op (active)
|
|
||||||
|
|
||||||
Thanks to:
|
Thanks to:
|
||||||
Josef Drexler - For his great work on TTDPatch.
|
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)
|
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
|
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
||||||
Stefan Meißner (sign_de) - For his work on the console
|
Stefan Meißner (sign_de) - For his work on the console
|
||||||
Mike Ragsdale - OpenTTD installer
|
Mike Ragsdale - OpenTTD installer
|
||||||
Cian Duffy (MYOB) - BeOS port / manual writing
|
Cian Duffy (MYOB) - BeOS port / manual writing
|
||||||
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
|
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
|
||||||
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
|
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
|
Michael Blunck - For revolutionizing TTD with awesome graphics
|
||||||
George - Canal graphics
|
George - Canal graphics
|
||||||
David Dallaston (Pikka) - Tram tracks
|
David Dallaston (Pikka) - Tram tracks
|
||||||
|
461
source.list
461
source.list
@@ -1,14 +1,14 @@
|
|||||||
# Source Files
|
# Source Files
|
||||||
airport.cpp
|
airport.cpp
|
||||||
animated_tile.cpp
|
core/alloc_func.cpp
|
||||||
articulated_vehicles.cpp
|
articulated_vehicles.cpp
|
||||||
autoreplace.cpp
|
autoreplace_cmd.cpp
|
||||||
aystar.cpp
|
aystar.cpp
|
||||||
|
core/bitmath_func.cpp
|
||||||
bmp.cpp
|
bmp.cpp
|
||||||
callback_table.cpp
|
callback_table.cpp
|
||||||
cargopacket.cpp
|
cargopacket.cpp
|
||||||
cargotype.cpp
|
cargotype.cpp
|
||||||
cheat.cpp
|
|
||||||
command.cpp
|
command.cpp
|
||||||
console.cpp
|
console.cpp
|
||||||
console_cmds.cpp
|
console_cmds.cpp
|
||||||
@@ -18,20 +18,18 @@ debug.cpp
|
|||||||
dedicated.cpp
|
dedicated.cpp
|
||||||
depot.cpp
|
depot.cpp
|
||||||
driver.cpp
|
driver.cpp
|
||||||
|
widgets/dropdown.cpp
|
||||||
economy.cpp
|
economy.cpp
|
||||||
effectvehicle.cpp
|
|
||||||
elrail.cpp
|
elrail.cpp
|
||||||
engine.cpp
|
engine.cpp
|
||||||
fileio.cpp
|
fileio.cpp
|
||||||
fios.cpp
|
fios.cpp
|
||||||
fontcache.cpp
|
fontcache.cpp
|
||||||
gamelog.cpp
|
|
||||||
genworld.cpp
|
genworld.cpp
|
||||||
gfx.cpp
|
gfx.cpp
|
||||||
gfxinit.cpp
|
gfxinit.cpp
|
||||||
heightmap.cpp
|
heightmap.cpp
|
||||||
highscore.cpp
|
helpers.cpp
|
||||||
ini.cpp
|
|
||||||
landscape.cpp
|
landscape.cpp
|
||||||
map.cpp
|
map.cpp
|
||||||
md5.cpp
|
md5.cpp
|
||||||
@@ -42,12 +40,12 @@ music.cpp
|
|||||||
namegen.cpp
|
namegen.cpp
|
||||||
network/network.cpp
|
network/network.cpp
|
||||||
network/network_client.cpp
|
network/network_client.cpp
|
||||||
network/network_command.cpp
|
network/network_data.cpp
|
||||||
network/network_content.cpp
|
|
||||||
network/network_gamelist.cpp
|
network/network_gamelist.cpp
|
||||||
network/network_server.cpp
|
network/network_server.cpp
|
||||||
network/network_udp.cpp
|
network/network_udp.cpp
|
||||||
npf.cpp
|
npf.cpp
|
||||||
|
oldloader.cpp
|
||||||
oldpool.cpp
|
oldpool.cpp
|
||||||
openttd.cpp
|
openttd.cpp
|
||||||
os_timer.cpp
|
os_timer.cpp
|
||||||
@@ -58,11 +56,13 @@ os_timer.cpp
|
|||||||
ottdres.rc
|
ottdres.rc
|
||||||
#end
|
#end
|
||||||
pathfind.cpp
|
pathfind.cpp
|
||||||
pbs.cpp
|
players.cpp
|
||||||
queue.cpp
|
queue.cpp
|
||||||
rail.cpp
|
rail.cpp
|
||||||
|
core/random_func.cpp
|
||||||
rev.cpp
|
rev.cpp
|
||||||
road.cpp
|
road.cpp
|
||||||
|
saveload.cpp
|
||||||
screenshot.cpp
|
screenshot.cpp
|
||||||
#if SDL
|
#if SDL
|
||||||
sdl.cpp
|
sdl.cpp
|
||||||
@@ -77,23 +77,7 @@ string.cpp
|
|||||||
strings.cpp
|
strings.cpp
|
||||||
texteff.cpp
|
texteff.cpp
|
||||||
tgp.cpp
|
tgp.cpp
|
||||||
#if HAVE_THREAD
|
thread.cpp
|
||||||
#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
|
tile_map.cpp
|
||||||
#if WIN32
|
#if WIN32
|
||||||
#else
|
#else
|
||||||
@@ -108,7 +92,6 @@ tile_map.cpp
|
|||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
vehicle.cpp
|
vehicle.cpp
|
||||||
vehiclelist.cpp
|
|
||||||
viewport.cpp
|
viewport.cpp
|
||||||
waypoint.cpp
|
waypoint.cpp
|
||||||
widget.cpp
|
widget.cpp
|
||||||
@@ -118,15 +101,10 @@ widget.cpp
|
|||||||
window.cpp
|
window.cpp
|
||||||
|
|
||||||
# Header Files
|
# Header Files
|
||||||
#if ALLEGRO
|
|
||||||
music/allegro_m.h
|
|
||||||
sound/allegro_s.h
|
|
||||||
video/allegro_v.h
|
|
||||||
#end
|
|
||||||
aircraft.h
|
aircraft.h
|
||||||
airport.h
|
airport.h
|
||||||
airport_movement.h
|
airport_movement.h
|
||||||
animated_tile_func.h
|
core/alloc_func.hpp
|
||||||
articulated_vehicles.h
|
articulated_vehicles.h
|
||||||
autoreplace_base.h
|
autoreplace_base.h
|
||||||
autoreplace_func.h
|
autoreplace_func.h
|
||||||
@@ -134,90 +112,62 @@ autoreplace_gui.h
|
|||||||
autoreplace_type.h
|
autoreplace_type.h
|
||||||
autoslope.h
|
autoslope.h
|
||||||
aystar.h
|
aystar.h
|
||||||
|
core/bitmath_func.hpp
|
||||||
bmp.h
|
bmp.h
|
||||||
bridge.h
|
bridge.h
|
||||||
callback_table.h
|
callback_table.h
|
||||||
cargo_type.h
|
cargo_type.h
|
||||||
cargopacket.h
|
cargopacket.h
|
||||||
cargotype.h
|
cargotype.h
|
||||||
cheat_func.h
|
|
||||||
cheat_type.h
|
|
||||||
cmd_helper.h
|
cmd_helper.h
|
||||||
command_func.h
|
command_func.h
|
||||||
command_type.h
|
command_type.h
|
||||||
company_base.h
|
console.h
|
||||||
company_func.h
|
|
||||||
company_gui.h
|
|
||||||
company_manager_face.h
|
|
||||||
company_type.h
|
|
||||||
console_func.h
|
|
||||||
console_gui.h
|
|
||||||
console_internal.h
|
|
||||||
console_type.h
|
|
||||||
currency.h
|
currency.h
|
||||||
date_func.h
|
date_func.h
|
||||||
date_type.h
|
date_type.h
|
||||||
debug.h
|
debug.h
|
||||||
video/dedicated_v.h
|
video/dedicated_v.h
|
||||||
depot_base.h
|
depot.h
|
||||||
depot_func.h
|
|
||||||
depot_map.h
|
|
||||||
depot_type.h
|
|
||||||
direction_func.h
|
direction_func.h
|
||||||
direction_type.h
|
direction_type.h
|
||||||
music/dmusic.h
|
music/dmusic.h
|
||||||
driver.h
|
driver.h
|
||||||
economy_base.h
|
widgets/dropdown_func.h
|
||||||
|
widgets/dropdown_type.h
|
||||||
economy_func.h
|
economy_func.h
|
||||||
economy_type.h
|
economy_type.h
|
||||||
effectvehicle_base.h
|
core/endian_func.hpp
|
||||||
effectvehicle_func.h
|
engine.h
|
||||||
elrail_func.h
|
core/enum_type.hpp
|
||||||
engine_base.h
|
fileio.h
|
||||||
engine_func.h
|
|
||||||
engine_gui.h
|
|
||||||
engine_type.h
|
|
||||||
fileio_func.h
|
|
||||||
fileio_type.h
|
|
||||||
fios.h
|
fios.h
|
||||||
fontcache.h
|
fontcache.h
|
||||||
functions.h
|
functions.h
|
||||||
gamelog.h
|
|
||||||
gamelog_internal.h
|
|
||||||
genworld.h
|
genworld.h
|
||||||
|
core/geometry_type.hpp
|
||||||
gfx_func.h
|
gfx_func.h
|
||||||
gfx_type.h
|
gfx_type.h
|
||||||
gfxinit.h
|
gfxinit.h
|
||||||
group.h
|
group.h
|
||||||
group_gui.h
|
group_gui.h
|
||||||
group_type.h
|
|
||||||
gui.h
|
gui.h
|
||||||
heightmap.h
|
heightmap.h
|
||||||
highscore.h
|
|
||||||
industry.h
|
industry.h
|
||||||
industry_type.h
|
industry_type.h
|
||||||
ini_type.h
|
|
||||||
landscape.h
|
landscape.h
|
||||||
landscape_type.h
|
|
||||||
livery.h
|
livery.h
|
||||||
lzoconf.h
|
core/math_func.hpp
|
||||||
map_func.h
|
|
||||||
map_type.h
|
|
||||||
md5.h
|
md5.h
|
||||||
minilzo.h
|
|
||||||
mixer.h
|
mixer.h
|
||||||
music.h
|
music.h
|
||||||
namegen_func.h
|
|
||||||
network/network.h
|
network/network.h
|
||||||
network/network_base.h
|
|
||||||
network/network_client.h
|
network/network_client.h
|
||||||
network/network_content.h
|
network/network_data.h
|
||||||
network/network_func.h
|
|
||||||
network/network_gamelist.h
|
network/network_gamelist.h
|
||||||
network/network_gui.h
|
network/network_gui.h
|
||||||
network/network_internal.h
|
network/network_internal.h
|
||||||
network/network_server.h
|
network/network_server.h
|
||||||
network/network_type.h
|
|
||||||
network/network_udp.h
|
network/network_udp.h
|
||||||
newgrf.h
|
newgrf.h
|
||||||
newgrf_callbacks.h
|
newgrf_callbacks.h
|
||||||
@@ -237,35 +187,34 @@ newgrf_storage.h
|
|||||||
newgrf_text.h
|
newgrf_text.h
|
||||||
newgrf_town.h
|
newgrf_town.h
|
||||||
newgrf_townname.h
|
newgrf_townname.h
|
||||||
news_func.h
|
news.h
|
||||||
news_gui.h
|
|
||||||
news_type.h
|
|
||||||
npf.h
|
npf.h
|
||||||
music/null_m.h
|
music/null_m.h
|
||||||
sound/null_s.h
|
sound/null_s.h
|
||||||
video/null_v.h
|
video/null_v.h
|
||||||
oldpool.h
|
oldpool.h
|
||||||
oldpool_func.h
|
|
||||||
openttd.h
|
openttd.h
|
||||||
order_base.h
|
order.h
|
||||||
order_func.h
|
core/overflowsafe_type.hpp
|
||||||
order_type.h
|
|
||||||
pathfind.h
|
pathfind.h
|
||||||
pbs.h
|
player_base.h
|
||||||
querystring_gui.h
|
player_face.h
|
||||||
|
player_func.h
|
||||||
|
player_gui.h
|
||||||
|
player_type.h
|
||||||
queue.h
|
queue.h
|
||||||
rail.h
|
rail.h
|
||||||
rail_gui.h
|
rail_gui.h
|
||||||
rail_type.h
|
rail_type.h
|
||||||
rev.h
|
core/random_func.hpp
|
||||||
road_cmd.h
|
road_cmd.h
|
||||||
road_func.h
|
road_func.h
|
||||||
road_gui.h
|
road_gui.h
|
||||||
road_internal.h
|
road_internal.h
|
||||||
road_type.h
|
road_type.h
|
||||||
roadveh.h
|
roadveh.h
|
||||||
|
saveload.h
|
||||||
screenshot.h
|
screenshot.h
|
||||||
sdl.h
|
|
||||||
sound/sdl_s.h
|
sound/sdl_s.h
|
||||||
video/sdl_v.h
|
video/sdl_v.h
|
||||||
settings_func.h
|
settings_func.h
|
||||||
@@ -273,29 +222,20 @@ settings_internal.h
|
|||||||
settings_type.h
|
settings_type.h
|
||||||
ship.h
|
ship.h
|
||||||
signal_func.h
|
signal_func.h
|
||||||
signal_type.h
|
signs.h
|
||||||
signs_base.h
|
|
||||||
signs_func.h
|
|
||||||
signs_type.h
|
|
||||||
slope_func.h
|
slope_func.h
|
||||||
slope_type.h
|
slope_type.h
|
||||||
sortlist_type.h
|
|
||||||
sound_func.h
|
sound_func.h
|
||||||
sound_type.h
|
sound_type.h
|
||||||
sprite.h
|
sprite.h
|
||||||
spritecache.h
|
spritecache.h
|
||||||
station_base.h
|
station.h
|
||||||
station_func.h
|
|
||||||
station_gui.h
|
station_gui.h
|
||||||
station_type.h
|
|
||||||
statusbar_gui.h
|
|
||||||
stdafx.h
|
stdafx.h
|
||||||
strgen/strgen.h
|
|
||||||
string_func.h
|
string_func.h
|
||||||
string_type.h
|
string_type.h
|
||||||
strings_func.h
|
strings_func.h
|
||||||
strings_type.h
|
strings_type.h
|
||||||
tar_type.h
|
|
||||||
terraform_gui.h
|
terraform_gui.h
|
||||||
textbuf_gui.h
|
textbuf_gui.h
|
||||||
texteff.hpp
|
texteff.hpp
|
||||||
@@ -303,10 +243,7 @@ tgp.h
|
|||||||
thread.h
|
thread.h
|
||||||
tile_cmd.h
|
tile_cmd.h
|
||||||
tile_type.h
|
tile_type.h
|
||||||
tilehighlight_func.h
|
|
||||||
tilehighlight_type.h
|
|
||||||
timetable.h
|
timetable.h
|
||||||
toolbar_gui.h
|
|
||||||
town.h
|
town.h
|
||||||
town_type.h
|
town_type.h
|
||||||
track_func.h
|
track_func.h
|
||||||
@@ -314,23 +251,14 @@ track_type.h
|
|||||||
train.h
|
train.h
|
||||||
transparency.h
|
transparency.h
|
||||||
transparency_gui.h
|
transparency_gui.h
|
||||||
transport_type.h
|
|
||||||
tunnelbridge.h
|
tunnelbridge.h
|
||||||
unmovable.h
|
unmovable.h
|
||||||
variables.h
|
variables.h
|
||||||
vehicle_base.h
|
vehicle_base.h
|
||||||
vehicle_func.h
|
vehicle_func.h
|
||||||
vehicle_gui.h
|
vehicle_gui.h
|
||||||
vehicle_gui_base.h
|
|
||||||
vehicle_type.h
|
vehicle_type.h
|
||||||
vehiclelist.h
|
|
||||||
viewport_func.h
|
|
||||||
viewport_type.h
|
|
||||||
water.h
|
|
||||||
waypoint.h
|
waypoint.h
|
||||||
waypoint_type.h
|
|
||||||
widget_type.h
|
|
||||||
win32.h
|
|
||||||
music/win32_m.h
|
music/win32_m.h
|
||||||
sound/win32_s.h
|
sound/win32_s.h
|
||||||
video/win32_v.h
|
video/win32_v.h
|
||||||
@@ -339,40 +267,6 @@ window_gui.h
|
|||||||
window_type.h
|
window_type.h
|
||||||
zoom_func.h
|
zoom_func.h
|
||||||
zoom_type.h
|
zoom_type.h
|
||||||
#if WIN32
|
|
||||||
#else
|
|
||||||
music/bemidi.h
|
|
||||||
music/extmidi.h
|
|
||||||
music/libtimidity.h
|
|
||||||
music/os2_m.h
|
|
||||||
music/qtmidi.h
|
|
||||||
os/macosx/macos.h
|
|
||||||
os/macosx/osx_stdafx.h
|
|
||||||
os/macosx/splash.h
|
|
||||||
sound/cocoa_s.h
|
|
||||||
video/cocoa/cocoa_keys.h
|
|
||||||
video/cocoa/cocoa_v.h
|
|
||||||
#end
|
|
||||||
|
|
||||||
# Core Source Code
|
|
||||||
core/alloc_func.cpp
|
|
||||||
core/alloc_func.hpp
|
|
||||||
core/alloc_type.hpp
|
|
||||||
core/bitmath_func.cpp
|
|
||||||
core/bitmath_func.hpp
|
|
||||||
core/endian_func.hpp
|
|
||||||
core/endian_type.hpp
|
|
||||||
core/enum_type.hpp
|
|
||||||
core/geometry_type.hpp
|
|
||||||
core/math_func.hpp
|
|
||||||
core/mem_func.hpp
|
|
||||||
core/overflowsafe_type.hpp
|
|
||||||
core/random_func.cpp
|
|
||||||
core/random_func.hpp
|
|
||||||
core/smallmap_type.hpp
|
|
||||||
core/smallvec_type.hpp
|
|
||||||
core/sort_func.hpp
|
|
||||||
core/string_compare_type.hpp
|
|
||||||
|
|
||||||
# GUI Source Code
|
# GUI Source Code
|
||||||
aircraft_gui.cpp
|
aircraft_gui.cpp
|
||||||
@@ -380,28 +274,22 @@ airport_gui.cpp
|
|||||||
autoreplace_gui.cpp
|
autoreplace_gui.cpp
|
||||||
bridge_gui.cpp
|
bridge_gui.cpp
|
||||||
build_vehicle_gui.cpp
|
build_vehicle_gui.cpp
|
||||||
cheat_gui.cpp
|
|
||||||
company_gui.cpp
|
|
||||||
console_gui.cpp
|
|
||||||
depot_gui.cpp
|
depot_gui.cpp
|
||||||
dock_gui.cpp
|
dock_gui.cpp
|
||||||
engine_gui.cpp
|
engine_gui.cpp
|
||||||
genworld_gui.cpp
|
genworld_gui.cpp
|
||||||
graph_gui.cpp
|
graph_gui.cpp
|
||||||
group_gui.cpp
|
group_gui.cpp
|
||||||
highscore_gui.cpp
|
|
||||||
industry_gui.cpp
|
industry_gui.cpp
|
||||||
intro_gui.cpp
|
intro_gui.cpp
|
||||||
main_gui.cpp
|
main_gui.cpp
|
||||||
misc_gui.cpp
|
misc_gui.cpp
|
||||||
music_gui.cpp
|
music_gui.cpp
|
||||||
network/network_chat_gui.cpp
|
|
||||||
network/network_content_gui.cpp
|
|
||||||
network/network_gui.cpp
|
network/network_gui.cpp
|
||||||
newgrf_gui.cpp
|
newgrf_gui.cpp
|
||||||
news_gui.cpp
|
news_gui.cpp
|
||||||
order_gui.cpp
|
order_gui.cpp
|
||||||
osk_gui.cpp
|
player_gui.cpp
|
||||||
rail_gui.cpp
|
rail_gui.cpp
|
||||||
road_gui.cpp
|
road_gui.cpp
|
||||||
roadveh_gui.cpp
|
roadveh_gui.cpp
|
||||||
@@ -410,28 +298,17 @@ ship_gui.cpp
|
|||||||
signs_gui.cpp
|
signs_gui.cpp
|
||||||
smallmap_gui.cpp
|
smallmap_gui.cpp
|
||||||
station_gui.cpp
|
station_gui.cpp
|
||||||
statusbar_gui.cpp
|
|
||||||
subsidy_gui.cpp
|
subsidy_gui.cpp
|
||||||
terraform_gui.cpp
|
terraform_gui.cpp
|
||||||
timetable_gui.cpp
|
timetable_gui.cpp
|
||||||
toolbar_gui.cpp
|
|
||||||
town_gui.cpp
|
town_gui.cpp
|
||||||
train_gui.cpp
|
train_gui.cpp
|
||||||
transparency_gui.cpp
|
transparency_gui.cpp
|
||||||
tree_gui.cpp
|
|
||||||
vehicle_gui.cpp
|
vehicle_gui.cpp
|
||||||
waypoint_gui.cpp
|
|
||||||
|
|
||||||
# Widgets
|
# Landscape
|
||||||
widgets/dropdown.cpp
|
|
||||||
widgets/dropdown_func.h
|
|
||||||
widgets/dropdown_type.h
|
|
||||||
|
|
||||||
# Command handlers
|
|
||||||
aircraft_cmd.cpp
|
aircraft_cmd.cpp
|
||||||
autoreplace_cmd.cpp
|
|
||||||
clear_cmd.cpp
|
clear_cmd.cpp
|
||||||
company_cmd.cpp
|
|
||||||
disaster_cmd.cpp
|
disaster_cmd.cpp
|
||||||
dummy_land.cpp
|
dummy_land.cpp
|
||||||
group_cmd.cpp
|
group_cmd.cpp
|
||||||
@@ -442,7 +319,6 @@ rail_cmd.cpp
|
|||||||
road_cmd.cpp
|
road_cmd.cpp
|
||||||
roadveh_cmd.cpp
|
roadveh_cmd.cpp
|
||||||
ship_cmd.cpp
|
ship_cmd.cpp
|
||||||
signs_cmd.cpp
|
|
||||||
station_cmd.cpp
|
station_cmd.cpp
|
||||||
terraform_cmd.cpp
|
terraform_cmd.cpp
|
||||||
timetable_cmd.cpp
|
timetable_cmd.cpp
|
||||||
@@ -451,60 +327,22 @@ train_cmd.cpp
|
|||||||
tree_cmd.cpp
|
tree_cmd.cpp
|
||||||
tunnelbridge_cmd.cpp
|
tunnelbridge_cmd.cpp
|
||||||
unmovable_cmd.cpp
|
unmovable_cmd.cpp
|
||||||
vehicle_cmd.cpp
|
|
||||||
water_cmd.cpp
|
water_cmd.cpp
|
||||||
waypoint_cmd.cpp
|
|
||||||
|
|
||||||
# Save/Load handlers
|
|
||||||
saveload/afterload.cpp
|
|
||||||
saveload/ai_sl.cpp
|
|
||||||
saveload/animated_tile_sl.cpp
|
|
||||||
saveload/autoreplace_sl.cpp
|
|
||||||
saveload/cargopacket_sl.cpp
|
|
||||||
saveload/cheat_sl.cpp
|
|
||||||
saveload/company_sl.cpp
|
|
||||||
saveload/depot_sl.cpp
|
|
||||||
saveload/economy_sl.cpp
|
|
||||||
saveload/engine_sl.cpp
|
|
||||||
saveload/gamelog_sl.cpp
|
|
||||||
saveload/group_sl.cpp
|
|
||||||
saveload/industry_sl.cpp
|
|
||||||
saveload/map_sl.cpp
|
|
||||||
saveload/misc_sl.cpp
|
|
||||||
saveload/newgrf_sl.cpp
|
|
||||||
saveload/oldloader.cpp
|
|
||||||
saveload/oldloader.h
|
|
||||||
saveload/oldloader_sl.cpp
|
|
||||||
saveload/order_sl.cpp
|
|
||||||
saveload/saveload.cpp
|
|
||||||
saveload/saveload.h
|
|
||||||
saveload/saveload_internal.h
|
|
||||||
saveload/signs_sl.cpp
|
|
||||||
saveload/station_sl.cpp
|
|
||||||
saveload/strings_sl.cpp
|
|
||||||
saveload/subsidy_sl.cpp
|
|
||||||
saveload/town_sl.cpp
|
|
||||||
saveload/vehicle_sl.cpp
|
|
||||||
saveload/waypoint_sl.cpp
|
|
||||||
|
|
||||||
# Tables
|
# Tables
|
||||||
|
table/ai_rail.h
|
||||||
table/animcursors.h
|
table/animcursors.h
|
||||||
table/autorail.h
|
table/autorail.h
|
||||||
table/bridge_land.h
|
|
||||||
table/build_industry.h
|
table/build_industry.h
|
||||||
table/cargo_const.h
|
table/cargo_const.h
|
||||||
table/clear_land.h
|
table/clear_land.h
|
||||||
table/control_codes.h
|
|
||||||
table/elrail_data.h
|
table/elrail_data.h
|
||||||
table/engines.h
|
table/engines.h
|
||||||
table/files.h
|
|
||||||
table/genland.h
|
table/genland.h
|
||||||
table/industry_land.h
|
table/industry_land.h
|
||||||
table/landscape_sprite.h
|
table/landscape_sprite.h
|
||||||
table/namegen.h
|
table/namegen.h
|
||||||
table/palette_convert.h
|
|
||||||
table/palettes.h
|
table/palettes.h
|
||||||
table/railtypes.h
|
|
||||||
table/road_land.h
|
table/road_land.h
|
||||||
table/roadveh_movement.h
|
table/roadveh_movement.h
|
||||||
table/sprites.h
|
table/sprites.h
|
||||||
@@ -514,187 +352,18 @@ table/town_land.h
|
|||||||
table/track_land.h
|
table/track_land.h
|
||||||
table/train_cmd.h
|
table/train_cmd.h
|
||||||
table/tree_land.h
|
table/tree_land.h
|
||||||
table/unicode.h
|
|
||||||
table/unmovable_land.h
|
table/unmovable_land.h
|
||||||
table/water_land.h
|
table/water_land.h
|
||||||
|
|
||||||
# Script
|
# AI Files
|
||||||
script/squirrel.cpp
|
ai/ai.cpp
|
||||||
script/squirrel.hpp
|
ai/trolly/build.cpp
|
||||||
script/squirrel_class.hpp
|
ai/default/default.cpp
|
||||||
script/squirrel_helper.hpp
|
ai/trolly/pathfinder.cpp
|
||||||
script/squirrel_helper_type.hpp
|
ai/trolly/shared.cpp
|
||||||
script/squirrel_std.cpp
|
ai/trolly/trolly.cpp
|
||||||
script/squirrel_std.hpp
|
|
||||||
|
|
||||||
# Squirrel
|
|
||||||
3rdparty/squirrel/squirrel/sqapi.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqbaselib.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqclass.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqcompiler.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqdebug.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqfuncstate.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqlexer.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqmem.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqobject.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqstate.cpp
|
|
||||||
3rdparty/squirrel/sqstdlib/sqstdaux.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqtable.cpp
|
|
||||||
3rdparty/squirrel/squirrel/sqvm.cpp
|
|
||||||
|
|
||||||
# Squirrel headers
|
|
||||||
3rdparty/squirrel/squirrel/sqarray.h
|
|
||||||
3rdparty/squirrel/squirrel/sqclass.h
|
|
||||||
3rdparty/squirrel/squirrel/sqclosure.h
|
|
||||||
3rdparty/squirrel/squirrel/sqcompiler.h
|
|
||||||
3rdparty/squirrel/squirrel/sqfuncproto.h
|
|
||||||
3rdparty/squirrel/squirrel/sqfuncstate.h
|
|
||||||
3rdparty/squirrel/squirrel/sqlexer.h
|
|
||||||
3rdparty/squirrel/squirrel/sqobject.h
|
|
||||||
3rdparty/squirrel/squirrel/sqopcodes.h
|
|
||||||
3rdparty/squirrel/squirrel/sqpcheader.h
|
|
||||||
3rdparty/squirrel/squirrel/sqstate.h
|
|
||||||
3rdparty/squirrel/include/sqstdaux.h
|
|
||||||
3rdparty/squirrel/include/sqstdblob.h
|
|
||||||
3rdparty/squirrel/sqstdlib/sqstdblobimpl.h
|
|
||||||
3rdparty/squirrel/include/sqstdio.h
|
|
||||||
3rdparty/squirrel/include/sqstdmath.h
|
|
||||||
3rdparty/squirrel/sqstdlib/sqstdstream.h
|
|
||||||
3rdparty/squirrel/include/sqstdstring.h
|
|
||||||
3rdparty/squirrel/include/sqstdsystem.h
|
|
||||||
3rdparty/squirrel/squirrel/sqstring.h
|
|
||||||
3rdparty/squirrel/squirrel/sqtable.h
|
|
||||||
3rdparty/squirrel/include/squirrel.h
|
|
||||||
3rdparty/squirrel/squirrel/squserdata.h
|
|
||||||
3rdparty/squirrel/squirrel/squtils.h
|
|
||||||
3rdparty/squirrel/squirrel/sqvm.h
|
|
||||||
|
|
||||||
# AI Core
|
|
||||||
ai/ai.hpp
|
|
||||||
ai/ai_config.cpp
|
|
||||||
ai/ai_config.hpp
|
|
||||||
ai/ai_core.cpp
|
|
||||||
ai/ai_gui.cpp
|
|
||||||
ai/ai_gui.hpp
|
|
||||||
ai/ai_info.cpp
|
|
||||||
ai/ai_info.hpp
|
|
||||||
ai/ai_info_dummy.cpp
|
|
||||||
ai/ai_instance.cpp
|
|
||||||
ai/ai_instance.hpp
|
|
||||||
ai/ai_scanner.cpp
|
|
||||||
ai/ai_scanner.hpp
|
|
||||||
ai/ai_storage.hpp
|
|
||||||
|
|
||||||
# AI API
|
|
||||||
ai/api/ai_abstractlist.hpp
|
|
||||||
ai/api/ai_accounting.hpp
|
|
||||||
ai/api/ai_airport.hpp
|
|
||||||
ai/api/ai_base.hpp
|
|
||||||
ai/api/ai_bridge.hpp
|
|
||||||
ai/api/ai_bridgelist.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
|
|
||||||
ai/api/ai_depotlist.hpp
|
|
||||||
ai/api/ai_engine.hpp
|
|
||||||
ai/api/ai_enginelist.hpp
|
|
||||||
ai/api/ai_error.hpp
|
|
||||||
ai/api/ai_event.hpp
|
|
||||||
ai/api/ai_event_types.hpp
|
|
||||||
ai/api/ai_execmode.hpp
|
|
||||||
ai/api/ai_gamesettings.hpp
|
|
||||||
ai/api/ai_group.hpp
|
|
||||||
ai/api/ai_grouplist.hpp
|
|
||||||
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
|
|
||||||
ai/api/ai_marine.hpp
|
|
||||||
ai/api/ai_object.hpp
|
|
||||||
ai/api/ai_order.hpp
|
|
||||||
ai/api/ai_rail.hpp
|
|
||||||
ai/api/ai_railtypelist.hpp
|
|
||||||
ai/api/ai_road.hpp
|
|
||||||
ai/api/ai_sign.hpp
|
|
||||||
ai/api/ai_signlist.hpp
|
|
||||||
ai/api/ai_station.hpp
|
|
||||||
ai/api/ai_stationlist.hpp
|
|
||||||
ai/api/ai_subsidy.hpp
|
|
||||||
ai/api/ai_subsidylist.hpp
|
|
||||||
ai/api/ai_testmode.hpp
|
|
||||||
ai/api/ai_tile.hpp
|
|
||||||
ai/api/ai_tilelist.hpp
|
|
||||||
ai/api/ai_town.hpp
|
|
||||||
ai/api/ai_townlist.hpp
|
|
||||||
ai/api/ai_tunnel.hpp
|
|
||||||
ai/api/ai_types.hpp
|
|
||||||
ai/api/ai_vehicle.hpp
|
|
||||||
ai/api/ai_vehiclelist.hpp
|
|
||||||
ai/api/ai_waypoint.hpp
|
|
||||||
ai/api/ai_waypointlist.hpp
|
|
||||||
|
|
||||||
# AI API Implementation
|
|
||||||
ai/api/ai_abstractlist.cpp
|
|
||||||
ai/api/ai_accounting.cpp
|
|
||||||
ai/api/ai_airport.cpp
|
|
||||||
ai/api/ai_base.cpp
|
|
||||||
ai/api/ai_bridge.cpp
|
|
||||||
ai/api/ai_bridgelist.cpp
|
|
||||||
ai/api/ai_cargo.cpp
|
|
||||||
ai/api/ai_cargolist.cpp
|
|
||||||
ai/api/ai_company.cpp
|
|
||||||
ai/api/ai_controller.cpp
|
|
||||||
ai/api/ai_date.cpp
|
|
||||||
ai/api/ai_depotlist.cpp
|
|
||||||
ai/api/ai_engine.cpp
|
|
||||||
ai/api/ai_enginelist.cpp
|
|
||||||
ai/api/ai_error.cpp
|
|
||||||
ai/api/ai_event.cpp
|
|
||||||
ai/api/ai_event_types.cpp
|
|
||||||
ai/api/ai_execmode.cpp
|
|
||||||
ai/api/ai_gamesettings.cpp
|
|
||||||
ai/api/ai_group.cpp
|
|
||||||
ai/api/ai_grouplist.cpp
|
|
||||||
ai/api/ai_industry.cpp
|
|
||||||
ai/api/ai_industrylist.cpp
|
|
||||||
ai/api/ai_industrytype.cpp
|
|
||||||
ai/api/ai_industrytypelist.cpp
|
|
||||||
ai/api/ai_list.cpp
|
|
||||||
ai/api/ai_log.cpp
|
|
||||||
ai/api/ai_map.cpp
|
|
||||||
ai/api/ai_marine.cpp
|
|
||||||
ai/api/ai_object.cpp
|
|
||||||
ai/api/ai_order.cpp
|
|
||||||
ai/api/ai_rail.cpp
|
|
||||||
ai/api/ai_railtypelist.cpp
|
|
||||||
ai/api/ai_road.cpp
|
|
||||||
ai/api/ai_sign.cpp
|
|
||||||
ai/api/ai_signlist.cpp
|
|
||||||
ai/api/ai_station.cpp
|
|
||||||
ai/api/ai_stationlist.cpp
|
|
||||||
ai/api/ai_subsidy.cpp
|
|
||||||
ai/api/ai_subsidylist.cpp
|
|
||||||
ai/api/ai_testmode.cpp
|
|
||||||
ai/api/ai_tile.cpp
|
|
||||||
ai/api/ai_tilelist.cpp
|
|
||||||
ai/api/ai_town.cpp
|
|
||||||
ai/api/ai_townlist.cpp
|
|
||||||
ai/api/ai_tunnel.cpp
|
|
||||||
ai/api/ai_vehicle.cpp
|
|
||||||
ai/api/ai_vehiclelist.cpp
|
|
||||||
ai/api/ai_waypoint.cpp
|
|
||||||
ai/api/ai_waypointlist.cpp
|
|
||||||
|
|
||||||
# Blitters
|
# Blitters
|
||||||
#if DEDICATED
|
|
||||||
#else
|
|
||||||
blitter/32bpp_anim.cpp
|
blitter/32bpp_anim.cpp
|
||||||
blitter/32bpp_anim.hpp
|
blitter/32bpp_anim.hpp
|
||||||
blitter/32bpp_base.cpp
|
blitter/32bpp_base.cpp
|
||||||
@@ -711,7 +380,6 @@ blitter/8bpp_optimized.cpp
|
|||||||
blitter/8bpp_optimized.hpp
|
blitter/8bpp_optimized.hpp
|
||||||
blitter/8bpp_simple.cpp
|
blitter/8bpp_simple.cpp
|
||||||
blitter/8bpp_simple.hpp
|
blitter/8bpp_simple.hpp
|
||||||
#end
|
|
||||||
blitter/base.hpp
|
blitter/base.hpp
|
||||||
blitter/factory.hpp
|
blitter/factory.hpp
|
||||||
blitter/null.cpp
|
blitter/null.cpp
|
||||||
@@ -773,7 +441,6 @@ water_map.h
|
|||||||
misc/array.hpp
|
misc/array.hpp
|
||||||
misc/binaryheap.hpp
|
misc/binaryheap.hpp
|
||||||
misc/blob.hpp
|
misc/blob.hpp
|
||||||
misc/countedobj.cpp
|
|
||||||
misc/countedptr.hpp
|
misc/countedptr.hpp
|
||||||
misc/crc32.hpp
|
misc/crc32.hpp
|
||||||
misc/dbg_helpers.cpp
|
misc/dbg_helpers.cpp
|
||||||
@@ -784,30 +451,22 @@ misc/str.hpp
|
|||||||
misc/strapi.hpp
|
misc/strapi.hpp
|
||||||
|
|
||||||
# Network Core
|
# Network Core
|
||||||
network/core/address.cpp
|
|
||||||
network/core/address.h
|
|
||||||
network/core/config.h
|
network/core/config.h
|
||||||
network/core/core.cpp
|
network/core/core.cpp
|
||||||
network/core/core.h
|
network/core/core.h
|
||||||
network/core/game.h
|
network/core/game.h
|
||||||
network/core/host.cpp
|
|
||||||
network/core/host.h
|
|
||||||
network/core/os_abstraction.h
|
network/core/os_abstraction.h
|
||||||
network/core/packet.cpp
|
network/core/packet.cpp
|
||||||
network/core/packet.h
|
network/core/packet.h
|
||||||
network/core/tcp.cpp
|
network/core/tcp.cpp
|
||||||
network/core/tcp.h
|
network/core/tcp.h
|
||||||
network/core/tcp_connect.cpp
|
|
||||||
network/core/tcp_content.cpp
|
|
||||||
network/core/tcp_content.h
|
|
||||||
network/core/tcp_game.cpp
|
|
||||||
network/core/tcp_game.h
|
|
||||||
network/core/udp.cpp
|
network/core/udp.cpp
|
||||||
network/core/udp.h
|
network/core/udp.h
|
||||||
|
|
||||||
# YAPF
|
# YAPF
|
||||||
yapf/follow_track.hpp
|
yapf/follow_track.hpp
|
||||||
yapf/nodelist.hpp
|
yapf/nodelist.hpp
|
||||||
|
yapf/track_dir.hpp
|
||||||
yapf/yapf.h
|
yapf/yapf.h
|
||||||
yapf/yapf.hpp
|
yapf/yapf.hpp
|
||||||
yapf/yapf_base.hpp
|
yapf/yapf_base.hpp
|
||||||
@@ -821,16 +480,12 @@ yapf/yapf_node_rail.hpp
|
|||||||
yapf/yapf_node_road.hpp
|
yapf/yapf_node_road.hpp
|
||||||
yapf/yapf_rail.cpp
|
yapf/yapf_rail.cpp
|
||||||
yapf/yapf_road.cpp
|
yapf/yapf_road.cpp
|
||||||
|
yapf/yapf_settings.h
|
||||||
yapf/yapf_ship.cpp
|
yapf/yapf_ship.cpp
|
||||||
|
|
||||||
# Video
|
# Video
|
||||||
video/dedicated_v.cpp
|
video/dedicated_v.cpp
|
||||||
video/null_v.cpp
|
video/null_v.cpp
|
||||||
#if DEDICATED
|
|
||||||
#else
|
|
||||||
#if ALLEGRO
|
|
||||||
video/allegro_v.cpp
|
|
||||||
#end
|
|
||||||
#if SDL
|
#if SDL
|
||||||
video/sdl_v.cpp
|
video/sdl_v.cpp
|
||||||
#end
|
#end
|
||||||
@@ -840,18 +495,12 @@ video/null_v.cpp
|
|||||||
#if WINCE
|
#if WINCE
|
||||||
video/win32_v.cpp
|
video/win32_v.cpp
|
||||||
#end
|
#end
|
||||||
#end
|
|
||||||
|
|
||||||
# Music
|
# Music
|
||||||
music/null_m.cpp
|
|
||||||
#if DEDICATED
|
|
||||||
#else
|
|
||||||
#if ALLEGRO
|
|
||||||
music/allegro_m.cpp
|
|
||||||
#end
|
|
||||||
#if DIRECTMUSIC
|
#if DIRECTMUSIC
|
||||||
music/dmusic.cpp
|
music/dmusic.cpp
|
||||||
#end
|
#end
|
||||||
|
music/null_m.cpp
|
||||||
#if WIN32
|
#if WIN32
|
||||||
music/win32_m.cpp
|
music/win32_m.cpp
|
||||||
#else
|
#else
|
||||||
@@ -859,10 +508,7 @@ music/null_m.cpp
|
|||||||
#else
|
#else
|
||||||
#if PSP
|
#if PSP
|
||||||
#else
|
#else
|
||||||
#if DOS
|
music/extmidi.cpp
|
||||||
#else
|
|
||||||
music/extmidi.cpp
|
|
||||||
#end
|
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
@@ -872,22 +518,15 @@ music/null_m.cpp
|
|||||||
#if LIBTIMIDITY
|
#if LIBTIMIDITY
|
||||||
music/libtimidity.cpp
|
music/libtimidity.cpp
|
||||||
#end
|
#end
|
||||||
#end
|
|
||||||
|
|
||||||
# Sound
|
# Sound
|
||||||
sound/null_s.cpp
|
sound/null_s.cpp
|
||||||
#if DEDICATED
|
|
||||||
#else
|
|
||||||
#if ALLEGRO
|
|
||||||
sound/allegro_s.cpp
|
|
||||||
#end
|
|
||||||
#if SDL
|
#if SDL
|
||||||
sound/sdl_s.cpp
|
sound/sdl_s.cpp
|
||||||
#end
|
#end
|
||||||
#if WIN32
|
#if WIN32
|
||||||
sound/win32_s.cpp
|
sound/win32_s.cpp
|
||||||
#end
|
#end
|
||||||
#end
|
|
||||||
|
|
||||||
#if OSX
|
#if OSX
|
||||||
# OSX Files
|
# OSX Files
|
||||||
|
41
src/3rdparty/squirrel/COMPILE
vendored
41
src/3rdparty/squirrel/COMPILE
vendored
@@ -1,41 +0,0 @@
|
|||||||
Squirrel 2.2.1 stable
|
|
||||||
--------------------------------------------------------
|
|
||||||
What is in this distribution?
|
|
||||||
|
|
||||||
squirrel
|
|
||||||
static library implementing the compiler and interpreter of the language
|
|
||||||
|
|
||||||
sqstdlib
|
|
||||||
the standard utility libraries
|
|
||||||
|
|
||||||
sq
|
|
||||||
stand alone interpreter
|
|
||||||
|
|
||||||
doc
|
|
||||||
The manual
|
|
||||||
|
|
||||||
etc
|
|
||||||
a minimalistic embedding sample
|
|
||||||
|
|
||||||
samples
|
|
||||||
samples programs
|
|
||||||
|
|
||||||
|
|
||||||
HOW TO COMPILE
|
|
||||||
---------------------------------------------------------
|
|
||||||
GCC USERS
|
|
||||||
.........................................................
|
|
||||||
There is a very simple makefile that compiles all libraries and exes
|
|
||||||
from the root of the project run 'make'
|
|
||||||
|
|
||||||
for 32 bits systems
|
|
||||||
|
|
||||||
$ make
|
|
||||||
|
|
||||||
for 64 bits systems
|
|
||||||
|
|
||||||
$ make sq64
|
|
||||||
|
|
||||||
VISUAL C++ USERS
|
|
||||||
.........................................................
|
|
||||||
Open squirrel.dsw from the root project directory and build(dho!)
|
|
29
src/3rdparty/squirrel/COPYRIGHT
vendored
29
src/3rdparty/squirrel/COPYRIGHT
vendored
@@ -1,29 +0,0 @@
|
|||||||
Copyright (c) 2003-2008 Alberto Demichelis
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any
|
|
||||||
express or implied warranty. In no event will the
|
|
||||||
authors be held liable for any damages arising from
|
|
||||||
the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software
|
|
||||||
for any purpose, including commercial applications,
|
|
||||||
and to alter it and redistribute it freely, subject
|
|
||||||
to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be
|
|
||||||
misrepresented; you must not claim that
|
|
||||||
you wrote the original software. If you
|
|
||||||
use this software in a product, an
|
|
||||||
acknowledgment in the product
|
|
||||||
documentation would be appreciated but is
|
|
||||||
not required.
|
|
||||||
|
|
||||||
2. Altered source versions must be plainly
|
|
||||||
marked as such, and must not be
|
|
||||||
misrepresented as being the original
|
|
||||||
software.
|
|
||||||
|
|
||||||
3. This notice may not be removed or
|
|
||||||
altered from any source distribution.
|
|
||||||
-----------------------------------------------------
|
|
||||||
END OF COPYRIGHT
|
|
327
src/3rdparty/squirrel/HISTORY
vendored
327
src/3rdparty/squirrel/HISTORY
vendored
@@ -1,327 +0,0 @@
|
|||||||
***version 2.2.2 stable***
|
|
||||||
-fixed some behaviour inconsistencies in thread.call() and thread.wakeup() (thx Mr.Accident)
|
|
||||||
-fixed coroutine error propagation
|
|
||||||
-fixed lingering return value from native function (thx Tom Leonard)
|
|
||||||
-fixed a bug if array.sort() is given a bad sort function (thx Tom Leonard)
|
|
||||||
-fixed some minor api bug
|
|
||||||
-added sq_arrayremove() and sq_arrayinsert()
|
|
||||||
|
|
||||||
***2008-05-16 ***
|
|
||||||
***version 2.2.1 stable***
|
|
||||||
-fixed a tailcall bug
|
|
||||||
|
|
||||||
***2008-02-17 ***
|
|
||||||
***version 2.2 stable ***
|
|
||||||
-added _newslot metamethod in classes
|
|
||||||
-added enums added constants
|
|
||||||
-added sq_pushconsttable, sq_setconsttable
|
|
||||||
-added default param
|
|
||||||
-added octal literals(thx Dinosaur)
|
|
||||||
-fixed debug hook, 'calls' and 'returns' are properly notified in the same number.
|
|
||||||
-fixed a coroutine bug
|
|
||||||
|
|
||||||
***2007-07-29 ***
|
|
||||||
***version 2.1.2 stable***
|
|
||||||
-new behaviour for generators iteration using foreach
|
|
||||||
now when a generator is iterated by foreach the value returned by a 'return val' statement
|
|
||||||
will terminate the iteration but will not be returned as foreach iteration
|
|
||||||
-added sq_setclassudsize()
|
|
||||||
-added sq_clear()
|
|
||||||
-added table.clear(), array.clear()
|
|
||||||
-fixed sq_cmp() (thx jyuill)
|
|
||||||
-fixed minor bugs
|
|
||||||
|
|
||||||
***2006-08-21 ***
|
|
||||||
***version 2.1.1 stable***
|
|
||||||
-vm refactoring
|
|
||||||
-optimized internal function memory layout
|
|
||||||
-new global symbol _version_ (is the version string)
|
|
||||||
-code size optimization for float literals(on 32bits float builts)
|
|
||||||
-now the raw ref API(sq_addref etc...) is fully reentrant.
|
|
||||||
-fixed a bug in sq_getdelegate() now pushes null if the object doesn't have a delegate(thx MatzeB)
|
|
||||||
-improved C reference performances in NO_GARBAGE_COLLECTOR builds
|
|
||||||
-sq_getlocal() now enumerates also outer values.
|
|
||||||
-fixed regexp library for GCC users.
|
|
||||||
|
|
||||||
***2006-03-19 ***
|
|
||||||
***version 2.1 stable***
|
|
||||||
-added static class fields, new keyword static
|
|
||||||
-added 64bits architecture support
|
|
||||||
-added global slot _intsize_ int the base lib to recognize 32bits and 64bits builds
|
|
||||||
-added functions with fixed environment, closure.bindenv() built-in function
|
|
||||||
-all types except userdata and null implement the tostring() method
|
|
||||||
-string concatenation now invokes metamethod _tostring
|
|
||||||
-new metamethods for class objects _newmember and _inherited
|
|
||||||
-sq_call() sq_resume() sq_wakeupvm() have a new signature
|
|
||||||
-new C referencing implementation(scales more with the amount of references)
|
|
||||||
-refactored hash table
|
|
||||||
-new api functions sq_newslot(),sq_tobool(),sq_getbase(), sq_instanceof(), sq_bindenv()
|
|
||||||
-the api func sq_createslot was deprecated but still supported in form of C macro on top of sq_newslot
|
|
||||||
-sq_setreleasehook() now also works for classes
|
|
||||||
-stream.readstr() and stream.writestr() have been deprecated(this affects file and blob)
|
|
||||||
-fixed squirrel.h undeclared api calls
|
|
||||||
-fixed few minor bugs
|
|
||||||
-SQChar is now defined as wchar_t
|
|
||||||
-removed warning when building with -Wall -pedantic for GCC users
|
|
||||||
-added new std io function writeclosuretofile()
|
|
||||||
-added new std string functions strip(),rstrip(),lstrip() and split()
|
|
||||||
-regular expressions operators (+,*) now have more POSIX greedyness behaviour
|
|
||||||
-class constructors are now invoked as normal functions
|
|
||||||
|
|
||||||
***2005-10-02 ***
|
|
||||||
***version 2.0.5 stable***
|
|
||||||
-fixed some 64bits incompatibilities (thx sarge)
|
|
||||||
-fixed minor bug in the stdlib format() function (thx Rick)
|
|
||||||
-fixed a bug in dofile() that was preventing to compile empty files
|
|
||||||
-added new API sq_poptop() & sq_getfreevariable()
|
|
||||||
-some performance improvements
|
|
||||||
|
|
||||||
***2005-08-14 ***
|
|
||||||
***version 2.0.4 stable***
|
|
||||||
-weak references and related API calls
|
|
||||||
-added sq_objtobool()
|
|
||||||
-class instances memory policies improved(1 mem allocation for the whole instance)
|
|
||||||
-typetags are now declared as SQUserPointer instead of unsigned int
|
|
||||||
-first pass for 64bits compatibility
|
|
||||||
-fixed minor bug in the stdio stream
|
|
||||||
-fixed a bug in format()
|
|
||||||
-fixed bug in string.tointeger() and string.tofloat()
|
|
||||||
|
|
||||||
***2005-06-24 ***
|
|
||||||
***version 2.0.3 stable***
|
|
||||||
-dofile() and loadfile() in the iolib now can decode ASCII, UTF8 files UCS2 big-endian and little-endian
|
|
||||||
-sq_setparamscheck() : now typemesk can check for null
|
|
||||||
-added string escape sequence \xhhhh
|
|
||||||
-fixed some C++ standard incompatibilities
|
|
||||||
|
|
||||||
***2005-05-15 ***
|
|
||||||
***version 2.0.2 stable***
|
|
||||||
-performances improvements (expecially for GCC users)
|
|
||||||
-removed all dependencies from C++ exception handling
|
|
||||||
-various bugfixes
|
|
||||||
|
|
||||||
***2005-04-12 ***
|
|
||||||
***version 2.0.1 stable***
|
|
||||||
-various bugfixes
|
|
||||||
-sq_setparamscheck() now allows spaces in the typemask
|
|
||||||
|
|
||||||
***2005-04-03 ***
|
|
||||||
***version 2.0 stable***
|
|
||||||
-added API sq_gettypetag()
|
|
||||||
-added built-in function to the bool type(tointeger, tostring etc...)
|
|
||||||
|
|
||||||
***2005-02-27 ***
|
|
||||||
***version 2.0 release candidate 1(RC 1)***
|
|
||||||
-added API sq_reseterror()
|
|
||||||
-modified sq_release()
|
|
||||||
-now class instances can be cloned
|
|
||||||
-various bufixes
|
|
||||||
|
|
||||||
***2005-01-26 ***
|
|
||||||
***version 2.0 beta 1***
|
|
||||||
-added bool type
|
|
||||||
-class properties can be redefined in a derived class
|
|
||||||
-added ops *= /= and %=
|
|
||||||
-new syntax for class attributes declaration </ and /> instead of ( and )
|
|
||||||
-increased the max number of literals per function from 65535 to 16777215
|
|
||||||
-now free variables have proper lexical scoping
|
|
||||||
-added API sq_createinstance(), sq_pushbool(), sq_getbool()
|
|
||||||
-added built-in function type()
|
|
||||||
-added built-in function obj.rawin(key) in table,class and instance
|
|
||||||
-sq_rawget() and sq_rawset() now work also on classes and instances
|
|
||||||
-the VM no longer uses C++ exception handling (more suitable for embedded devices)
|
|
||||||
-various bufixes
|
|
||||||
|
|
||||||
***2004-12-21 ***
|
|
||||||
***version 2.0 alpha 2***
|
|
||||||
-globals scoping changed, now if :: is omitted the VM automatically falls back on the root table
|
|
||||||
-various bufixes
|
|
||||||
-added class level attributes
|
|
||||||
|
|
||||||
***2004-12-12 ***
|
|
||||||
***version 2.0 alpha 1***
|
|
||||||
-codebase branch from version 1.x
|
|
||||||
-added classes
|
|
||||||
-added functions with variable number of parameters(vargc & vargv and the ...)
|
|
||||||
-0 and 0.0 are now considered 'false' by all conditional statements(if,while,for,?,do-while)
|
|
||||||
-added new api functions sq_newclass() sq_setinstanceup() sq_getinstanceup() sq_getattributes() sq_setattributes()
|
|
||||||
-modified api sq_settypetag()
|
|
||||||
|
|
||||||
***2004-11-01 ***
|
|
||||||
***version 1.0 stable***
|
|
||||||
-fixed some minor bug
|
|
||||||
-improoved operator 'delete' performances
|
|
||||||
-added scientific notation for float numbers( eg. 2.e16 or 2.e-2)
|
|
||||||
|
|
||||||
***2004-08-30 ***
|
|
||||||
***version 1.0 release candidate 2(RC 2)***
|
|
||||||
-fixed bug in the vm(thx Pierre Renaux)
|
|
||||||
-fixed bug in the optimizer(thx Pierre Renaux)
|
|
||||||
-fixed some bug in the documentation(thx JD)
|
|
||||||
-added new api functions for raw object handling
|
|
||||||
-removed nested multiline comments
|
|
||||||
-reduced memory footprint in C references
|
|
||||||
|
|
||||||
***2004-08-23 ***
|
|
||||||
***version 1.0 release candidate 1(RC 1)***
|
|
||||||
-fixed division by zero
|
|
||||||
-the 'in' operator and obj.rawget() do not query the default delegate anymore
|
|
||||||
-added function sq_getprintfunc()
|
|
||||||
-added new standard library 'auxlib'(implements default error handlers)
|
|
||||||
|
|
||||||
***2004-07-12 ***
|
|
||||||
***version 1.0 beta 4***
|
|
||||||
-fixed a bug in the integer.tochar() built-in method
|
|
||||||
-fixed unary minus operator
|
|
||||||
-fixed bug in dofile()
|
|
||||||
-fixed inconsistency between != and == operators(on float/integer comparison)
|
|
||||||
-added javascript style unsigned right shift operator '>>>'
|
|
||||||
-added array(size) constructor built-in function
|
|
||||||
-array.resize(size,[fill]) built-in function accepts an optional 'fill' value
|
|
||||||
-improved debug API, added sq_getclosureinfo() and sq_setnativeclosurename()
|
|
||||||
|
|
||||||
***2004-05-23 ***
|
|
||||||
***version 1.0 beta 3***
|
|
||||||
-minor vm bug fixes
|
|
||||||
-string allocation is now faster
|
|
||||||
-tables and array memory usage is now less conservative(they shrink)
|
|
||||||
-added regular expression routines in the standard library
|
|
||||||
-The 'c' expression now accepts only 1 character(thx irbrian)
|
|
||||||
-multiline strings <[ ]> have been substituted with C# style verbatim strings (eg. @"string")
|
|
||||||
-added new keyword 'parent' for accessing the delegate of tables and unserdata
|
|
||||||
-The metamethod '_clone' has been renamed '_cloned'
|
|
||||||
-the _delslot metamethod's behaviour and prototype have been changed
|
|
||||||
-new default function in the integer and float object 'tochar()'
|
|
||||||
-the built-in function chcode2string has been removed
|
|
||||||
-the default method [table].getdelegate() has been removed
|
|
||||||
-new api sq_rawdeleteslot()
|
|
||||||
-new table built-in method rawdelete(key)
|
|
||||||
-the dynamic mudule loading has been removed from the standard distribution
|
|
||||||
-some optimizations in the VM
|
|
||||||
|
|
||||||
***2004-04-21 ***
|
|
||||||
***version 1.0 beta 2***
|
|
||||||
-minor compiler/parser bug fixes
|
|
||||||
-sq_newclosure has a different prototype, the "paramscheck" of paramter has been moved to the new function sq_setparamscheck()
|
|
||||||
-sq_setparamscheck allows to add automatic parameters type checking in native closures
|
|
||||||
-sq_compile() lost the lineinfo parameter
|
|
||||||
-new api sq_enabledebuginfo() globally sets compiler's debug info generation
|
|
||||||
-added consistency check on bytecode serialization
|
|
||||||
-fixed += operator, now works on strings like +
|
|
||||||
-added global slot in the base lib _charsize_ to recognize unicode builds from ascii builds runtime
|
|
||||||
-added registry table
|
|
||||||
-new api call sq_pushregistrytable()
|
|
||||||
-added type tag to the userdata type sq_settypetag()
|
|
||||||
-sq_getuserdata now queries the userdata typetag
|
|
||||||
-the built in function collect_garbage() as been renamed collectgarbage() for consistency reasons
|
|
||||||
-new standard libraries(sqlibs are now obsolete)
|
|
||||||
|
|
||||||
***2004-02-20 ***
|
|
||||||
***version 1.0 beta 1***
|
|
||||||
-fixed a bug in the compiler (thanks Martin Kofler)
|
|
||||||
-fixed bug in the switch case statement
|
|
||||||
-fixed the _unm metamethod
|
|
||||||
-fixed minor bugs in the API
|
|
||||||
-fixed automatic stack resizing
|
|
||||||
-first beta version
|
|
||||||
first pass code clean up in the VM and base lib
|
|
||||||
first pass code coverege test has been done on VM and built-in lib
|
|
||||||
-new VM creation API sq_open() sq_close() (sq_newvm and sq_releasevm are now obsolete)
|
|
||||||
-new api allows to specifiy a "print" function to output text(sq_printfunc)
|
|
||||||
-added some small optimizations
|
|
||||||
-new cooperative multi-threading capabilities in the base library(coroutines), VMs are now a built in type("thread")
|
|
||||||
-new built in functions have been added for manipulating the new "thread" type
|
|
||||||
-friend virtual machines share the same root table, error handler and debug hook by default
|
|
||||||
-new compile time options
|
|
||||||
|
|
||||||
***2004-01-19 ***
|
|
||||||
***version 0.9 alpha***
|
|
||||||
-fixed a garbage collection bug
|
|
||||||
-fixed some API bugs(thanks to Joshua Jensen)
|
|
||||||
-fixed tail calls (in the version 0.8 the tail call optimization was erroneously disabled)
|
|
||||||
-new function parameters semantic, now passing a wrong number of parameters generates an exception
|
|
||||||
-native closures have now a built in parameter number checking
|
|
||||||
-sq_rawget and sq_rawset now work also on arrays
|
|
||||||
-sq_getsize now woks also on userdata
|
|
||||||
-the userdata release hook prototype is changed(now passes the size of the userdata)
|
|
||||||
-the lexer reader function now returns an integer instead of a char that allows better error checking on the input(thx Joshua Jensen)
|
|
||||||
-faster compiler
|
|
||||||
-try/catch blocks do not cause any runtime memory allocation anymore
|
|
||||||
|
|
||||||
***2003-12-06 ***
|
|
||||||
***version 0.8 alpha***
|
|
||||||
-fixed a bug that was preventing to have callable userdata throught the metamethod _call
|
|
||||||
-fixed a garbage collection bug
|
|
||||||
-fixed == operator now can compare correctly different types
|
|
||||||
-new built in method getstackinfos(level)
|
|
||||||
-improoved line informations precision for the debug hook
|
|
||||||
-new api call sq_compilebuffer()
|
|
||||||
-new built-in api function compilestring()
|
|
||||||
-new syntactic sugar for function declarations inside tables
|
|
||||||
-the debug API has been finalized
|
|
||||||
|
|
||||||
***2003-11-17 ***
|
|
||||||
***version 0.7 alpha***
|
|
||||||
-fixed critical bug SQInteger the tail call system
|
|
||||||
-fixed bug in the continue statement code generation
|
|
||||||
-fixed func call param issue(thanks to Rewoonenco Andrew)
|
|
||||||
-added _delslot metamethod(thanks to Rewoonenco Andrew)
|
|
||||||
-new multiline string expression ( delimited by <[ and ]> )
|
|
||||||
-normal strings ("") do not allow embedded new line anymore
|
|
||||||
-reduced vm memory footprint(C refs are shared between friend VMs)
|
|
||||||
-new api method sq_deleteslot()
|
|
||||||
-new debug hook event 'r' is triggered when a function returns
|
|
||||||
|
|
||||||
***2003-11-04 ***
|
|
||||||
***version 0.6 alpha***
|
|
||||||
-fixed switch statement(was executing the default case after a break)
|
|
||||||
-sq_call() doesn't pop the closure (just the params)
|
|
||||||
-the vm execution can be suspended from the C API anytime (micro-threads)
|
|
||||||
-new api calls sq_suspendvm() sq_wakeupvm() sq_getvmstate() and sq_reservestack()
|
|
||||||
|
|
||||||
***2003-10-13 ***
|
|
||||||
***version 0.5 alpha***
|
|
||||||
-fixed some minor bug
|
|
||||||
-tested with non ASCII identifiers in unicode mode(I've tried chinese chars)
|
|
||||||
-added built-in function string.find()
|
|
||||||
-the built-in function array.sort() optionally accepts a cmp(a,b) function
|
|
||||||
-the debug hook function now has a new prototype debug_hook(event_type,sourcefile,line,functionname)
|
|
||||||
-fixed some debug info imprecision
|
|
||||||
|
|
||||||
***2003-10-01 ***
|
|
||||||
***version 0.4 alpha***
|
|
||||||
-faster VM
|
|
||||||
-sq_call will pop arguments and closure also in case of failure
|
|
||||||
-fixed a bug in sq_remove
|
|
||||||
-now the VM detects delegation cycles(and throws an exception)
|
|
||||||
-new operators ++ and --
|
|
||||||
-new operator ',' comma operator
|
|
||||||
-fixed some expression precedence issue
|
|
||||||
-fixed bug in sq_arraypop
|
|
||||||
|
|
||||||
***2003-09-15 ***
|
|
||||||
***version 0.3 alpha***
|
|
||||||
-fixed a bug in array::insert()
|
|
||||||
-optional Unicode core(define SQUNICODE or _UNICODE on Win32)
|
|
||||||
-sq_compiler uses a new reader function SQLEXREADFUNC
|
|
||||||
-the debug hook passes 'l' instead of 'line' for line callbacks
|
|
||||||
and 'c' instead of 'call' for call callbacks
|
|
||||||
-new array.extend() bulit-in function
|
|
||||||
-new API sq_clone()
|
|
||||||
|
|
||||||
***2003-09-10 ***
|
|
||||||
***version 0.2 pre-alpha***
|
|
||||||
-new completely reentrant VM (sq_open and sq_close are now obsolete)
|
|
||||||
-sq_newvm() has a new prototype
|
|
||||||
-allocators are now global and linked in the VM
|
|
||||||
-_newslot meta method added
|
|
||||||
-rawset creates a slot if doesn't exists
|
|
||||||
-the compiler error callback pass the vm handle(thanks Pierre Renaux)
|
|
||||||
-sq_setforeignptr() sq_getforeingptr() are now public
|
|
||||||
-sq_resume() now is possible to resume generators from C
|
|
||||||
-sq_getlasterror() retrieve the last thrown error
|
|
||||||
-improved docs
|
|
||||||
|
|
||||||
***2003-09-06 ***
|
|
||||||
***version 0.1 pre-alpha***
|
|
||||||
first release
|
|
23
src/3rdparty/squirrel/Makefile
vendored
23
src/3rdparty/squirrel/Makefile
vendored
@@ -1,23 +0,0 @@
|
|||||||
|
|
||||||
SQUIRREL=.
|
|
||||||
MAKE=make
|
|
||||||
|
|
||||||
sq32:
|
|
||||||
cd squirrel; $(MAKE)
|
|
||||||
cd sqstdlib; $(MAKE)
|
|
||||||
cd sq; $(MAKE)
|
|
||||||
|
|
||||||
sqprof:
|
|
||||||
cd squirrel; $(MAKE) sqprof
|
|
||||||
cd sqstdlib; $(MAKE) sqprof
|
|
||||||
cd sq; $(MAKE) sqprof
|
|
||||||
|
|
||||||
sq64:
|
|
||||||
cd squirrel; $(MAKE) sq64
|
|
||||||
cd sqstdlib; $(MAKE) sq64
|
|
||||||
cd sq; $(MAKE) sq64
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(MAKE) -C squirrel clean
|
|
||||||
$(MAKE) -C sqstdlib clean
|
|
||||||
$(MAKE) -C sq clean
|
|
22
src/3rdparty/squirrel/README
vendored
22
src/3rdparty/squirrel/README
vendored
@@ -1,22 +0,0 @@
|
|||||||
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
|
|
||||||
Linux(Slackware 9.0 on Intel x86, Fedora Core 4 on AMD x64).
|
|
||||||
|
|
||||||
Has been tested with the following compilers:
|
|
||||||
MS Visual C++ 6.0,7.0,7.1 and 8.0 (32 and 64bits)
|
|
||||||
MinGW gcc 3.2 (mingw special 20020817-1)
|
|
||||||
Cygnus gcc 3.2
|
|
||||||
Linux gcc 3.2.3
|
|
||||||
Linux gcc 4.0.0 (x86 64bits)
|
|
||||||
|
|
||||||
|
|
||||||
Feedback and suggestions are appreciated
|
|
||||||
project page - http://www.squirrel-lang.org
|
|
||||||
community forums - http://www.squirrel-lang.org/Forums
|
|
||||||
wiki - http://wiki.squirrel-lang.org
|
|
||||||
author - alberto@demichelis.net
|
|
||||||
|
|
||||||
END OF README
|
|
||||||
|
|
4
src/3rdparty/squirrel/README.OpenTTD
vendored
4
src/3rdparty/squirrel/README.OpenTTD
vendored
@@ -1,4 +0,0 @@
|
|||||||
This folder contains a modified version of Squirrel that is tailored to meet
|
|
||||||
the needs of OpenTTD.
|
|
||||||
We have based this modification on the version as described in:
|
|
||||||
include/squirrel.h
|
|
BIN
src/3rdparty/squirrel/doc/sqstdlib2.chm
vendored
BIN
src/3rdparty/squirrel/doc/sqstdlib2.chm
vendored
Binary file not shown.
BIN
src/3rdparty/squirrel/doc/squirrel2.chm
vendored
BIN
src/3rdparty/squirrel/doc/squirrel2.chm
vendored
Binary file not shown.
63
src/3rdparty/squirrel/etc/minimal.c
vendored
63
src/3rdparty/squirrel/etc/minimal.c
vendored
@@ -1,63 +0,0 @@
|
|||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include <squirrel.h>
|
|
||||||
#include <sqstdio.h>
|
|
||||||
#include <sqstdaux.h>
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#pragma comment (lib ,"squirrel.lib")
|
|
||||||
#pragma comment (lib ,"sqstdlib.lib")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SQUNICODE
|
|
||||||
#define scvprintf vwprintf
|
|
||||||
#else
|
|
||||||
#define scvprintf vprintf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void printfunc(HSQUIRRELVM v, const SQChar *s, ...)
|
|
||||||
{
|
|
||||||
va_list arglist;
|
|
||||||
va_start(arglist, s);
|
|
||||||
scvprintf(s, arglist);
|
|
||||||
va_end(arglist);
|
|
||||||
}
|
|
||||||
|
|
||||||
void call_foo(HSQUIRRELVM v, int n,float f,const SQChar *s)
|
|
||||||
{
|
|
||||||
SQInteger top = sq_gettop(v); //saves the stack size before the call
|
|
||||||
sq_pushroottable(v); //pushes the global table
|
|
||||||
sq_pushstring(v,_SC("foo"),-1);
|
|
||||||
if(SQ_SUCCEEDED(sq_get(v,-2))) { //gets the field 'foo' from the global table
|
|
||||||
sq_pushroottable(v); //push the 'this' (in this case is the global table)
|
|
||||||
sq_pushinteger(v,n);
|
|
||||||
sq_pushfloat(v,f);
|
|
||||||
sq_pushstring(v,s,-1);
|
|
||||||
sq_call(v,4,SQFalse,SQTrue); //calls the function
|
|
||||||
}
|
|
||||||
sq_settop(v,top); //restores the original stack size
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
HSQUIRRELVM v;
|
|
||||||
v = sq_open(1024); // creates a VM with initial stack size 1024
|
|
||||||
|
|
||||||
//sq_pushroottable(v); //push the root table were to register the lib function
|
|
||||||
//sqstd_register_iolib(v);
|
|
||||||
sqstd_seterrorhandlers(v); //registers the default error handlers
|
|
||||||
|
|
||||||
sq_setprintfunc(v, printfunc); //sets the print function
|
|
||||||
|
|
||||||
sq_pushroottable(v); //push the root table(were the globals of the script will be stored)
|
|
||||||
if(SQ_SUCCEEDED(sqstd_dofile(v, _SC("test.nut"), SQFalse, SQTrue))) // also prints syntax errors if any
|
|
||||||
{
|
|
||||||
call_foo(v,1,2.5,_SC("teststring"));
|
|
||||||
}
|
|
||||||
|
|
||||||
sq_pop(v,1); //pops the root table
|
|
||||||
sq_close(v);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
4
src/3rdparty/squirrel/etc/test.nut
vendored
4
src/3rdparty/squirrel/etc/test.nut
vendored
@@ -1,4 +0,0 @@
|
|||||||
function foo(i, f, s)
|
|
||||||
{
|
|
||||||
print("Called foo(), i="+i+", f="+f+", s='"+s+"'\n");
|
|
||||||
}
|
|
16
src/3rdparty/squirrel/include/sqstdaux.h
vendored
16
src/3rdparty/squirrel/include/sqstdaux.h
vendored
@@ -1,16 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTD_AUXLIB_H_
|
|
||||||
#define _SQSTD_AUXLIB_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SQUIRREL_API void sqstd_seterrorhandlers(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sqstd_printcallstack(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _SQSTD_AUXLIB_H_ */
|
|
20
src/3rdparty/squirrel/include/sqstdblob.h
vendored
20
src/3rdparty/squirrel/include/sqstdblob.h
vendored
@@ -1,20 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTDBLOB_H_
|
|
||||||
#define _SQSTDBLOB_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SQUIRREL_API SQUserPointer sqstd_createblob(HSQUIRRELVM v, SQInteger size);
|
|
||||||
SQUIRREL_API SQRESULT sqstd_getblob(HSQUIRRELVM v,SQInteger idx,SQUserPointer *ptr);
|
|
||||||
SQUIRREL_API SQInteger sqstd_getblobsize(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
|
|
||||||
SQUIRREL_API SQRESULT sqstd_register_bloblib(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_SQSTDBLOB_H_*/
|
|
||||||
|
|
54
src/3rdparty/squirrel/include/sqstdio.h
vendored
54
src/3rdparty/squirrel/include/sqstdio.h
vendored
@@ -1,54 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTDIO_H_
|
|
||||||
#define _SQSTDIO_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
|
|
||||||
#define SQSTD_STREAM_TYPE_TAG 0x80000000
|
|
||||||
|
|
||||||
struct SQStream {
|
|
||||||
virtual ~SQStream() {}
|
|
||||||
virtual SQInteger Read(void *buffer, SQInteger size) = 0;
|
|
||||||
virtual SQInteger Write(void *buffer, SQInteger size) = 0;
|
|
||||||
virtual SQInteger Flush() = 0;
|
|
||||||
virtual SQInteger Tell() = 0;
|
|
||||||
virtual SQInteger Len() = 0;
|
|
||||||
virtual SQInteger Seek(SQInteger offset, SQInteger origin) = 0;
|
|
||||||
virtual bool IsValid() = 0;
|
|
||||||
virtual bool EOS() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SQ_SEEK_CUR 0
|
|
||||||
#define SQ_SEEK_END 1
|
|
||||||
#define SQ_SEEK_SET 2
|
|
||||||
|
|
||||||
typedef void* SQFILE;
|
|
||||||
|
|
||||||
SQUIRREL_API SQFILE sqstd_fopen(const SQChar *,const SQChar *);
|
|
||||||
SQUIRREL_API SQInteger sqstd_fread(SQUserPointer, SQInteger, SQInteger, SQFILE);
|
|
||||||
SQUIRREL_API SQInteger sqstd_fwrite(const SQUserPointer, SQInteger, SQInteger, SQFILE);
|
|
||||||
SQUIRREL_API SQInteger sqstd_fseek(SQFILE , SQInteger , SQInteger);
|
|
||||||
SQUIRREL_API SQInteger sqstd_ftell(SQFILE);
|
|
||||||
SQUIRREL_API SQInteger sqstd_fflush(SQFILE);
|
|
||||||
SQUIRREL_API SQInteger sqstd_fclose(SQFILE);
|
|
||||||
SQUIRREL_API SQInteger sqstd_feof(SQFILE);
|
|
||||||
|
|
||||||
SQUIRREL_API SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file,SQBool own);
|
|
||||||
SQUIRREL_API SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file);
|
|
||||||
|
|
||||||
//compiler helpers
|
|
||||||
SQUIRREL_API SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror);
|
|
||||||
SQUIRREL_API SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror);
|
|
||||||
SQUIRREL_API SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v,const SQChar *filename);
|
|
||||||
|
|
||||||
SQUIRREL_API SQRESULT sqstd_register_iolib(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_SQSTDIO_H_*/
|
|
||||||
|
|
15
src/3rdparty/squirrel/include/sqstdmath.h
vendored
15
src/3rdparty/squirrel/include/sqstdmath.h
vendored
@@ -1,15 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTD_MATH_H_
|
|
||||||
#define _SQSTD_MATH_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SQUIRREL_API SQRESULT sqstd_register_mathlib(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_SQSTD_MATH_H_*/
|
|
31
src/3rdparty/squirrel/include/sqstdstring.h
vendored
31
src/3rdparty/squirrel/include/sqstdstring.h
vendored
@@ -1,31 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTD_STRING_H_
|
|
||||||
#define _SQSTD_STRING_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef unsigned int SQRexBool;
|
|
||||||
typedef struct SQRex SQRex;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
const SQChar *begin;
|
|
||||||
SQInteger len;
|
|
||||||
} SQRexMatch;
|
|
||||||
|
|
||||||
SQUIRREL_API SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error);
|
|
||||||
SQUIRREL_API void sqstd_rex_free(SQRex *exp);
|
|
||||||
SQUIRREL_API SQBool sqstd_rex_match(SQRex* exp,const SQChar* text);
|
|
||||||
SQUIRREL_API SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end);
|
|
||||||
SQUIRREL_API SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* text_end,const SQChar** out_begin, const SQChar** out_end);
|
|
||||||
SQUIRREL_API SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
|
|
||||||
SQUIRREL_API SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
|
|
||||||
|
|
||||||
SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_SQSTD_STRING_H_*/
|
|
15
src/3rdparty/squirrel/include/sqstdsystem.h
vendored
15
src/3rdparty/squirrel/include/sqstdsystem.h
vendored
@@ -1,15 +0,0 @@
|
|||||||
/* see copyright notice in squirrel.h */
|
|
||||||
#ifndef _SQSTD_SYSTEMLIB_H_
|
|
||||||
#define _SQSTD_SYSTEMLIB_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SQUIRREL_API SQInteger sqstd_register_systemlib(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _SQSTD_SYSTEMLIB_H_ */
|
|
452
src/3rdparty/squirrel/include/squirrel.h
vendored
452
src/3rdparty/squirrel/include/squirrel.h
vendored
@@ -1,452 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright (c) 2003-2008 Alberto Demichelis
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any
|
|
||||||
express or implied warranty. In no event will the
|
|
||||||
authors be held liable for any damages arising from
|
|
||||||
the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software
|
|
||||||
for any purpose, including commercial applications,
|
|
||||||
and to alter it and redistribute it freely, subject
|
|
||||||
to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be
|
|
||||||
misrepresented; you must not claim that
|
|
||||||
you wrote the original software. If you
|
|
||||||
use this software in a product, an
|
|
||||||
acknowledgment in the product
|
|
||||||
documentation would be appreciated but is
|
|
||||||
not required.
|
|
||||||
|
|
||||||
2. Altered source versions must be plainly
|
|
||||||
marked as such, and must not be
|
|
||||||
misrepresented as being the original
|
|
||||||
software.
|
|
||||||
|
|
||||||
3. This notice may not be removed or
|
|
||||||
altered from any source distribution.
|
|
||||||
|
|
||||||
*/
|
|
||||||
#ifndef _SQUIRREL_H_
|
|
||||||
#define _SQUIRREL_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_MSC_VER) && _MSC_VER >= 1400 // MSVC 2005 safety checks
|
|
||||||
# pragma warning(disable: 4996) // '_wfopen' was declared deprecated
|
|
||||||
# define _CRT_SECURE_NO_DEPRECATE // all deprecated 'unsafe string functions
|
|
||||||
# define _CRT_NON_CONFORMING_SWPRINTFS // another deprecated stuff
|
|
||||||
#endif /* _MSC_VER >= 1400 */
|
|
||||||
|
|
||||||
#ifndef SQUIRREL_API
|
|
||||||
#define SQUIRREL_API extern
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined(_WIN64) || defined(_LP64)) && !defined(_SQ64)
|
|
||||||
#define _SQ64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _SQ64
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
typedef __int64 SQInteger;
|
|
||||||
typedef unsigned __int64 SQUnsignedInteger;
|
|
||||||
typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
|
|
||||||
#else
|
|
||||||
typedef long SQInteger;
|
|
||||||
typedef unsigned long SQUnsignedInteger;
|
|
||||||
typedef unsigned long SQHash; /*should be the same size of a pointer*/
|
|
||||||
#endif
|
|
||||||
typedef int SQInt32;
|
|
||||||
#else
|
|
||||||
typedef int SQInteger;
|
|
||||||
typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/
|
|
||||||
typedef unsigned int SQUnsignedInteger;
|
|
||||||
typedef unsigned int SQHash; /*should be the same size of a pointer*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef float SQFloat;
|
|
||||||
typedef void* SQUserPointer;
|
|
||||||
typedef SQUnsignedInteger SQBool;
|
|
||||||
typedef SQInteger SQRESULT;
|
|
||||||
|
|
||||||
#define SQTrue (1)
|
|
||||||
#define SQFalse (0)
|
|
||||||
|
|
||||||
struct SQVM;
|
|
||||||
struct SQTable;
|
|
||||||
struct SQArray;
|
|
||||||
struct SQString;
|
|
||||||
struct SQClosure;
|
|
||||||
struct SQGenerator;
|
|
||||||
struct SQNativeClosure;
|
|
||||||
struct SQUserData;
|
|
||||||
struct SQFunctionProto;
|
|
||||||
struct SQRefCounted;
|
|
||||||
struct SQClass;
|
|
||||||
struct SQInstance;
|
|
||||||
struct SQDelegable;
|
|
||||||
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define SQUNICODE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SQUNICODE
|
|
||||||
#if (defined(_MSC_VER) && _MSC_VER >= 1400) // 1400 = VS8
|
|
||||||
|
|
||||||
#ifndef _WCHAR_T_DEFINED //this is if the compiler considers wchar_t as native type
|
|
||||||
typedef unsigned short wchar_t;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef wchar_t SQChar;
|
|
||||||
#define _SC(a) L##a
|
|
||||||
#define scstrcmp wcscmp
|
|
||||||
#define scsprintf swprintf
|
|
||||||
#define scsnprintf _snwprintf
|
|
||||||
#define scstrlen wcslen
|
|
||||||
#define scstrtod wcstod
|
|
||||||
#define scstrtol wcstol
|
|
||||||
#define scatoi _wtoi
|
|
||||||
#define scstrtoul wcstoul
|
|
||||||
#define scvsprintf vswprintf
|
|
||||||
#define scstrstr wcsstr
|
|
||||||
#define scisspace iswspace
|
|
||||||
#define scisdigit iswdigit
|
|
||||||
#define scisxdigit iswxdigit
|
|
||||||
#define scisalpha iswalpha
|
|
||||||
#define sciscntrl iswcntrl
|
|
||||||
#define scisalnum iswalnum
|
|
||||||
#define scprintf wprintf
|
|
||||||
#define scfprintf fwprintf
|
|
||||||
#define scvprintf vwprintf
|
|
||||||
#define scvfprintf vfwprintf
|
|
||||||
#define scvsnprintf _vsnwprintf
|
|
||||||
#define scstrdup _wcsdup
|
|
||||||
#define scstrrchr wcsrchr
|
|
||||||
#define scstrcat wcscat
|
|
||||||
#define MAX_CHAR 0xFFFF
|
|
||||||
#else
|
|
||||||
typedef char SQChar;
|
|
||||||
#define _SC(a) a
|
|
||||||
#define scstrcmp strcmp
|
|
||||||
#define scsprintf sprintf
|
|
||||||
#define scsnprintf snprintf
|
|
||||||
#define scstrlen strlen
|
|
||||||
#define scstrtod strtod
|
|
||||||
#define scstrtol strtol
|
|
||||||
#define scatoi atoi
|
|
||||||
#define scstrtoul strtoul
|
|
||||||
#define scvsprintf vsprintf
|
|
||||||
#define scstrstr strstr
|
|
||||||
#define scisspace isspace
|
|
||||||
#define scisdigit isdigit
|
|
||||||
#define scisxdigit isxdigit
|
|
||||||
#define sciscntrl iscntrl
|
|
||||||
#define scisalpha isalpha
|
|
||||||
#define scisalnum isalnum
|
|
||||||
#define scprintf printf
|
|
||||||
#define scfprintf fprintf
|
|
||||||
#define scvprintf vprintf
|
|
||||||
#define scvfprintf vfprintf
|
|
||||||
#define scvsnprintf vsnprintf
|
|
||||||
#define scstrdup strdup
|
|
||||||
#define scstrrchr strrchr
|
|
||||||
#define scstrcat strcat
|
|
||||||
#define MAX_CHAR 0xFF
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#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
|
|
||||||
#define SQ_VMSTATE_RUNNING 1
|
|
||||||
#define SQ_VMSTATE_SUSPENDED 2
|
|
||||||
|
|
||||||
#define SQUIRREL_EOB 0
|
|
||||||
#define SQ_BYTECODE_STREAM_TAG 0xFAFA
|
|
||||||
|
|
||||||
#define SQOBJECT_REF_COUNTED 0x08000000
|
|
||||||
#define SQOBJECT_NUMERIC 0x04000000
|
|
||||||
#define SQOBJECT_DELEGABLE 0x02000000
|
|
||||||
#define SQOBJECT_CANBEFALSE 0x01000000
|
|
||||||
|
|
||||||
#define SQ_MATCHTYPEMASKSTRING (-99999)
|
|
||||||
|
|
||||||
#define _RT_MASK 0x00FFFFFF
|
|
||||||
#define _RAW_TYPE(type) (type&_RT_MASK)
|
|
||||||
|
|
||||||
#define _RT_NULL 0x00000001
|
|
||||||
#define _RT_INTEGER 0x00000002
|
|
||||||
#define _RT_FLOAT 0x00000004
|
|
||||||
#define _RT_BOOL 0x00000008
|
|
||||||
#define _RT_STRING 0x00000010
|
|
||||||
#define _RT_TABLE 0x00000020
|
|
||||||
#define _RT_ARRAY 0x00000040
|
|
||||||
#define _RT_USERDATA 0x00000080
|
|
||||||
#define _RT_CLOSURE 0x00000100
|
|
||||||
#define _RT_NATIVECLOSURE 0x00000200
|
|
||||||
#define _RT_GENERATOR 0x00000400
|
|
||||||
#define _RT_USERPOINTER 0x00000800
|
|
||||||
#define _RT_THREAD 0x00001000
|
|
||||||
#define _RT_FUNCPROTO 0x00002000
|
|
||||||
#define _RT_CLASS 0x00004000
|
|
||||||
#define _RT_INSTANCE 0x00008000
|
|
||||||
#define _RT_WEAKREF 0x00010000
|
|
||||||
|
|
||||||
typedef enum tagSQObjectType{
|
|
||||||
OT_NULL = (_RT_NULL|SQOBJECT_CANBEFALSE),
|
|
||||||
OT_INTEGER = (_RT_INTEGER|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
|
|
||||||
OT_FLOAT = (_RT_FLOAT|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
|
|
||||||
OT_BOOL = (_RT_BOOL|SQOBJECT_CANBEFALSE),
|
|
||||||
OT_STRING = (_RT_STRING|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_TABLE = (_RT_TABLE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
|
||||||
OT_ARRAY = (_RT_ARRAY|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_USERDATA = (_RT_USERDATA|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
|
||||||
OT_CLOSURE = (_RT_CLOSURE|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_NATIVECLOSURE = (_RT_NATIVECLOSURE|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_GENERATOR = (_RT_GENERATOR|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_USERPOINTER = _RT_USERPOINTER,
|
|
||||||
OT_THREAD = (_RT_THREAD|SQOBJECT_REF_COUNTED) ,
|
|
||||||
OT_FUNCPROTO = (_RT_FUNCPROTO|SQOBJECT_REF_COUNTED), //internal usage only
|
|
||||||
OT_CLASS = (_RT_CLASS|SQOBJECT_REF_COUNTED),
|
|
||||||
OT_INSTANCE = (_RT_INSTANCE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
|
||||||
OT_WEAKREF = (_RT_WEAKREF|SQOBJECT_REF_COUNTED)
|
|
||||||
}SQObjectType;
|
|
||||||
|
|
||||||
#define ISREFCOUNTED(t) (t&SQOBJECT_REF_COUNTED)
|
|
||||||
|
|
||||||
|
|
||||||
typedef union tagSQObjectValue
|
|
||||||
{
|
|
||||||
struct SQTable *pTable;
|
|
||||||
struct SQArray *pArray;
|
|
||||||
struct SQClosure *pClosure;
|
|
||||||
struct SQGenerator *pGenerator;
|
|
||||||
struct SQNativeClosure *pNativeClosure;
|
|
||||||
struct SQString *pString;
|
|
||||||
struct SQUserData *pUserData;
|
|
||||||
SQInteger nInteger;
|
|
||||||
SQFloat fFloat;
|
|
||||||
SQUserPointer pUserPointer;
|
|
||||||
struct SQFunctionProto *pFunctionProto;
|
|
||||||
struct SQRefCounted *pRefCounted;
|
|
||||||
struct SQDelegable *pDelegable;
|
|
||||||
struct SQVM *pThread;
|
|
||||||
struct SQClass *pClass;
|
|
||||||
struct SQInstance *pInstance;
|
|
||||||
struct SQWeakRef *pWeakRef;
|
|
||||||
}SQObjectValue;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct tagSQObject
|
|
||||||
{
|
|
||||||
SQObjectType _type;
|
|
||||||
SQObjectValue _unVal;
|
|
||||||
}SQObject;
|
|
||||||
|
|
||||||
typedef struct tagSQStackInfos{
|
|
||||||
const SQChar* funcname;
|
|
||||||
const SQChar* source;
|
|
||||||
SQInteger line;
|
|
||||||
}SQStackInfos;
|
|
||||||
|
|
||||||
typedef struct SQVM* HSQUIRRELVM;
|
|
||||||
typedef SQObject HSQOBJECT;
|
|
||||||
typedef SQInteger (*SQFUNCTION)(HSQUIRRELVM);
|
|
||||||
typedef SQInteger (*SQRELEASEHOOK)(SQUserPointer,SQInteger size);
|
|
||||||
typedef void (*SQCOMPILERERROR)(HSQUIRRELVM,const SQChar * /*desc*/,const SQChar * /*source*/,SQInteger /*line*/,SQInteger /*column*/);
|
|
||||||
typedef void (*SQPRINTFUNCTION)(HSQUIRRELVM,const SQChar * ,...);
|
|
||||||
|
|
||||||
typedef SQInteger (*SQWRITEFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
|
||||||
typedef SQInteger (*SQREADFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
|
||||||
|
|
||||||
typedef SQInteger (*SQLEXREADFUNC)(SQUserPointer);
|
|
||||||
|
|
||||||
typedef struct tagSQRegFunction{
|
|
||||||
const SQChar *name;
|
|
||||||
SQFUNCTION f;
|
|
||||||
SQInteger nparamscheck;
|
|
||||||
const SQChar *typemask;
|
|
||||||
}SQRegFunction;
|
|
||||||
|
|
||||||
/*vm*/
|
|
||||||
SQUIRREL_API bool sq_can_suspend(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API HSQUIRRELVM sq_open(SQInteger initialstacksize);
|
|
||||||
SQUIRREL_API HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize);
|
|
||||||
SQUIRREL_API void sq_seterrorhandler(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_close(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p);
|
|
||||||
SQUIRREL_API SQUserPointer sq_getforeignptr(HSQUIRRELVM v);
|
|
||||||
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);
|
|
||||||
SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
/*compiler*/
|
|
||||||
SQUIRREL_API SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
|
|
||||||
SQUIRREL_API SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
|
|
||||||
SQUIRREL_API void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable);
|
|
||||||
SQUIRREL_API void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable);
|
|
||||||
SQUIRREL_API void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f);
|
|
||||||
|
|
||||||
/*stack operations*/
|
|
||||||
SQUIRREL_API void sq_push(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API void sq_pop(HSQUIRRELVM v,SQInteger nelemstopop);
|
|
||||||
SQUIRREL_API void sq_poptop(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_remove(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQInteger sq_gettop(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_settop(HSQUIRRELVM v,SQInteger newtop);
|
|
||||||
SQUIRREL_API void sq_reservestack(HSQUIRRELVM v,SQInteger nsize);
|
|
||||||
SQUIRREL_API SQInteger sq_cmp(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_move(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
|
|
||||||
|
|
||||||
/*object creation handling*/
|
|
||||||
SQUIRREL_API SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size);
|
|
||||||
SQUIRREL_API void sq_newtable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_newarray(HSQUIRRELVM v,SQInteger size);
|
|
||||||
SQUIRREL_API void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
|
|
||||||
SQUIRREL_API SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
|
|
||||||
SQUIRREL_API SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len);
|
|
||||||
SQUIRREL_API void sq_pushfloat(HSQUIRRELVM v,SQFloat f);
|
|
||||||
SQUIRREL_API void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
|
|
||||||
SQUIRREL_API void sq_pushbool(HSQUIRRELVM v,SQBool b);
|
|
||||||
SQUIRREL_API void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p);
|
|
||||||
SQUIRREL_API void sq_pushnull(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQInteger sq_getsize(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQBool sq_instanceof(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_tostring(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool *b);
|
|
||||||
SQUIRREL_API SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
|
|
||||||
SQUIRREL_API SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
|
|
||||||
SQUIRREL_API SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
|
|
||||||
SQUIRREL_API SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *b);
|
|
||||||
SQUIRREL_API SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
|
|
||||||
SQUIRREL_API SQRESULT sq_getuserpointer(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
|
|
||||||
SQUIRREL_API SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
|
|
||||||
SQUIRREL_API SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
|
|
||||||
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_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);
|
|
||||||
SQUIRREL_API SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
|
|
||||||
SQUIRREL_API SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
|
|
||||||
SQUIRREL_API SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase);
|
|
||||||
SQUIRREL_API SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API void sq_weakref(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t);
|
|
||||||
|
|
||||||
/*object manipulation*/
|
|
||||||
SQUIRREL_API void sq_pushroottable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_pushregistrytable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_pushconsttable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API SQRESULT sq_setroottable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API SQRESULT sq_setconsttable(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
|
|
||||||
SQUIRREL_API SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
|
||||||
SQUIRREL_API SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_rawdeleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
|
||||||
SQUIRREL_API SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
|
||||||
SQUIRREL_API SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
|
|
||||||
SQUIRREL_API SQRESULT sq_arrayreverse(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
|
|
||||||
SQUIRREL_API SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
|
|
||||||
SQUIRREL_API SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
|
||||||
SQUIRREL_API SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
SQUIRREL_API SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx);
|
|
||||||
|
|
||||||
/*calls*/
|
|
||||||
SQUIRREL_API SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror, int suspend = -1);
|
|
||||||
SQUIRREL_API SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
|
|
||||||
SQUIRREL_API const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
|
|
||||||
SQUIRREL_API const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
|
||||||
SQUIRREL_API SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err);
|
|
||||||
SQUIRREL_API void sq_reseterror(HSQUIRRELVM v);
|
|
||||||
SQUIRREL_API void sq_getlasterror(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
/*raw object handling*/
|
|
||||||
SQUIRREL_API SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
|
|
||||||
SQUIRREL_API void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj);
|
|
||||||
SQUIRREL_API void sq_addref(HSQUIRRELVM v,HSQOBJECT *po);
|
|
||||||
SQUIRREL_API SQBool sq_release(HSQUIRRELVM v,HSQOBJECT *po);
|
|
||||||
SQUIRREL_API void sq_resetobject(HSQOBJECT *po);
|
|
||||||
SQUIRREL_API const SQChar *sq_objtostring(HSQOBJECT *o);
|
|
||||||
SQUIRREL_API SQBool sq_objtobool(HSQOBJECT *o);
|
|
||||||
SQUIRREL_API SQInteger sq_objtointeger(HSQOBJECT *o);
|
|
||||||
SQUIRREL_API SQFloat sq_objtofloat(HSQOBJECT *o);
|
|
||||||
SQUIRREL_API SQRESULT sq_getobjtypetag(HSQOBJECT *o,SQUserPointer * typetag);
|
|
||||||
|
|
||||||
/*GC*/
|
|
||||||
SQUIRREL_API SQInteger sq_collectgarbage(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
/*serialization*/
|
|
||||||
SQUIRREL_API SQRESULT sq_writeclosure(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
|
|
||||||
SQUIRREL_API SQRESULT sq_readclosure(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
|
|
||||||
|
|
||||||
/*mem allocation*/
|
|
||||||
SQUIRREL_API void *sq_malloc(SQUnsignedInteger size);
|
|
||||||
SQUIRREL_API void *sq_realloc(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
|
|
||||||
SQUIRREL_API void sq_free(void *p,SQUnsignedInteger size);
|
|
||||||
|
|
||||||
/*debug*/
|
|
||||||
SQUIRREL_API SQRESULT sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
|
|
||||||
SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v);
|
|
||||||
|
|
||||||
/*UTILITY MACRO*/
|
|
||||||
#define sq_isnumeric(o) ((o)._type&SQOBJECT_NUMERIC)
|
|
||||||
#define sq_istable(o) ((o)._type==OT_TABLE)
|
|
||||||
#define sq_isarray(o) ((o)._type==OT_ARRAY)
|
|
||||||
#define sq_isfunction(o) ((o)._type==OT_FUNCPROTO)
|
|
||||||
#define sq_isclosure(o) ((o)._type==OT_CLOSURE)
|
|
||||||
#define sq_isgenerator(o) ((o)._type==OT_GENERATOR)
|
|
||||||
#define sq_isnativeclosure(o) ((o)._type==OT_NATIVECLOSURE)
|
|
||||||
#define sq_isstring(o) ((o)._type==OT_STRING)
|
|
||||||
#define sq_isinteger(o) ((o)._type==OT_INTEGER)
|
|
||||||
#define sq_isfloat(o) ((o)._type==OT_FLOAT)
|
|
||||||
#define sq_isuserpointer(o) ((o)._type==OT_USERPOINTER)
|
|
||||||
#define sq_isuserdata(o) ((o)._type==OT_USERDATA)
|
|
||||||
#define sq_isthread(o) ((o)._type==OT_THREAD)
|
|
||||||
#define sq_isnull(o) ((o)._type==OT_NULL)
|
|
||||||
#define sq_isclass(o) ((o)._type==OT_CLASS)
|
|
||||||
#define sq_isinstance(o) ((o)._type==OT_INSTANCE)
|
|
||||||
#define sq_isbool(o) ((o)._type==OT_BOOL)
|
|
||||||
#define sq_isweakref(o) ((o)._type==OT_WEAKREF)
|
|
||||||
#define sq_type(o) ((o)._type)
|
|
||||||
|
|
||||||
/* deprecated */
|
|
||||||
#define sq_createslot(v,n) sq_newslot(v,n,SQFalse)
|
|
||||||
|
|
||||||
#define SQ_OK (0)
|
|
||||||
#define SQ_ERROR (-1)
|
|
||||||
|
|
||||||
#define SQ_FAILED(res) (res<0)
|
|
||||||
#define SQ_SUCCEEDED(res) (res>=0)
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /*extern "C"*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_SQUIRREL_H_*/
|
|
22
src/3rdparty/squirrel/samples/ackermann.nut
vendored
22
src/3rdparty/squirrel/samples/ackermann.nut
vendored
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
function Ack(M, N) {
|
|
||||||
if (M == 0) return( N + 1 );
|
|
||||||
if (N == 0) return( Ack(M - 1, 1) );
|
|
||||||
return( Ack(M - 1, Ack(M, (N - 1))) );
|
|
||||||
}
|
|
||||||
|
|
||||||
local n;
|
|
||||||
|
|
||||||
if(ARGS.len()!=0) {
|
|
||||||
n = ARGS[0].tointeger();
|
|
||||||
if(n < 1) n = 1;
|
|
||||||
} else {
|
|
||||||
n = 1;
|
|
||||||
}
|
|
||||||
print("n="+n+"\n");
|
|
||||||
print("Ack(3,"+ n+ "):"+ Ack(3, n));
|
|
28
src/3rdparty/squirrel/samples/array.nut
vendored
28
src/3rdparty/squirrel/samples/array.nut
vendored
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
local n, i, k;
|
|
||||||
|
|
||||||
if(ARGS.len()!=0) {
|
|
||||||
n = ARGS[0].tointeger();
|
|
||||||
if(n < 1) n = 1;
|
|
||||||
} else {
|
|
||||||
n = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
local x = []; x.resize(n);
|
|
||||||
local y = []; y.resize(n);
|
|
||||||
|
|
||||||
for (i = 0; i < n; i+=1) {
|
|
||||||
x[i] = i + 1;
|
|
||||||
y[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (k = 0 ; k < n; k+=1) {
|
|
||||||
for (i = n-1; i >= 0; i-=1) {
|
|
||||||
y[i] = y[i]+ x[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print(y[0].tostring()+" "+y[n-1]);
|
|
49
src/3rdparty/squirrel/samples/class.nut
vendored
49
src/3rdparty/squirrel/samples/class.nut
vendored
@@ -1,49 +0,0 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////////////
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////
|
|
||||||
class BaseVector {
|
|
||||||
constructor(...)
|
|
||||||
{
|
|
||||||
if(vargc >= 3) {
|
|
||||||
x = vargv[0];
|
|
||||||
y = vargv[1];
|
|
||||||
z = vargv[2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
z = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
class Vector3 extends BaseVector {
|
|
||||||
function _add(other)
|
|
||||||
{
|
|
||||||
if(other instanceof this.getclass())
|
|
||||||
return ::Vector3(x+other.x,y+other.y,z+other.z);
|
|
||||||
else
|
|
||||||
throw "wrong parameter";
|
|
||||||
}
|
|
||||||
function Print()
|
|
||||||
{
|
|
||||||
::print(x+","+y+","+z+"\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local v0 = Vector3(1,2,3)
|
|
||||||
local v1 = Vector3(11,12,13)
|
|
||||||
local v2 = v0 + v1;
|
|
||||||
v2.Print();
|
|
||||||
|
|
||||||
FakeNamespace <- {
|
|
||||||
Utils = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
class FakeNamespace.Utils.SuperClass {
|
|
||||||
constructor()
|
|
||||||
{
|
|
||||||
::print("FakeNamespace.Utils.SuperClass")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local testy = FakeNamespace.Utils.SuperClass();
|
|
@@ -1,35 +0,0 @@
|
|||||||
class Foo {
|
|
||||||
//constructor
|
|
||||||
constructor(a)
|
|
||||||
{
|
|
||||||
testy = ["stuff",1,2,3];
|
|
||||||
}
|
|
||||||
//attributes of PrintTesty
|
|
||||||
</ test = "freakin attribute"/>
|
|
||||||
function PrintTesty()
|
|
||||||
{
|
|
||||||
foreach(i,val in testy)
|
|
||||||
{
|
|
||||||
::print("idx = "+i+" = "+val+" \n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//attributes of testy
|
|
||||||
</ flippy = 10 , second = [1,2,3] />
|
|
||||||
testy = null;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(member,val in Foo)
|
|
||||||
{
|
|
||||||
::print(member+"\n");
|
|
||||||
local attr;
|
|
||||||
if((attr = Foo.getattributes(member)) != null) {
|
|
||||||
foreach(i,v in attr)
|
|
||||||
{
|
|
||||||
::print("\t"+i+" = "+(typeof v)+"\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
::print("\t<no attributes>\n")
|
|
||||||
}
|
|
||||||
}
|
|
25
src/3rdparty/squirrel/samples/coroutines.nut
vendored
25
src/3rdparty/squirrel/samples/coroutines.nut
vendored
@@ -1,25 +0,0 @@
|
|||||||
function coroutine_test(a,b)
|
|
||||||
{
|
|
||||||
::print(a+" "+b+"\n");
|
|
||||||
local ret = ::suspend("suspend 1");
|
|
||||||
::print("the coroutine says "+ret+"\n");
|
|
||||||
ret = ::suspend("suspend 2");
|
|
||||||
::print("the coroutine says "+ret+"\n");
|
|
||||||
ret = ::suspend("suspend 3");
|
|
||||||
::print("the coroutine says "+ret+"\n");
|
|
||||||
return "I'm done"
|
|
||||||
}
|
|
||||||
|
|
||||||
local coro = ::newthread(coroutine_test);
|
|
||||||
|
|
||||||
local susparam = coro.call("test","coroutine"); //starts the coroutine
|
|
||||||
|
|
||||||
local i = 1;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
::print("suspend passed ["+susparam+"]\n")
|
|
||||||
susparam = coro.wakeup("ciao "+i);
|
|
||||||
++i;
|
|
||||||
}while(coro.getstatus()=="suspended")
|
|
||||||
|
|
||||||
::print("return passed ["+susparam+"]\n")
|
|
52
src/3rdparty/squirrel/samples/delegation.nut
vendored
52
src/3rdparty/squirrel/samples/delegation.nut
vendored
@@ -1,52 +0,0 @@
|
|||||||
|
|
||||||
PEntity <- {
|
|
||||||
name="noname"
|
|
||||||
pos={x=0,y=0,z=0}
|
|
||||||
type="entity"
|
|
||||||
//methamethod
|
|
||||||
_typeof=function()
|
|
||||||
{
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function PEntity::PrintPos()
|
|
||||||
{
|
|
||||||
::print("x="+pos.x+" y="+pos.y+" z="+pos.z+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
function PEntity::new(name,pos)
|
|
||||||
{
|
|
||||||
local newentity=clone ::PEntity;
|
|
||||||
if(name)
|
|
||||||
newentity.name=name;
|
|
||||||
if(pos)
|
|
||||||
newentity.pos=pos;
|
|
||||||
return newentity;
|
|
||||||
}
|
|
||||||
|
|
||||||
PPlayer <- {
|
|
||||||
model="warrior.mdl"
|
|
||||||
weapon="fist"
|
|
||||||
health=100
|
|
||||||
armor=0
|
|
||||||
//overrides the parent type
|
|
||||||
type="player"
|
|
||||||
}
|
|
||||||
|
|
||||||
function PPlayer::new(name,pos)
|
|
||||||
{
|
|
||||||
local newplayer=delegate ::PEntity.new(name,pos) : clone ::PPlayer;
|
|
||||||
return newplayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
local player=PPlayer.new("godzilla",{x=10,y=20,z=30});
|
|
||||||
|
|
||||||
::print("PLAYER NAME"+player.name+"\n");
|
|
||||||
::print("ENTITY TYPE"+typeof player+"\n");
|
|
||||||
|
|
||||||
player.PrintPos();
|
|
||||||
|
|
||||||
player.pos.x=123;
|
|
||||||
|
|
||||||
player.PrintPos();
|
|
15
src/3rdparty/squirrel/samples/fibonacci.nut
vendored
15
src/3rdparty/squirrel/samples/fibonacci.nut
vendored
@@ -1,15 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
function fib(n)
|
|
||||||
{
|
|
||||||
if (n < 2) return 1
|
|
||||||
return fib(n-2) + fib(n-1)
|
|
||||||
}
|
|
||||||
|
|
||||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
|
||||||
|
|
||||||
print(fib(n)+"\n")
|
|
33
src/3rdparty/squirrel/samples/flow.nut
vendored
33
src/3rdparty/squirrel/samples/flow.nut
vendored
@@ -1,33 +0,0 @@
|
|||||||
function min(x,y)
|
|
||||||
return x<y?x:y;
|
|
||||||
|
|
||||||
function max(x,y)
|
|
||||||
return x>y?x:y;
|
|
||||||
|
|
||||||
if(min(100,200)>max(50,20))
|
|
||||||
print("I'm useless statement just to show up the if/else\n");
|
|
||||||
else
|
|
||||||
print("squirrel!!\n");
|
|
||||||
|
|
||||||
print("\n")
|
|
||||||
|
|
||||||
function typy(obj)
|
|
||||||
{
|
|
||||||
switch(typeof obj)
|
|
||||||
{
|
|
||||||
case "integer":
|
|
||||||
case "float":
|
|
||||||
return "is a number";
|
|
||||||
case "table":
|
|
||||||
case "array":
|
|
||||||
return "is a container";
|
|
||||||
default:
|
|
||||||
return "is other stuff"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local a=1,b={},c=function(a,b){return a+b;}
|
|
||||||
|
|
||||||
print("a "+typy(a)+"\n");
|
|
||||||
print("b "+typy(b)+"\n");
|
|
||||||
print("c "+typy(c)+"\n");
|
|
42
src/3rdparty/squirrel/samples/generators.nut
vendored
42
src/3rdparty/squirrel/samples/generators.nut
vendored
@@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
*Random number function from The Great Computer Language shootout
|
|
||||||
*converted to a generator func
|
|
||||||
*/
|
|
||||||
|
|
||||||
function gen_random(max) {
|
|
||||||
local last=42
|
|
||||||
local IM = 139968;
|
|
||||||
local IA = 3877;
|
|
||||||
local IC = 29573;
|
|
||||||
for(;;){ //loops forever
|
|
||||||
yield (max * (last = (last * IA + IC) % IM) / IM);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local randtor=gen_random(100);
|
|
||||||
|
|
||||||
print("RAND NUMBERS \n")
|
|
||||||
|
|
||||||
for(local i=0;i<10;i+=1)
|
|
||||||
print(">"+resume randtor+"\n");
|
|
||||||
|
|
||||||
print("FIBONACCI \n")
|
|
||||||
function fiboz(n)
|
|
||||||
{
|
|
||||||
local prev=0;
|
|
||||||
local curr=1;
|
|
||||||
yield 1;
|
|
||||||
|
|
||||||
for(local i=0;i<n-1;i+=1)
|
|
||||||
{
|
|
||||||
local res=prev+curr;
|
|
||||||
prev=curr;
|
|
||||||
yield curr=res;
|
|
||||||
}
|
|
||||||
return prev+curr;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(val in fiboz(10))
|
|
||||||
{
|
|
||||||
::print(">"+val+"\n");
|
|
||||||
}
|
|
1
src/3rdparty/squirrel/samples/hello.nut
vendored
1
src/3rdparty/squirrel/samples/hello.nut
vendored
@@ -1 +0,0 @@
|
|||||||
print("Hello World!")
|
|
39
src/3rdparty/squirrel/samples/list.nut
vendored
39
src/3rdparty/squirrel/samples/list.nut
vendored
@@ -1,39 +0,0 @@
|
|||||||
/*translation of the list test from The Great Computer Language Shootout
|
|
||||||
*/
|
|
||||||
|
|
||||||
function compare_arr(a1,a2)
|
|
||||||
{
|
|
||||||
foreach(i,val in a1)
|
|
||||||
if(val!=a2[i])return null;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function test()
|
|
||||||
{
|
|
||||||
local size=10000
|
|
||||||
local l1=[]; l1.resize(size);
|
|
||||||
for(local i=0;i<size;i+=1) l1[i]=i;
|
|
||||||
local l2=clone l1;
|
|
||||||
local l3=[]
|
|
||||||
|
|
||||||
l2.reverse();
|
|
||||||
while(l2.len()>0)
|
|
||||||
l3.append(l2.pop());
|
|
||||||
while(l3.len()>0)
|
|
||||||
l2.append(l3.pop());
|
|
||||||
l1.reverse();
|
|
||||||
|
|
||||||
if(compare_arr(l1,l2))
|
|
||||||
return l1.len();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
|
||||||
for(local i=0;i<n;i+=1)
|
|
||||||
if(!test())
|
|
||||||
{
|
|
||||||
print("failed");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
print("oki doki");
|
|
32
src/3rdparty/squirrel/samples/loops.nut
vendored
32
src/3rdparty/squirrel/samples/loops.nut
vendored
@@ -1,32 +0,0 @@
|
|||||||
local arr=["one","two","three"]
|
|
||||||
|
|
||||||
::print("FOREACH\n");
|
|
||||||
|
|
||||||
foreach(i,val in arr)
|
|
||||||
{
|
|
||||||
::print("index ["+i+"]="+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
::print("FOR\n");
|
|
||||||
|
|
||||||
for(local i=0;i<arr.len();i+=1)
|
|
||||||
{
|
|
||||||
::print("index ["+i+"]="+arr[i]+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
::print("WHILE\n");
|
|
||||||
|
|
||||||
local i=0;
|
|
||||||
while(i<arr.len())
|
|
||||||
{
|
|
||||||
::print("index ["+i+"]="+arr[i]+"\n");
|
|
||||||
i+=1;
|
|
||||||
}
|
|
||||||
::print("DO WHILE\n");
|
|
||||||
|
|
||||||
local i=0;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
::print("index ["+i+"]="+arr[i]+"\n");
|
|
||||||
i+=1;
|
|
||||||
}while(i<arr.len());
|
|
44
src/3rdparty/squirrel/samples/matrix.nut
vendored
44
src/3rdparty/squirrel/samples/matrix.nut
vendored
@@ -1,44 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
local SIZE=30;
|
|
||||||
|
|
||||||
function mkmatrix(rows, cols) {
|
|
||||||
local i, j, count = 1;
|
|
||||||
local m = []; m.resize(rows);
|
|
||||||
for (i = 0; i < rows; i+=1) {
|
|
||||||
m[i] = [];m[i].resize(cols)
|
|
||||||
for (j = 0; j < cols; j+=1) {
|
|
||||||
m[i][j] = count+=1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
|
|
||||||
function mmult(rows, cols, m1, m2, m3) {
|
|
||||||
local i, j, k, val;
|
|
||||||
for (i = 0; i < rows; i+=1) {
|
|
||||||
for (j = 0; j < cols; j+=1) {
|
|
||||||
val = 0;
|
|
||||||
for (k = 0; k < cols; k+=1) {
|
|
||||||
val += m1[i][k] * m2[k][j];
|
|
||||||
}
|
|
||||||
m3[i][j] = val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return m3;
|
|
||||||
}
|
|
||||||
|
|
||||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
|
||||||
|
|
||||||
local m1 = mkmatrix(SIZE, SIZE);
|
|
||||||
local m2 = mkmatrix(SIZE, SIZE);
|
|
||||||
local mm = mkmatrix(SIZE, SIZE);
|
|
||||||
|
|
||||||
for (local i = 0; i < n; i+=1) {
|
|
||||||
mmult(SIZE, SIZE, m1, m2, mm);
|
|
||||||
}
|
|
||||||
|
|
||||||
print(mm[0][0]+" "+mm[2][3]+" "+mm[3][2]+" "+mm[4][4]);
|
|
115
src/3rdparty/squirrel/samples/metamethods.nut
vendored
115
src/3rdparty/squirrel/samples/metamethods.nut
vendored
@@ -1,115 +0,0 @@
|
|||||||
|
|
||||||
local base_vec={
|
|
||||||
function _add(n)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
x=x+n.x,
|
|
||||||
y=y+n.y,
|
|
||||||
z=z+n.z,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function _sub(n)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
x=x-n.x,
|
|
||||||
y=y-n.y,
|
|
||||||
z=z-n.z,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function _div(n)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
x=x/n.x,
|
|
||||||
y=y/n.y,
|
|
||||||
z=z/n.z,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function _mul(n)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
x=x*n.x,
|
|
||||||
y=y*n.y,
|
|
||||||
z=z*n.z,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function _modulo(n)
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
x=x%n,
|
|
||||||
y=y%n,
|
|
||||||
z=z%n,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function _typeof() {return "vector";}
|
|
||||||
function _get(key)
|
|
||||||
{
|
|
||||||
if(key==100)
|
|
||||||
{
|
|
||||||
return test_field;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
function _set(key,val)
|
|
||||||
{
|
|
||||||
::print("key = "+key+"\n");
|
|
||||||
::print("val = "+val+"\n")
|
|
||||||
if(key==100)
|
|
||||||
{
|
|
||||||
return test_field=val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
test_field="nothing"
|
|
||||||
}
|
|
||||||
|
|
||||||
function vector(_x,_y,_z):(base_vec)
|
|
||||||
{
|
|
||||||
return delegate base_vec : {x=_x,y=_y,z=_z }
|
|
||||||
}
|
|
||||||
////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
local v1=vector(1.5,2.5,3.5);
|
|
||||||
local v2=vector(1.5,2.5,3.5);
|
|
||||||
|
|
||||||
local r=v1+v2;
|
|
||||||
|
|
||||||
|
|
||||||
foreach(i,val in r)
|
|
||||||
{
|
|
||||||
print(i+" = "+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
r=v1*v2;
|
|
||||||
|
|
||||||
foreach(i,val in r)
|
|
||||||
{
|
|
||||||
print(i+" = "+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
r=v1/v2;
|
|
||||||
|
|
||||||
foreach(i,val in r)
|
|
||||||
{
|
|
||||||
print(i+" = "+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
r=v1-v2;
|
|
||||||
|
|
||||||
foreach(i,val in r)
|
|
||||||
{
|
|
||||||
print(i+" = "+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
r=v1%2;
|
|
||||||
|
|
||||||
foreach(i,val in r)
|
|
||||||
{
|
|
||||||
print(i+" = "+val+"\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
print(v1[100]+"\n");
|
|
||||||
v1[100]="set SUCCEEDED";
|
|
||||||
print(v1[100]+"\n");
|
|
||||||
|
|
||||||
if(typeof v1=="vector")
|
|
||||||
print("<SUCCEEDED>\n");
|
|
||||||
else
|
|
||||||
print("<FAILED>\n");
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user