1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-13 17:49:10 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
rubidium
b995ecc47e (svn r23833) -Release: 1.2.0-beta3 2012-01-21 14:36:56 +00:00
555 changed files with 36631 additions and 54309 deletions

View File

@@ -195,7 +195,7 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU UNICODE _UNICODE _GNU_SOURCE FINAL=
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU UNICODE _UNICODE _GNU_SOURCE
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------

View File

@@ -10,9 +10,13 @@
#
# The revision is needed for the bundle name and creating an OSX application bundle.
ifdef REVISION
REV := $(REVISION)
else
# Detect the revision
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
endif
# Make sure we have something in REV
ifeq ($(REV),)
@@ -69,6 +73,7 @@ endif
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/32bpp.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/"
ifdef MAN_DIR
$(Q)mkdir -p "$(BUNDLE_DIR)/man/"
@@ -80,7 +85,7 @@ endif
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
ifdef MENU_DIR
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
$(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | $(SORT) | $(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.filter.awk" >> "$(BUNDLE_DIR)/media/openttd.desktop"
$(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | $(SORT) >> "$(BUNDLE_DIR)/media/openttd.desktop"
$(Q)sed s/=openttd/=$(BINARY_NAME)/g "$(BUNDLE_DIR)/media/openttd.desktop" > "$(ROOT_DIR)/media/openttd.desktop.install"
endif
ifeq ($(TTD), openttd.exe)

View File

@@ -66,7 +66,7 @@ $(OBJS_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
$(Q) gcc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
$(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo
$(E) '$(STAGE) Compiling openttd.grf'
$(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf
$(Q) $(GRFCODEC) -s -e -p1 $(OBJS_DIR)/openttd.grf
# Clean up temporary files.
clean:

View File

@@ -41,6 +41,7 @@ TTDS = $(SRC_DIRS:%=%/$(TTD))
OS = !!OS!!
OSXAPP = !!OSXAPP!!
LIPO = !!LIPO!!
REVISION = !!REVISION!!
AWK = !!AWK!!
SORT = !!SORT!!
DISTCC = !!DISTCC!!
@@ -125,13 +126,6 @@ lang:
mrproper:
@for dir in $(DIRS); do \
$(MAKE) -C $$dir mrproper; \
done
# Don't be tempted to merge these two for loops. Doing that breaks make
# --dry-run, since make has this "feature" that it always runs commands
# containing $(MAKE), even when --dry-run is passed. The objective is of
# course to also get a dry-run of submakes, but make is not smart enough
# to see that a for loop runs both a submake and an actual command.
@for dir in $(DIRS); do \
rm -f $$dir/Makefile; \
done
$(Q)rm -rf objs

View File

@@ -14,7 +14,6 @@ LANGS_SRC = $(shell ls $(LANG_DIR)/*.txt)
LANGS = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
CXX_BUILD = !!CXX_BUILD!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
CXXFLAGS_BUILD= !!CXXFLAGS_BUILD!!
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
STRGEN_FLAGS = !!STRGEN_FLAGS!!
STAGE = !!STAGE!!
@@ -45,23 +44,23 @@ all: table/strings.h $(LANGS)
strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
string.o: $(SRC_DIR)/string.cpp endian_host.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
lang/english.txt: $(LANG_DIR)/english.txt
$(Q)mkdir -p lang
@@ -69,7 +68,7 @@ lang/english.txt: $(LANG_DIR)/english.txt
$(STRGEN): alloc_func.o string.o strgen_base.o strgen.o getoptdata.o
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $^ -o $@
$(Q)$(CXX_BUILD) $(LDFLAGS_BUILD) $^ -o $@
table/strings.h: lang/english.txt $(STRGEN)
$(E) '$(STAGE) Generating $@'
@@ -88,7 +87,7 @@ endian_host.h: $(ENDIAN_CHECK)
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
depend:

View File

@@ -10,7 +10,6 @@ ENDIAN_CHECK = !!ENDIAN_CHECK!!
SRC_DIR = !!SRC_DIR!!
CXX_BUILD = !!CXX_BUILD!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
CXXFLAGS_BUILD = !!CXXFLAGS_BUILD!!
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
STAGE = !!STAGE!!
SETTING_OBJS_DIR = !!SETTING_OBJS_DIR!!
@@ -30,27 +29,27 @@ all: table/settings.h
settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $(SRC_DIR)/strings_type.h $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/ini_type.h $(SRC_DIR)/core/smallvec_type.hpp
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
string.o: $(SRC_DIR)/string.cpp endian_host.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
$(SETTINGSGEN): alloc_func.o string.o ini_load.o settingsgen.o getoptdata.o
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $^ -o $@
$(Q)$(CXX_BUILD) $(LDFLAGS_BUILD) $^ -o $@
table/settings.h: $(SETTINGSGEN) $(SRC_DIR)/table/settings.h.preamble $(SRC_DIR)/table/settings.h.postamble $(SRC_DIR)/table/*.ini
$(E) '$(STAGE) Generating $@'
@@ -65,7 +64,7 @@ endian_host.h: $(ENDIAN_CHECK)
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
depend:

View File

@@ -292,7 +292,7 @@ depend: $(DEPS)
clean:
$(E) '$(STAGE) Cleaning up object files'
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(BIN_DIR)/baseset/openttd.32.bmp $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
mrproper: clean
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc

View File

@@ -350,20 +350,3 @@ AIEvent.AI_ET_ENGINE_AVAILABLE <- AIEvent.ET_ENGINE_AVAILABLE;
AIEvent.AI_ET_STATION_FIRST_VEHICLE <- AIEvent.ET_STATION_FIRST_VEHICLE;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CRASHED <- AIEvent.ET_DISASTER_ZEPPELINER_CRASHED;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CLEARED <- AIEvent.ET_DISASTER_ZEPPELINER_CLEARED;
AIOrder.AIOF_NONE <- AIOrder.OF_NONE
AIOrder.AIOF_NON_STOP_INTERMEDIATE <- AIOrder.OF_NON_STOP_INTERMEDIATE
AIOrder.AIOF_NON_STOP_DESTINATION <- AIOrder.OF_NON_STOP_DESTINATION
AIOrder.AIOF_UNLOAD <- AIOrder.OF_UNLOAD
AIOrder.AIOF_TRANSFER <- AIOrder.OF_TRANSFER
AIOrder.AIOF_NO_UNLOAD <- AIOrder.OF_NO_UNLOAD
AIOrder.AIOF_FULL_LOAD <- AIOrder.OF_FULL_LOAD
AIOrder.AIOF_FULL_LOAD_ANY <- AIOrder.OF_FULL_LOAD_ANY
AIOrder.AIOF_NO_LOAD <- AIOrder.OF_NO_LOAD
AIOrder.AIOF_SERVICE_IF_NEEDED <- AIOrder.OF_SERVICE_IF_NEEDED
AIOrder.AIOF_STOP_IN_DEPOT <- AIOrder.OF_STOP_IN_DEPOT
AIOrder.AIOF_GOTO_NEAREST_DEPOT <- AIOrder.OF_GOTO_NEAREST_DEPOT
AIOrder.AIOF_NON_STOP_FLAGS <- AIOrder.OF_NON_STOP_FLAGS
AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID

View File

@@ -102,20 +102,3 @@ AIEvent.AI_ET_ENGINE_AVAILABLE <- AIEvent.ET_ENGINE_AVAILABLE;
AIEvent.AI_ET_STATION_FIRST_VEHICLE <- AIEvent.ET_STATION_FIRST_VEHICLE;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CRASHED <- AIEvent.ET_DISASTER_ZEPPELINER_CRASHED;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CLEARED <- AIEvent.ET_DISASTER_ZEPPELINER_CLEARED;
AIOrder.AIOF_NONE <- AIOrder.OF_NONE
AIOrder.AIOF_NON_STOP_INTERMEDIATE <- AIOrder.OF_NON_STOP_INTERMEDIATE
AIOrder.AIOF_NON_STOP_DESTINATION <- AIOrder.OF_NON_STOP_DESTINATION
AIOrder.AIOF_UNLOAD <- AIOrder.OF_UNLOAD
AIOrder.AIOF_TRANSFER <- AIOrder.OF_TRANSFER
AIOrder.AIOF_NO_UNLOAD <- AIOrder.OF_NO_UNLOAD
AIOrder.AIOF_FULL_LOAD <- AIOrder.OF_FULL_LOAD
AIOrder.AIOF_FULL_LOAD_ANY <- AIOrder.OF_FULL_LOAD_ANY
AIOrder.AIOF_NO_LOAD <- AIOrder.OF_NO_LOAD
AIOrder.AIOF_SERVICE_IF_NEEDED <- AIOrder.OF_SERVICE_IF_NEEDED
AIOrder.AIOF_STOP_IN_DEPOT <- AIOrder.OF_STOP_IN_DEPOT
AIOrder.AIOF_GOTO_NEAREST_DEPOT <- AIOrder.OF_GOTO_NEAREST_DEPOT
AIOrder.AIOF_NON_STOP_FLAGS <- AIOrder.OF_NON_STOP_FLAGS
AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID

View File

@@ -39,20 +39,3 @@ AIEvent.AI_ET_STATION_FIRST_VEHICLE <- AIEvent.ET_STATION_FIRST_VEHICLE;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CRASHED <- AIEvent.ET_DISASTER_ZEPPELINER_CRASHED;
AIEvent.AI_ET_DISASTER_ZEPPELINER_CLEARED <- AIEvent.ET_DISASTER_ZEPPELINER_CLEARED;
AIEvent.AI_ET_TOWN_FOUNDED <- AIEvent.ET_TOWN_FOUNDED;
AIOrder.AIOF_NONE <- AIOrder.OF_NONE
AIOrder.AIOF_NON_STOP_INTERMEDIATE <- AIOrder.OF_NON_STOP_INTERMEDIATE
AIOrder.AIOF_NON_STOP_DESTINATION <- AIOrder.OF_NON_STOP_DESTINATION
AIOrder.AIOF_UNLOAD <- AIOrder.OF_UNLOAD
AIOrder.AIOF_TRANSFER <- AIOrder.OF_TRANSFER
AIOrder.AIOF_NO_UNLOAD <- AIOrder.OF_NO_UNLOAD
AIOrder.AIOF_FULL_LOAD <- AIOrder.OF_FULL_LOAD
AIOrder.AIOF_FULL_LOAD_ANY <- AIOrder.OF_FULL_LOAD_ANY
AIOrder.AIOF_NO_LOAD <- AIOrder.OF_NO_LOAD
AIOrder.AIOF_SERVICE_IF_NEEDED <- AIOrder.OF_SERVICE_IF_NEEDED
AIOrder.AIOF_STOP_IN_DEPOT <- AIOrder.OF_STOP_IN_DEPOT
AIOrder.AIOF_GOTO_NEAREST_DEPOT <- AIOrder.OF_GOTO_NEAREST_DEPOT
AIOrder.AIOF_NON_STOP_FLAGS <- AIOrder.OF_NON_STOP_FLAGS
AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID

View File

@@ -6,5 +6,3 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
AILog.Info("1.2 API compatability in effect.");

View File

@@ -1,8 +0,0 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/

View File

@@ -923,12 +923,12 @@ function Regression::Order()
print("--Order--");
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 1));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.OF_TRANSFER));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.OF_TRANSFER | AIOrder.OF_UNLOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.OF_TRANSFER | AIOrder.OF_FULL_LOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.OF_SERVICE_IF_NEEDED));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.OF_STOP_IN_DEPOT));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(0, AIOrder.OF_SERVICE_IF_NEEDED | AIOrder.OF_GOTO_NEAREST_DEPOT));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_UNLOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_FULL_LOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_SERVICE_IF_NEEDED));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_STOP_IN_DEPOT));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(0, AIOrder.AIOF_SERVICE_IF_NEEDED | AIOrder.AIOF_GOTO_NEAREST_DEPOT));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_LOAD_PERCENTAGE, AIOrder.CF_EQUALS));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_RELIABILITY, AIOrder.CF_IS_TRUE));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_REQUIRES_SERVICE, AIOrder.CF_IS_FALSE));
@@ -940,8 +940,8 @@ function Regression::Order()
print(" IsConditionalOrder(): " + AIOrder.IsConditionalOrder(12, 1));
print(" IsCurrentOrderPartOfOrderList(): " + AIOrder.IsCurrentOrderPartOfOrderList(12));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33416, AIOrder.OF_TRANSFER));
print(" InsertOrder(): " + AIOrder.InsertOrder(12, 0, 33416, AIOrder.OF_TRANSFER));
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33416, AIOrder.AIOF_TRANSFER));
print(" InsertOrder(): " + AIOrder.InsertOrder(12, 0, 33416, AIOrder.AIOF_TRANSFER));
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1));
print(" IsGotoStationOrder(): " + AIOrder.IsGotoStationOrder(12, 1));
@@ -953,7 +953,7 @@ function Regression::Order()
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
print(" GetOrderJumpTo(): " + AIOrder.GetOrderJumpTo(12, 1));
print(" RemoveOrder(): " + AIOrder.RemoveOrder(12, 0));
print(" SetOrderFlags(): " + AIOrder.SetOrderFlags(12, 0, AIOrder.OF_FULL_LOAD));
print(" SetOrderFlags(): " + AIOrder.SetOrderFlags(12, 0, AIOrder.AIOF_FULL_LOAD));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 0));
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 0));
print(" CopyOrders(): " + AIOrder.CopyOrders(12, 1));
@@ -961,12 +961,12 @@ function Regression::Order()
print(" ShareOrders(): " + AIOrder.ShareOrders(13, 1));
print(" ShareOrders(): " + AIOrder.ShareOrders(13, 12));
print(" UnshareOrders(): " + AIOrder.UnshareOrders(13));
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33421, AIOrder.OF_NONE));
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33421, AIOrder.AIOF_NONE));
print(" GetStopLocation(): " + AIOrder.GetStopLocation(13, 0));
print(" BuildVehicle(): " + AIVehicle.BuildVehicle(23596, 8));
print(" BuildRailStation(): " + AIRail.BuildRailStation(7958, AIRail.RAILTRACK_NE_SW, 1, 1, AIStation.STATION_NEW));
print(" AppendOrder(): " + AIOrder.AppendOrder(20, 7958, AIOrder.OF_NONE));
print(" AppendOrder(): " + AIOrder.AppendOrder(20, 7958, AIOrder.AIOF_NONE));
print(" GetOrderCount(): " + AIOrder.GetOrderCount(20));
print(" GetStopLocation(): " + AIOrder.GetStopLocation(20, 0));
print(" SetStopLocation(): " + AIOrder.SetStopLocation(20, 0, AIOrder.STOPLOCATION_MIDDLE));

View File

@@ -88,9 +88,9 @@
abs( 21): 21
--AIBase--
Rand(): -54346916
Rand(): -937374575
Rand(): 823953997
Rand(): 1259692483
Rand(): -1289244298
Rand(): -1572996668
RandRange(0): 0
RandRange(0): 0
RandRange(0): 0
@@ -98,12 +98,12 @@
RandRange(1): 0
RandRange(1): 0
RandRange(2): 1
RandRange(2): 0
RandRange(2): 1
RandRange(2): 1
RandRange(1000000): 966676
RandRange(1000000): 289525
RandRange(1000000): 170283
Chance(1, 2): false
RandRange(1000000): 36500
RandRange(1000000): 300101
RandRange(1000000): 418369
Chance(1, 2): true
Chance(1, 2): true
Chance(1, 2): false
@@ -420,144 +420,144 @@
1098 => 46116
1099 => 46158
Randomize ListDump:
1 => -200078348
2 => -29799264
1000 => 1630721656
1001 => 959306175
1002 => 1527421791
1003 => 1259692483
1004 => -1289244298
1005 => -1572996668
1006 => -2069479746
1007 => -1819131606
1008 => -1007163964
1009 => -1185394870
1010 => -1471365065
1011 => 364354366
1012 => -1478084253
1013 => 405281367
1014 => -11170062
1015 => 156767750
1016 => 1288924796
1017 => 1796884876
1018 => -1947073702
1019 => -1999614238
1020 => -231292809
1021 => 966621566
1022 => -606766557
1023 => -1138727825
1024 => -749544262
1025 => 2004771271
1026 => 686734186
1027 => 923274744
1028 => -1672035149
1029 => -1642064950
1030 => 1363389551
1031 => -559500928
1032 => 1656196991
1033 => 1655354425
1034 => -1027156689
1035 => 1952644328
1036 => 1217870217
1037 => 242274100
1038 => 201816080
1039 => 2127464758
1040 => 446043650
1041 => -319728455
1042 => 204701002
1043 => -571265398
1044 => -1422217131
1045 => -391208397
1046 => -1822628371
1047 => -1499755350
1048 => -1422137641
1049 => 1621693134
1051 => -1428728134
1052 => -147587573
1053 => 681719500
1054 => 1172011190
1055 => -1834344882
1056 => 1157634586
1057 => 1902133676
1058 => -1967780161
1059 => -1618025531
1060 => -810220453
1061 => 1582854921
1062 => -410004643
1063 => 1159917159
1064 => -1377804984
1065 => -738843914
1066 => -1578756103
1067 => -464090986
1068 => 1711504679
1069 => 545330655
1070 => 379462570
1071 => 514511099
1072 => -1813251176
1073 => 1424958266
1074 => -825255131
1075 => 539054595
1076 => -1764192010
1077 => -1243277769
1078 => 2017874281
1079 => -1972353607
1080 => 1879761467
1081 => 1638986560
1082 => -1832287507
1083 => -492411882
1084 => 658940812
1085 => -1044199400
1086 => 1586504918
1087 => -125492611
1088 => -1562883174
1089 => -1013778441
1090 => 1560228607
1091 => -550265689
1092 => 524767105
1093 => -713387661
1094 => 1425927738
1095 => 942653932
1096 => 1233220698
1097 => 1313602368
1098 => -140318584
1099 => 1199179892
1 => 966621566
2 => -606766557
1000 => -1138727825
1001 => -749544262
1002 => 2004771271
1003 => 686734186
1004 => 923274744
1005 => -1672035149
1006 => -1642064950
1007 => 1363389551
1008 => -559500928
1009 => 1656196991
1010 => 1655354425
1011 => -1027156689
1012 => 1952644328
1013 => 1217870217
1014 => 242274100
1015 => 201816080
1016 => 2127464758
1017 => 446043650
1018 => -319728455
1019 => 204701002
1020 => -571265398
1021 => -1422217131
1022 => -391208397
1023 => -1822628371
1024 => -1499755350
1025 => -1422137641
1026 => 1621693134
1027 => -1428728134
1028 => -147587573
1029 => 681719500
1030 => 1172011190
1031 => -1834344882
1032 => 1157634586
1033 => 1902133676
1034 => -1967780161
1035 => -1618025531
1036 => -810220453
1037 => 1582854921
1038 => -410004643
1039 => 1159917159
1040 => -1377804984
1041 => -738843914
1042 => -1578756103
1043 => -464090986
1044 => 1711504679
1045 => 545330655
1046 => 379462570
1047 => 514511099
1048 => -1813251176
1049 => 1424958266
1051 => -825255131
1052 => 539054595
1053 => -1764192010
1054 => -1243277769
1055 => 2017874281
1056 => -1972353607
1057 => 1879761467
1058 => 1638986560
1059 => -1832287507
1060 => -492411882
1061 => 658940812
1062 => -1044199400
1063 => 1586504918
1064 => -125492611
1065 => -1562883174
1066 => -1013778441
1067 => 1560228607
1068 => -550265689
1069 => 524767105
1070 => -713387661
1071 => 1425927738
1072 => 942653932
1073 => 1233220698
1074 => 1313602368
1075 => -140318584
1076 => 1199179892
1077 => 91450916
1078 => -1471626821
1079 => -552692855
1080 => -801295697
1081 => 1307607393
1082 => -2111765574
1083 => 1773729008
1084 => -81987003
1085 => -1090790034
1086 => -843700327
1087 => -1306436740
1088 => 735656985
1089 => -1933491876
1090 => 642759863
1091 => 255293949
1092 => -1052469001
1093 => -1043605053
1094 => -2080328201
1095 => -1825196581
1096 => -1789181164
1097 => -1636072563
1098 => -111321262
1099 => 1979741000
KeepTop(10):
1 => -200078348
2 => -29799264
1000 => 1630721656
1001 => 959306175
1002 => 1527421791
1003 => 1259692483
1004 => -1289244298
1005 => -1572996668
1006 => -2069479746
1007 => -1819131606
1 => 966621566
2 => -606766557
1000 => -1138727825
1001 => -749544262
1002 => 2004771271
1003 => 686734186
1004 => 923274744
1005 => -1672035149
1006 => -1642064950
1007 => 1363389551
KeepBottom(8):
1000 => 1630721656
1001 => 959306175
1002 => 1527421791
1003 => 1259692483
1004 => -1289244298
1005 => -1572996668
1006 => -2069479746
1007 => -1819131606
1000 => -1138727825
1001 => -749544262
1002 => 2004771271
1003 => 686734186
1004 => 923274744
1005 => -1672035149
1006 => -1642064950
1007 => 1363389551
RemoveBottom(2):
1000 => 1630721656
1001 => 959306175
1002 => 1527421791
1003 => 1259692483
1004 => -1289244298
1005 => -1572996668
1000 => -1138727825
1001 => -749544262
1002 => 2004771271
1003 => 686734186
1004 => 923274744
1005 => -1672035149
RemoveTop(2):
1002 => 1527421791
1003 => 1259692483
1004 => -1289244298
1005 => -1572996668
1002 => 2004771271
1003 => 686734186
1004 => 923274744
1005 => -1672035149
RemoveList({1003, 1004}):
1002 => 1527421791
1005 => -1572996668
1002 => 2004771271
1005 => -1672035149
KeepList({1003, 1004, 1005}):
1005 => -1572996668
1005 => -1672035149
AddList({1005, 4000, 4001, 4002}):
1005 => 1005
4000 => 8000
@@ -588,7 +588,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
SetName(): false
GetLastErrorString(): ERR_NAME_IS_NOT_UNIQUE
GetName(): Regression
GetPresidentName(): P. Sharkey
GetPresidentName(): I. McAlpine
SetPresidentName(): true
GetPresidentName(): Regression AI
GetBankBalance(): 100000
@@ -7384,7 +7384,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
HasRoadType(Road): true
HasRoadType(Tram): false
GetNeighbourRoadCount(): 2
RemoveRoad(): false
RemoveRoad(): true
RemoveRoad(): true
RemoveRoad(): false
RemoveRoad(): true
@@ -8951,7 +8951,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetWagonEngineType(): 27
GetWagonAge(): 1
GetWagonEngineType(): 27
GetWagonAge(): 0
GetWagonAge(): 1
GetWagonEngineType(): 65535
GetWagonAge(): -1
--Errors--
@@ -9148,6 +9148,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetDestinationType(): 1
GetDestinationIndex(): 7
GetCargoType(): 0
GetNextEvent: instance
GetEventType: 6
Unknown Event
IsEventWaiting: false
--Math--

View File

@@ -6,7 +6,7 @@ class Regression extends AIInfo {
function GetShortName() { return "REGR"; }
function GetDescription() { return "This runs regression-tests on all commands. On the same map the result should always be the same."; }
function GetVersion() { return 1; }
function GetAPIVersion() { return "1.3"; }
function GetAPIVersion() { return "1.2"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
}

View File

@@ -25,7 +25,7 @@ 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 script=2 -d misc=9 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' | grep -v '^dbg: \[.*\]' > tmp.regression
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d script=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
fi
ret=0

Binary file not shown.

View File

@@ -55,7 +55,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
OPENTTD.GRF = 42d0ea63159d5ef2971429c2402eb2ca
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -55,7 +55,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
OPENTTD.GRF = 42d0ea63159d5ef2971429c2402eb2ca
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -55,7 +55,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
OPENTTD.GRF = 42d0ea63159d5ef2971429c2402eb2ca
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,8 +0,0 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/

View File

@@ -1,362 +1,3 @@
1.3.0-beta1 (2012-12-24)
------------------------------------------------------------------------
- Feature: Advanced settings to disable certain sound effects (r24846)
- Feature: [NewGRF] Support oversized purchase list sprites [FS#5271] (r24839)
- Feature: Improve pylon placement around station tiles that display neither pylons nor catenary (r24836)
- Feature: When using a non-release version of OpenTTD and the basegraphics are missing some sprites, also suggest to use a non-release version of the basegraphics (r24821)
- Feature: Consider engine preview windows always sticky, so non-shift mass-closure does not affect them [FS#2632] (r24809)
- Feature: When share-cloning vehicles do not open the vehicle window of the new vehicle [FS#4458] (r24808)
- Feature: Enable usage of 'companies' console command also in singleplayer [FS#2820] (r24807)
- Feature: Ask for confirmation before creating giant screenshots [FS#3148] (r24806)
- Feature: Separate subdirectory for screenshots (r24804)
- Feature: Unify the difficulty settings window with the advanced settings window (r24791, r24792)
- Feature: Various methods to open the OSK (r24785)
- Feature: Add a string filter to the server list [FS#3852] (r24769)
- Feature: Add industry type and cargo dropdown selection for easier navigating in the industry chain window (r24763)
- Feature: Introduce GUI icons for deleting to the left/right (r24749)
- Feature: Add clear button to all editboxes (r24748)
- Feature: Reset the vehicle engine pool when starting a scenario (r24716)
- Feature: Add basic/advanced/expert filters to the advanced settings GUI [FS#5355] (r24671)
- Feature: Draw cargo labels in the station list black or white depending on the background colour [FS#5311] (r24668)
- Feature: Do not display the preview window for disabled vehicle types (r24660)
- Feature: Add new filter option to the advanced settings window to show only changed settings (r24647)
- Feature: Add text filtering to advanced settings (r24632)
- Feature: Add buttons to expand/collapse all to advanced settings GUI (r24631)
- Feature: [GS] Allow GameScripts to construct and prospect industries without having a sponsor (r24623)
- Feature: Pay interest also on a negative cash value (r24618)
- Feature: Sort cargo filter by cargo name/label at the company stations window [FS#5311] (r24615)
- Feature: More options for the auto-scroll setting (r24590)
- Feature: Allow AI/GS script developers to break the execution of their scripts and pause the game using ScriptController::Break() (r24542, r24575)
- Feature: Scripts can be suspended even if the game is still progressing, thus break-on-log now works also for Game Scripts (r24537)
- Feature: Highlight industries on the smallmap when the mouse is over an entry in the legend (r24534)
- Feature: [NewGRF] Allow resolving var 5F via vehicle var 61 (r24527)
- Feature: [OSX] Additional high-resolution icons for the app bundle [FS#4539] (r24525)
- Feature: Ctrl+Backspace/Delete to remove characters up to next word beginning in text edit boxes [FS#5203] (r24521)
- Feature: Ctrl+Arrow keys to move entire words in text edit boxes [FS#5203] (r24520)
- Feature: When using autorefit only load/refit vehicles if other wagons cannot already take all cargo without refitting [FS#5106] (r24497)
- Feature: [GS] Useful behaviour for GSEngine::IsValidEngine and GSEngine::IsBuildable when outside GSCompanyMode scope (r24492)
- Feature: Display GS dead state in AI debug window [FS#5230] (r24489)
- Feature: Add buttons to view textfiles from the online content window [FS#5236] (r24488)
- Feature: Make the pathfinder decide whether ships shall leave depots towards north or south [FS#5127] (r24481)
- Feature: [GS] API compatibility scripts for Goal Scripts [FS#5219] (r24468)
- Feature: Display in the advanced settings description a setting type which explains the scope of changes to a particular setting [FS#5244] (r24411)
- Feature: [GS] Allow game scripts to monitor cargo pickups and deliveries done by companies (r24406)
- Feature: [NewGRF] Allow vehicle variable 61 for callback 2D (recolour) and re-randomisation (r24371)
- Feature: [NewGRF] Customisable signals for rail types (r24367)
- Feature: Allow filtering for multiple words (separated by whitespace resp. quoted) in script breakpoints, the sign list, content and NewGRF-GUIs (r24337, r24342)
- Feature: Add dropdowns to NewGRF configurations, if all values have labels (r24318)
- Feature: Add dropdowns to AI configurations, if all values have labels (r24317)
- Feature: Allow to select advanced settings with limited range with a dropdown list (r24316)
- Feature: Display default values for advanced settings in the settings description (r24298)
- Feature: News item for exclusive transport rights [FS#2688] (r24287)
- Feature: [GS] Additional GSNews::NewsItem::NewsTypes (r24286)
- Feature: [NewGRF] Variable with the current max speed for vehicles [FS#5052] (r24246)
- Feature: Descriptions explaining the meaning of advanced settings (r24237)
- Feature: Split the renew-months setting text in two string values (one before life time and one after) (r24210)
- Feature: Show a hint in the supplies tab of station windows, if the station is affected by exclusive transport rights [FS#5178] (r24205)
- Feature: [NewGRF] Callback to set industry production level on construction (r24186)
- Feature: South Korean and South African currencies [FS#4907] (r24148)
- Feature: Randomise count of passengers killed in a crash [FS#3576] (r24142)
- Feature: Display rating in the town directory window (r24141)
- Feature: Show group name in the replace vehicle window caption [FS#1117] (r24140)
- Feature: Allow to create a new vehicle group by drag and drop (r24139)
- Feature: Ctrl+Drag to add all vehicles with a shared order list to a group (r24138)
- Feature: Draw indicator icon in the replace vehicle window for vehicles which have a replacement set (r24137)
- Feature: Autoreplace vehicles only when they get old [FS#4465] (r24136)
- Feature: Add configurable limits for tree planting, and remove tree drag size limit (r24134, r24135)
- Feature: Lithuanian currency [FS#4984] (r24133)
- Feature: Ctrl+Clicking to change colour of all colour schemes at once [FS#1952] (r24131)
- Feature: Deselect 'remove' button when changing signal types in the GUI [FS#2314] (r24130)
- Feature: Option to minimise signal distance when dragging over obstacles [FS#3660] (r24129)
- Feature: Allow closing airports for incoming aircraft [FS#1497] (r24127)
- Feature: Drag and drop support for the NewGRF list window [FS#3854] (r24126)
- Feature: Drag destination highlighting to the group GUI [FS#3705] (r24125)
- Feature: [NewGRF] Misc engine flag to disable breakdown smoke [FS#4658] (r24124)
- Feature: Be more careful with the population of a small town while placing a statue (r24105)
- Feature: Debug option for showing the redrawn dirty blocks/rectangles [FS#5101] (r24065)
- Change: News display options are now shown in the advanced settings window (r24842, r24843, r24844, r24845)
- Change: Drop 'signal density' from the advanced settings GUI. It is more suited to be only changed via the signal GUI (r24670)
- Change: Check for bankruptcy on a monthly basis (r24619)
- Change: Only bankrupt, if you have negative money considering you took max loan (r24617)
- Change: When building long roads or tramways, only build the roadbits at the beginning and the end if they can connect to something [FS#5228] (r24503)
- Change: Disallow original and better road layouts to build roads under bridges along the bridge direction [FS#5229] (r24391)
- Change: Allow cloning of orders which are unreachable for the destination vehicle if they were already unreachable for the source vehicle [FS#5213] (r24390)
- Change: Allow building/modifying/removing signals even if a train is on the belonging track (r24356)
- Change: [NewGRF] Make bounding boxes of road vehicles change according to the vehicle length to make alignment easier [FS#5204] (r24331)
- Fix: [NewGRF] Consider regearing-like cargos as no-cargo in cargo filters [FS#5386] (r24848)
- Fix: [NewGRF] Draw NewGRF railtypes in NewGRF station previews (r24840)
- Fix: Don't consider blocked rail station tiles that display wires as non-reachable for masking out unnecessary catenary wires (r24837)
- Fix: The autorefit dropdown in the order GUI wasn't always updated when modifying vehicle consists [FS#5396] (r24834)
- Fix: [NewGRF] Incorrect values are better than a crash when a NewGRF queries vehicle variable 4C before vehicle initialisation is completed [FS#5398] (r24831)
- Fix: determineversion.vbs could hang in a git checkout (r24826)
- Fix: Close pending preview windows when the engine is introduced to everyone (r24812)
- Fix: Close engine preview window when another client accepts it (r24811)
- Fix: Make engine preview offers more robust with regard to changes in the company ranking (r24810)
- Fix: When displaying the previous news message, do not consider news which are turned off [FS#4224] (r24802)
- Fix: Glitch in timetable GUI [FS#5327] (r24800)
- Fix: Unify checks for editability of settings (r24787)
- Fix: Invert the focus handling of the OSK. Keep the focus at the OSK and close it on losing focus (r24774)
- Fix: Shift in the OSK behaved like capslock (r24773)
- Fix: [Win32] Do not crash when switching to an unsupported fullscreen display mode (like 8bpp modes in Windows 8) [FS#5359] (r24762)
- Fix: Crash on corrupted savegame [FS#5367] (r24754)
- Fix: Some editboxes had a different colour than the rest of the window (r24747)
- Fix: In various windows the OSK looked shiny but using it had no effect whatsoever (r24727)
- Fix: AI debug GUI crashed when using disabled buttons via hotkeys (r24723)
- Fix: When starting a scenario apply the local company settings to the new company [FS#5139] (r24717)
- Fix: [NewGRF] Allow stations to draw snow/desert aware ground sprites with railtype overlays [FS#5335] (r24715)
- Fix: [NewGRF] Draw default foundations if resolving of custom station foundation sprites fails [FS#5337] (r24714)
- Fix: [NewGRF] Tolerate old NewGRFs returning invalid values via CB 11 [FS#5262] (r24713)
- Fix: [NewGRF] Station variables 61 and 62 returned incorrect values, if no vehicle ever tried loading [FS#5303] (r24712)
- Fix: Check whether to not display a ^ loading indicator at drop stations only worked if there was no other vehicle unloading for 255 ticks (r24711)
- Fix: [NewGRF] Station var 48 should report acceptance, not supply (r24706)
- Fix: Station rating might consider very old vehicles very young (r24705)
- Fix: Disallow closing oilrig airports in the scenario editor (r24703)
- Fix: Workaround for an overoptimisation done by GCC 4.5 [FS#5246] (r24701)
- Fix: Get packing right on MinGW GCC 4.7 (r24573)
- Fix: Make sure all template functions are instantiated by at least one compilation unit [FS#5276] (r24496)
- Fix: Do not load order backups when loading a server-saved game in single player (r24445)
- Fix: Allow overbuilding bridges with the same type when adding a roadtype [FS#5221] (r24413)
- Fix: Cargo lists cannot have genders (mostly because it is very unclear what gender it would have) (r24374)
- Fix: Off by one errors with regard to clicking on setting buttons (r24313)
- Fix: STRING1 probably means STRING1 (r24295)
- Fix: squirrel_export should match key words like 'virtual', 'static' and 'const' only as whole words (r24288)
- Fix: Hide object specs/classes from the GUI, if they will never be available to the user [FS#4967, FS#5120] (r24171)
- Fix: Unify the spacing in 'AI/Game Script' and never just say 'Game' when 'Game Script' is meant [FS#4898] (r24020)
1.2.3 (2012-11-01)
------------------------------------------------------------------------
(None)
1.2.3-RC1 (2012-10-17)
------------------------------------------------------------------------
- Change: [NewGRF] Set the reference brightness of 32bpp mask recolouring to 128 (r24610)
- Fix: Configure script did not properly handle _BUILD flags during reconfigure (r24601)
- Fix: Configure script failed to detect libfontconfig 2.10 as newer than 2.3 (r24598)
- Fix: When fontconfig is not available, the bootstrap download crashed [FS#5336] (r24597)
- Fix: Crash when a gamescript provided too many parameters to a GSText object [FS#5333] (r24593)
- Fix: [Script] API documentation mistakes/omissions (r24584)
- Fix: Do not add duplicates to the ban list [FS#5308] (r24580)
- Fix: Draw the window resize sprite bottom-aligned [FS#5324] (r24577)
- Fix: Vehicle list at buoys did no longer work [FS#5319] (r24576)
- Fix: [Windows] Do not cast away const in OS specific code (r24572, r24571)
- Fix: Naming of bundles was somewhat broken (r24569)
- Fix: Non-train vehicle lists were not resorted when vehicles were renamed [FS#5261] (r24567)
- Fix: Stop both price and payment inflation if either of them has reached MAX_INFLATION (r24565)
- Fix: Limiting the inflation did not quite work [FS#5312] (r24564)
- Fix: Do not show profit from refits as cost in the refit window [FS#5297] (r24544)
- Fix: Do not limit to reading one UDP packet per game loop (r24532)
- Fix: Max script chance was too big (r24531)
- Fix: [NewGRF] RandomAction 84 should interpret register 100 as signed (r24528)
- Fix: [OSX] Some compile problems in mac-only code [FS#5296] (r24524)
- Fix: The gender of an industry name is defined by the industry-type part of the name, not by the town-name part, even if it comes first (r24523, r24522)
- Fix: GStexts were compiled incompletely when containing certain string codes (r24516, r24515)
- Fix: The mousewheel did not work in the build waypoint window [FS#5285] (r24507)
- Fix: [NewGRF] Airport variables 60 to 65 and 69 used the wrong cargo translation table for translations (r24506)
- Fix: Do not show the global goals as company goals for spectators (r24500)
- Fix: Clarify description of command line option -n (r24485)
- Fix: Do not call RebuildSubsidisedSourceAndDestinationCache() before subsidy savegame conversion is finished [FS#5232] (r24482)
- Fix: Trains were unable to reverse in stations when using NPF (r24479)
- Fix: The --xxx yyy format (instead of --xxx=yyy) for configure did not work (r24471)
- Fix: --prefix was not accepted by configure (r24470)
- Fix: Changing auto-refit for a 'goto station' order was inadvertently modifying the full load state [FS#5264] (r24457)
1.2.2 (2012-08-16)
------------------------------------------------------------------------
(None)
1.2.2-RC1 (2012-08-01)
------------------------------------------------------------------------
- Fix: In some cases ships could be covered with land [CVE-2012-3436] [FS#5254] (r24449, r24439)
- Fix: Copy constructor and assignment operator cannot be implicit template specialisations [FS#5255] (r24448)
- Fix: Make (non-refittable) vehicles with invalid default cargo unavailable [FS#5256] (r24438)
- Fix: CFLAGS/CXXFLAGS ignored for helper binaries (r24432, r24429, r24427, r24365)
- Fix: [Windows] Unbreak NewGRF MD5 sum calculation. Macros and side effects do not mix, especially if there is some obscure '#define min' in a windows header that nobody thinks of [FS#5231] (r24416)
- Fix: Disallow removing roadtypes from bridges when not dragging in bridge direction [FS#5221] (r24414)
- Fix: Draw wires under low bridges if the bridge is transparent, not if the wire is transparent (r24403)
- Fix: Station properties 11 and 14 were combined incorrectly [FS#5243] (r24402)
- Fix: [Windows] Changing resolution did not resize the window (r24394)
- Fix: Use the 'all vehicles' group for the autoreplace window from the vehicle list [FS#5239] (r24392)
- Fix: Do not consider not finding a particular base set critical; just load a different one and display an in-game error later on [FS#5233] (r24388)
- Fix: Make IsInDepot() functions behave consistent across vehicle types and add IsChainInDepot instead, if that is what shall be checked [FS#5188] (r24384)
- Fix: Call Vehicle::IsStoppedInDepot only for the first vehicle in a chain (i.e. primary vehicle or free wagon) (r24382)
- Fix: Do not resize the object GUI when selecting objects. Rather clip the object name (r24379)
- Fix: ReInit could crash for windows with NWidgetMatrix widgets [FS#5218] (r24378)
- Fix: [NewGRF] Extended action A1 did not work correctly [FS#5227] (r24369, r24361)
- Fix: [NewGRF] Ship-specific 80+x variables were missing for unknown reason [FS#5224] (r24360)
- Fix: When airport construction was denied due to noise, the error message named the wrong town (r24354)
- Fix: [NoAI] A TileIndex is not a station id, so do not use it as one [FS#5215] (r24353)
- Fix: When highlighting the drop position for vehicles in depots, make space for all articulated parts (r24352)
- Fix: Short vehicles were not properly positioned at the cursor when dragging for RTL languages (r24351)
- Fix: EQUALSIZE widget containers within EQUALSIZE containers were initialised with wrong sizes (r24346)
- Fix: The cursor in the company password window was not blinking due to wrong magic constants (r24335)
- Fix: [NewGRF] Change the length of 8/8 roadvehicles in vehicle lists to 32 pixels; this is in fact the correct length as can be seen in corners for short articulated parts following each other [FS#2553] (r24332)
- Fix: [NewGRF] Group vehicles in the purchase list properly by source GRF, but also consider engine GRFID overrides [FS#4254] (r24330, r24321)
- Fix: Make the AI settings window behave more like the other settings window by closing the query window whenever selecting a different row (r24315)
- Fix: Editing NewGRF parameters using the query window showed wrong values, if there was no direct relation between parameter index and parameter register (r24314)
- Fix: Center object previews in 1- and 2-view selectors based on the 4-view selector layout [FS#5057] (r24299)
- Fix: Increase the left and right margins of the text in the yes/no query window (r24293)
- Fix: [NewGRF] GetReverseCargoTranslation() was unnecessary complicated and also returned the wrong thing for cargos not present in the translation table (r24273)
- Fix: [NewGRF] Load cargo- and railtype-translation during both reservation and activation stage. That way they can be selected using Action7 depending on present cargo- or railtypes (r24272)
- Fix: Use the same colour scheme for the script selection window as in other comparable windows (r24268)
- Fix: Make the oilrig-vehicle list accessible to spectators and colour its caption neutrally grey [FS#5126] (r24260)
1.2.1 (2012-06-01)
------------------------------------------------------------------------
- Fix: [Script] ScriptTown::GetGrowthRate() returned wrong values after usage of SetGrowthRate() (r24302)
1.2.1-RC1 (2012-05-16)
------------------------------------------------------------------------
- Fix: Change the unit of the sprite-cache size setting from megabytes to megapixels, so it depends on the blitter being used. Also increase it from 64 to 128, and change the name in the cfg file, so everyone gets the new default [FS#5162] (r24252)
- Fix: Do not immediately display error messages from parsing the cfg file, but schedule them for displaying after the GUI is prepared for it [FS#5154] (r24250, r24249, r24248, r24247)
- Fix: Dereferencing uninitialised pointer causing a crash [FS#5159] (r24224)
- Fix: Lag counters were not properly reset when switching states making it possible to get disconnected for lagging when you were not lagging [FS#5166] (r24221)
- Fix: Adopt ICU version detection to also deal with the new versioning scheme since ICU 49 [FS#5182] (r24220)
- Fix: Immediately do the cargo payment on vehicle crashes instead of when they are cleared [FS#5152] (r24219)
- Fix: The confirmation window to abort world generation was hidden during world generation, so actually you could not abort it [FS#5159] (r24214)
- Fix: If a company is taken over or bankrupts, transfer exclusive transport rights to the new owner respectively cancel them (r24204)
- Fix: Make the engine name not overdraw the engine count in the autoreplace GUI (r24203)
- Fix: Make the size of the details in the autoreplace GUI match more the size of the details in the purchase list (r24202)
- Fix: Mark group list dirty when setting/clearing autoreplace for an engine type [FS#5170] (r24201)
- Fix: Invalidate build vehicle windows every month, in case they need resorting due to changed reliabilities [FS#5149] (r24200)
- Fix: If you consider a settings to potentially cause desyncs via NewGRFs and thus disallow changing it in network games, you should probably also sync it to clients (r24193, r24191)
- Fix: Use default value when reading an invalid setting value [FS#5153] (r24192, r24146)
- Fix: [Windows] When going to fullscreen and back, restore to the resolution you were, not to the fullscreen resolution (r24189)
- Fix: [Windows] When changing the basics of a window (fullscreen, 8bpp/32bpp), and a window already exists, it was forced out of maximize mode, and its resolution/position was reset, often causing unwanted side-effects [FS#5151] (r24188)
- Fix: Town radii were not updated immediatelly after construction/destruction of houses, resulting in desyncs [FS#5169] (r24183)
- Fix: The population of a town was computed incorrectly for overridden houses when loading a game (r24182, r24181, r24179)
- Fix: The object name from property A was not displayed in the object GUI [FS#5110] (r24178)
- Fix: The arctic 'shops and offices' used the 'church' sprite in one of its four views [FS#5148] (r24177)
- Fix: The object GUI did not draw objects when all objects of a class are disabled (r24176)
- Fix: If you spent hard work on finding an available object ID, you should probably also use it instead of always 0 (r24159)
- Fix: Town producing no cargo at all could spawn passenger subsidies (r24158)
- Fix: The music volume was set too early during startup causing it to be not set correctly (r24155)
- Fix: [Squirrel] Crash when trying to create an array with negative size [FS#5160] (r24153)
- Fix: [NoAI] Do not return the last 'cached' speed of vehicles when they are stopped/crashed [FS#5157] (r24152)
- Fix: [Script] Typo in script documentation (r24151)
- Fix: Glass-sprite of bubble-generator was not drawn anymore for completely constructed tiles [FS#5143] (r24107)
- Fix: Conflicting strategies for resizing the main toolbar and statusbar after resizing the main window [FS#5136] (r24089)
- Fix: Significantly reduce the area that is redrawn for text effects [FS#5103] (r24068)
- Fix: Do not redraw up to 25% of the map when making a new vehicle visible for the first time (r24067)
- Fix: Do not redraw the text effect when nothing changed (r24066)
1.2.0 (2012-04-15)
------------------------------------------------------------------------
- Fix: When starting GS or AI, always use the settings of the game, not the new-game settings [FS#5142] (r24108)
- Fix: Provide translated comments in the desktop file without language name postfix (r24100)
- Fix: Cloning orders of aircraft with limited range failed [FS#5131] (r24086)
1.2.0-RC4 (2012-04-01)
------------------------------------------------------------------------
- Fix: Reversing trains while they were entering or leaving a depot could lead to stuck trains [FS#5093] (r24078, r24071)
- Fix: The 'last joined' server was not properly selected anymore [FS#5098] (r24070)
- Fix: Immediately start querying the last joined server instead of waiting for the requery loop [FS#5097] (r24069, r24062)
- Fix: Make the full snowedness level of houses the same as roads and rails [FS#5121] (r24064)
- Fix: With certain versions of GCC and compiler flags the compiler could reorder some code badly causing the 32bpp depot flag not working [FS#5125] (r24063)
- Fix: Do not freeze aircraft mid-flight when skipping to an out-of-range destination [FS#5123] (r24060)
- Fix: Wrong numbering of string parameters causing wrong capacities to be shown [FS#5124] (r24058)
- Fix: Crash when timetabling a maximum travel speed of 0 [FS#5111] (r24053)
- Fix: [NewGRF] Imported GRF sounds were inserted into the wrong slots [FS#5107] (r24052)
- Fix: [NewGRF] Realsprites inside the action 11 block were not skipped correctly (r24050)
- Fix: Improve error messages for the placement restrictions of banks, water towers and toy shops [FS#5095] (r24040)
1.2.0-RC3 (2012-03-18)
------------------------------------------------------------------------
- Feature: Allow display of baseset textfiles (r24037)
- Feature: Increase the station class limit from 32 to 256 (r24031)
- Fix: After opening a text window with the monospaced font, all other text started glitching (r24038)
- Fix: [NoAI] Reset 'is random' status of temporary variable during saveload as it is not always written to when loading an AI which means it wouldd be taking the 'is random' setting of another AI (r24033)
- Fix: [NoAI] Make AIEngine::IsArticulated return true if the articulated callback flag is set, do not try to run the callback (r24029)
- Fix: Pass cases down into the list of cargos [FS#5090] (r24024, r24023, r24022)
1.2.0-RC2 (2012-03-04)
------------------------------------------------------------------------
- Fix: [Script] AI used in names in API for GSOrder [FS#5088] (r24006)
- Fix: Improve rounding when converting display speeds to internal speeds [FS#5079] (r23995)
- Fix: Also reset the font glyph cache when switching blitters (r23992, r23987)
- Fix: [NewGRF] Also display the cargo subtype for vehicles which have no capacity, but a subtype [FS#5076] (r23991)
- Fix: Zero the offsets of disabled zoomlevels, so they do not influence offset calculations (r23989)
- Fix: Invalid reads when scaling an odd-sized sprite smaller (r23986)
- Fix: Inconsistent quit/abandon/exit game/scenario/editor strings [FS#5074] (r23985)
- Fix: Fix the order of lights on the helipad [FS#5082] (r23984)
- Fix: Tarred heightmaps would not be found [FS#5083] (r23983)
- Fix: Do not load a game during UpdateWindows as that might trigger changing the blitter which triggers re-entrant locking (r23980, r23977)
- Fix: [SDL] Palette update was done too late making switching from 8bpp -> 32bpp look ugly (r23978)
- Fix: Sprites of different zoom levels were not always padded correctly to a common size (r23976)
- Fix: Also save the maximum travel speed for the current vehicle order (r23973)
1.2.0-RC1 (2012-02-19)
------------------------------------------------------------------------
- Feature: [NewGRF] Customisable tunnel portals for rail types (r23952)
- Feature: Timetabled maximum travel speeds for non-flying vehicles (r23947)
- Feature: Readme/licence/changelog viewer for AI and game scripts [FS#5047] (r23936)
- Feature: [NewGRF] 32bpp sprites in GRFs (r23897)
- Feature: [NewGRF] Support for RealSprites with multiple zoom levels (r23890)
- Feature: [NewGRF] Support for container version 2 (r23887)
- Fix: Refittability should never depend on the current capacity of a vehicle [FS#5070] (r23965)
- Fix: Do not look for missing sprites twice during startup [FS#5072] (r23963)
- Fix: [Script] Infinite recursion within a script was not caught properly, so they could cause crashes of OpenTTD instead of the AI [FS#5068] (r23962)
- Fix: [NewGRF] Make the properties for always/never refittable cargo types not behave incremental, but reset them on reassignment (r23960)
- Fix: [Network] Do not allow chat messages from pre-active clients. As they have not got the savegame yet, they will not have the interface to send them either (r23958)
- Fix: [Network] Allow sending chat to pre-active clients as the clients start accepting once they send 'map ok' to the server, which is the same moment we change their status to pre-active [FS#4990] (r23957)
- Fix: When the population of a town changes the town view might even have to change size due to different cargo requirements [FS#5062] (r23953)
- Fix: [NoGo] Never show GSGoal::Question() to spectators [FS#5063] (r23950)
- Fix: Better rounding when converting internal speed to displayed speed (r23945)
- Fix: Also list DEITY signs in the signlist in the scenario editor [FS#5061] (r23943)
- Fix: Infrastructure cache of standard road stops would get messed up when buying a company with them (r23942)
- Fix: Scale infrastructure cost of rail tracks by the total number of all tracks and not independently for each rail type (r23931)
- Fix: [Script] Do not close the parameter window when a script starts [FS#4944] (r23930)
- Fix: Do not accelerate, for smoke purposes, when you reached the track's maximum speed [FS#5053]
- Fix: 32bpp animated blitter was optimised a bit too far regarding not needing to update the colour mapping when (re)initialising the palette [FS#5056] (r23927)
- Fix: [NoGo] Some news messages would cause an assertion to be triggered due to a missing proper location for the viewport of the news message, so only allow building when valid data for the viewport is provided or no viewport is used [FS#5054] (r23924)
- Fix: Consider only the middle tile of a lock for lock-infrastructure costs. The other two tiles may be owned by other companies. Also do not count the middle tile of a lock as canal, independent of whether it is build on ground or river slope (r23920)
- Fix: [NewGRF] When determining the first refittable cargotype according to CTT order, do not rely on the GRF assigning the refit_mask property. Also check for GRFs setting the default_cargo or refittable-cargo-classes or -types properties (r23916)
- Fix: [NewGRF] Do not test validity of cargobits using a mask of cargoslots (r23914)
- Fix: [NewGRF] When testing whether a engine shall only carry the default cargo, check ctt_include_mask for being empty before applying cargo translation (r23912)
- Fix: [SDL] Handle the SDL_VIDEOEXPOSE event to solve issues with SDL 1.3 (r23910)
- Fix: [SDL] Fix keyboard-related segfault when compiling against SDL 1.3 (r23909)
- Fix: [Makefile] Make sure bin/baseset/openttd.32.bmp is removed on make clean (r23908)
- Fix: [Makefile] Let "make clean --dry-run" not delete Makefiles (r23907)
- Fix: [Windows installer] OpenMSX got downloaded to and extracted in the wrong (non-existent) folder [FS#5045] (r23905)
- Fix: Memory leak everytime one clicked a savegame in the load GUI (r23901)
- Fix: [NewGRF] It was not possible to import sounds from a NewGRF later in the load order (r23883)
- Remove: PNG sprite loader; use 32bpp sprites in a NewGRF (r23898)
1.2.0-beta4 (2012-02-04)
------------------------------------------------------------------------
- Feature: [NewGRF] Give NewGRF defined level crossings and rail depots access to the townzone (r23866)
- Feature: [NewGRF] New algorithm (activated via an engine flag) to determine the capacity of vehicles. This allows vehicles to better control the capacity for cargotypes which they know; and let cargo NewGRFs influence the capacity for cargos the vehicle NewGRF does not know, but which the vehicle is refittable to due to cargo classes (r23861)
- Feature: [NewGRF] Add cargo property 1D to set the capacity multipliers when refitting vehicles, which do not use callback 15 (r23860)
- Feature: Allow command line options -e and -g to be combined to load saves/scenarios directly into SE (r23839)
- Feature: [NoGo] Allow querying orders of vehicles [FS#4994] (r23837)
- Change: Do not let towns (ever) remove objects [FS#5001, FS#5002] (r23842)
- Change: Make signs placed in scenario editor belong to the GS. That way they are always shown in game and are not editable [FS#4999] (r23835)
- Fix: Generate industry subsidies again [FS#5039] (r23876)
- Fix: [NoGo/NoAI] Scripts with a bad comparator could lock up OpenTTD [FS#5004] (r23870)
- Fix: Make the colour of the dropdown items for opening the vehicle list for which the company has no vehicles looking less horrid [FS#5020] (r23867)
- Fix: Railtype overlays were drawn 'only transparent' on invisible bridges (r23864)
- Fix: Inserting conditional orders for ships checked the wrong orders wrt. maximum distance (r23859)
- Fix: Out of bounds read for slowdown parameter caused desync when railtype >= 4, vehicles were fast, and the original acceleration model was used [FS#5007] (r23855)
- Fix: Infrastructure cache could get out of sync when overbuilding a drive through road stop (r23851)
- Fix: When the network is lagging, you try to copy a vehicle's order but accidentally create a station order and then copy the vehicle's order (before the first command is executed) one could trigger an assertion from the pool [FS#5008] (r23849)
- Fix: When removing road or tram from a tram+road stop, the owner of the road stop's cache was updated instead of the owner of the removed infrastructure (r23847)
- Fix: Infrastructure count for stations was not updated properly on company takeover. And do not count buoys while loading a game either (r23844)
- Fix: Clear NewGRF vehicle cache when their owner changes (r23841)
- Fix: Assertion got hit when destroing a dock when a ship was loading [FS#5000] (r23838)
- Fix: If a vehicle is not refittable to any cargo in the CTT, then pick the first refittable cargoslot (r23836)
1.2.0-beta3 (2012-01-21)
------------------------------------------------------------------------
- Feature: [NoGo] Allow to chose the goal question window's title from a (small) set of options [FS#4992] (r23827)

View File

@@ -164,7 +164,7 @@ set_default() {
with_ccache
with_grfcodec
with_nforenum
CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD"
CC CXX CFLAGS CXXFLAGS LDFLAGS"
}
detect_params() {
@@ -197,21 +197,21 @@ detect_params() {
--cpu-type) prev_p="cpu_type";;
--cpu-type=*) cpu_type="$optarg";;
--cc-build) prev_p="cc_build";;
--cc-build) prevp_p="cc_build";;
--cc-build=*) cc_build="$optarg";;
--cc-host) prev_p="cc_host";;
--cc-host) prevp_p="cc_host";;
--cc-host=*) cc_host="$optarg";;
--cxx-build) prev_p="cxx_build";;
--cxx-build) prevp_p="cxx_build";;
--cxx-build=*) cxx_build="$optarg";;
--cxx-host) prev_p="cxx_host";;
--cxx-host) prevp_p="cxx_host";;
--cxx-host=*) cxx_host="$optarg";;
--windres) prev_p="windres";;
--windres) prevp_p="windres";;
--windres=*) windres="$optarg";;
--awk) prev_p="awk";;
--awk) prevp_p="awk";;
--awk=*) awk="$optarg";;
--strip) prev_p="strip";;
--strip) prevp_p="strip";;
--strip=*) strip="$optarg";;
--lipo) prev_p="lipo";;
--lipo) prevp_p="lipo";;
--lipo=*) lipo="$optarg";;
--endian) prev_p="endian";;
@@ -219,53 +219,52 @@ detect_params() {
# Alias --prefix with --prefix-dir, for compatibility with GNU autotools
--prefix-dir | --prefix) prev_p="prefix_dir";;
--prefix-dir=* | --prefix=*) prefix_dir="$optarg";;
--prefix-dir) prevp_p="prefix-dir";;
--prefix-dir=*) prefix_dir="$optarg";;
--binary-dir) prev_p="binary_dir";;
--binary-dir) prevp_p="binary-dir";;
--binary-dir=*) binary_dir="$optarg";;
--data-dir) prev_p="data_dir";;
--data-dir) prevp_p="data-dir";;
--data-dir=*) data_dir="$optarg";;
--doc-dir) prev_p="doc_dir";;
--doc-dir) prevp_p="doc-dir";;
--doc-dir=*) doc_dir="$optarg";;
--icon-dir) prev_p="icon_dir";;
--icon-dir) prevp_p="icon-dir";;
--icon-dir=*) icon_dir="$optarg";;
--icon-theme-dir) prev_p="icon_theme_dir";;
--icon-theme-dir) prevp_p="icon-theme-dir";;
--icon-theme-dir=*) icon_theme_dir="$optarg";;
--without-icon-theme) icon_theme_dir="";;
--menu-dir) prev_p="menu_dir";;
--menu-dir) prevp_p="menu_dir";;
--menu-dir=*) menu_dir="$optarg";;
--without-menu-entry) menu_dir="";;
--menu-name) prev_p="menu_name";;
--menu-name) prevp_p="menu_name";;
--menu-name=*) menu_name="$optarg";;
--binary-name) prev_p="binary_name";;
--binary-name) prevp_p="binary_name";;
--binary-name=*) binary_name="$optarg";;
--man-dir) prev_p="man_dir";;
--man-dir) prevp_p="man_dir";;
--man-dir=*) man_dir="$optarg";;
--personal-dir) prev_p="personal_dir";;
--personal-dir) prevp_p="personal-dir";;
--personal-dir=*) personal_dir="$optarg";;
--without-personal-dir) personal_dir="";;
--shared-dir) prev_p="shared_dir";;
--shared-dir) prevp_p="shared-dir";;
--shared-dir=*) shared_dir="$optarg";;
--without-shared-dir) shared_dir="";;
--install-dir) prev_p="install_dir";;
--install-dir) prevp_p="install-dir";;
--install-dir=*) install_dir="$optarg";;
--menu-group) prev_p="menu_group";;
--menu-group) prevp_p="menu_group";;
--menu-group=*) menu_group="$optarg";;
@@ -443,9 +442,6 @@ detect_params() {
CFLAGS=* | --CFLAGS=*) CFLAGS="$optarg";;
CXXFLAGS=* | --CXXFLAGS=*) CXXFLAGS="$optarg";;
LDFLAGS=* | --LDFLAGS=*) LDFLAGS="$optarg";;
CFLAGS_BUILD=* | --CFLAGS_BUILD=* | --CFLAGS-BUILD=*) CFLAGS_BUILD="$optarg";;
CXXFLAGS_BUILD=* | --CXXFLAGS_BUILD=* | --CXXFLAGS-BUILD=*) CXXFLAGS_BUILD="$optarg";;
LDFLAGS_BUILD=* | --LDFLAGS_BUILD=* | --LDFLAGS-BUILD=*) LDFLAGS_BUILD="$optarg";;
--ignore-extra-parameters) ignore_extra_parameters="1";;
@@ -1163,11 +1159,11 @@ make_compiler_cflags() {
if [ -z "$first_time_icc_check" ]; then
first_time_icc_check=no
if [ $cc_version -lt 90 ]; then
log 1 "WARNING: you seem to be using a very old version of ICC"
log 1 "WARNING: you seem to be using very old version of ICC"
log 1 "WARNING: OpenTTD hasn't been tested with this version"
sleep 5
elif [ $cc_version -lt 120 ]; then
log 1 "WARNING: you seem to be using an unsupported ICC version"
log 1 "WARNING: you seem to be using unsupported ICC version"
log 1 "WARNING: ICC older than 12.0 is known to fail to compile OpenTTD"
sleep 5
fi
@@ -1240,58 +1236,6 @@ make_compiler_cflags() {
features="$features lto"
fi
fi
elif [ `basename $1 | grep 'clang'` ]; then
# Enable some things only for certain clang versions
cc_version="`$1 -v 2>&1 | head -n 1 | sed s@[^0-9]@@g | cut -c 1-2`"
# aliasing rules are not held in openttd code
flags="$flags -fno-strict-aliasing"
# -W alone doesn't enable all warnings enabled by -Wall; on the other hand,
# -Weverything enables too many useless warnings that can't be disabled (as of 3.0)
flags="$flags -Wall -W"
# warning: unused parameter '...'
flags="$flags -Wno-unused-parameter"
# warning: expression result unused
flags="$flags -Wno-unused-value"
# warning: multi-character character constant
flags="$flags -Wno-multichar"
# warning: explicitly assigning a variable of type '...' to itself
# it happens when using the FOR_ALL_WINDOWS_FROM_BACK_FROM macro
flags="$flags -Wno-self-assign"
if [ "$cc_version" -lt "30" ]; then
# warning: equality comparison with extraneous parentheses
flags="$flags -Wno-parentheses"
# warning: operands of ? are integers of different signs: 'unsigned int' and 'int'
flags="$flags -Wno-sign-compare"
fi
if [ "$cc_version" -ge "30" ]; then
# warning: equality comparison with extraneous parentheses
# this warning could be useful, but it warns about code in squirrel
flags="$flags -Wno-parentheses-equality"
fi
if [ "$with_ccache" != "0" -o "$with_distcc" != "0" ]; then
# ccache and distcc run separate preprocess and compile passes,
# both are fed with the same CFLAGS. Unfortunately, clang
# complains about -I when compiling preprocessed files:
# "clang: warning: argument unused during compilation: '-I /usr/include'"
flags="$flags -Qunused-arguments"
fi
if [ "$enable_assert" -eq "0" ]; then
# do not warn about unused variables when building without asserts
flags="$flags -Wno-unused-variable"
fi
# rdynamic is used to get useful stack traces from crash reports.
ldflags="$ldflags -rdynamic"
else
# Enable some things only for certain GCC versions
cc_version=`$1 -dumpversion | cut -c 1,3`
@@ -1303,8 +1247,8 @@ make_compiler_cflags() {
flags="$flags -Wall -Wno-multichar -Wsign-compare -Wundef"
flags="$flags -Wwrite-strings -Wpointer-arith"
flags="$flags -W -Wno-unused-parameter -Wredundant-decls"
flags="$flags -Wformat=2 -Wformat-security"
flags="$flags -W -Wno-unused-parameter -Wformat=2"
flags="$flags -Wredundant-decls"
if [ $enable_assert -eq 0 ]; then
# Do not warn about unused variables when building without asserts
@@ -1350,12 +1294,6 @@ make_compiler_cflags() {
cxxflags="$cxxflags -std=gnu++0x"
fi
if [ $cc_version -eq 45 ]; then
# Prevent optimisation supposing enums are in a range specified by the standard
# For details, see http://gcc.gnu.org/PR43680
flags="$flags -fno-tree-vrp"
fi
if [ $cc_version -ge 47 ]; then
# Disable -Wnarrowing which gives many warnings, such as:
# warning: narrowing conversion of '...' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
@@ -1396,11 +1334,11 @@ make_compiler_cflags() {
make_cflags_and_ldflags() {
# General CFlags for BUILD
CFLAGS_BUILD="$CFLAGS_BUILD"
CFLAGS_BUILD=""
# Special CXXFlags for BUILD
CXXFLAGS_BUILD="$CXXFLAGS_BUILD"
CXXFLAGS_BUILD=""
# LDFLAGS for BUILD
LDFLAGS_BUILD="$LDFLAGS_BUILD"
LDFLAGS_BUILD=""
# FEATURES for BUILD (lto)
FEATURES_BUILD=""
# General CFlags for HOST
@@ -1434,6 +1372,12 @@ make_cflags_and_ldflags() {
# Each debug level reduces the optimization by a bit
if [ $enable_debug -ge 1 ]; then
CFLAGS="$CFLAGS -g -D_DEBUG"
if basename "$cc_host" | grep "gcc" &>/dev/null; then
# Define only when compiling with GCC, some
# GLIBC versions use GNU extensions in a way
# that breaks build with at least ICC
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
fi
if [ "$os" = "PSP" ]; then
CFLAGS="$CFLAGS -G0"
fi
@@ -1448,18 +1392,6 @@ make_cflags_and_ldflags() {
fi
fi
if [ $enable_debug -le 2 ]; then
if basename "$cc_host" | grep "gcc" &>/dev/null; then
# Define only when compiling with GCC. Some GLIBC versions use GNU
# extensions in a way that breaks build with at least ICC.
# This requires -O1 or more, so debug level 3 (-O0) is excluded.
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
# Just add -O1 to the tools needed for building.
CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1"
fi
fi
if [ "$os" = "OSX" ] && [ $cc_version -eq 40 ]; then
# Apple's GCC 4.0 has a compiler bug for x86_64 with (higher) optimization,
# wrongly optimizing ^= in loops. This disables the failing optimisation.
@@ -1494,9 +1426,6 @@ make_cflags_and_ldflags() {
if [ $cc_version -ge 44 ]; then
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++"
fi
if [ $cc_version -ge 47 ]; then
CFLAGS="$CFLAGS -mno-ms-bitfields"
fi
fi
fi
@@ -1790,7 +1719,6 @@ make_cflags_and_ldflags() {
if [ "$enable_assert" = "0" ]; then
CFLAGS="$CFLAGS -DNDEBUG"
CFLAGS_BUILD="$CFLAGS_BUILD -DNDEBUG"
fi
if [ "$enable_desync_debug" != "0" ]; then
@@ -1826,9 +1754,6 @@ make_cflags_and_ldflags() {
fi
fi
log 1 "using CFLAGS_BUILD... $CFLAGS_BUILD"
log 1 "using CXXFLAGS_BUILD... $CXXFLAGS_BUILD"
log 1 "using LDFLAGS_BUILD... $LDFLAGS_BUILD"
log 1 "using CFLAGS... $CFLAGS"
log 1 "using CXXFLAGS... $CXXFLAGS"
log 1 "using LDFLAGS... $LIBS $LDFLAGS"
@@ -2153,30 +2078,6 @@ check_makedepend() {
log 1 "checking makedepend... $makedepend"
}
check_version() {
# $1 - requested version (major.minor)
# $2 - version we got (major.minor)
if [ -z "$2" ]; then
return 0
fi
req_major=`echo $1 | cut -d. -f1`
got_major=`echo $2 | cut -d. -f1`
if [ $got_major -lt $req_major ]; then
return 0
elif [ $got_major -gt $req_major ]; then
return 1
fi
req_minor=`echo $1 | cut -d. -f2`
got_minor=`echo $2 | cut -d. -f2`
if [ $got_minor -lt $req_minor ]; then
return 0
fi
return 1
}
detect_awk() {
# Not all awks allow gsub(), so we test for that here! It is in fact all we need...
@@ -2862,14 +2763,13 @@ detect_fontconfig() {
version=`$fontconfig_config --modversion 2>/dev/null`
ret=$?
check_version '2.3' "$version"
version_ok=$?
shortversion=`echo $version | cut -c 1,3`
log 2 "executing $fontconfig_config --modversion"
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version_ok" != "1" ]; then
if [ -n "$version" ] && [ "$version_ok" != "1" ]; then
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -le "22" ]; then
if [ -n "$shortversion" ] && [ "$shortversion" -le "22" ]; then
log 1 "checking libfontconfig... needs at least version 2.3.0, fontconfig NOT enabled"
else
log 1 "checking libfontconfig... not found"
@@ -2912,14 +2812,13 @@ detect_icu() {
version=`$icu_config --version 2>/dev/null`
ret=$?
check_version '3.6' "$version"
version_ok=$?
shortversion=`echo $version | cut -c 1,3`
log 2 "executing $icu_config --version"
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version_ok" != "1" ]; then
if [ -n "$version" ] && [ "$version_ok" != "1" ]; then
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -lt "36" ]; then
if [ -n "$shortversion" ] && [ "$shortversion" -lt "36" ]; then
log 1 "checking libicu... needs at least version 3.6.0, icu NOT enabled"
else
log 1 "checking libicu... not found"
@@ -3169,9 +3068,9 @@ detect_grfcodec() {
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "913" ]; then
if [ -n "$version" ] && [ "$version" -lt "913" ]; then
log 1 "checking grfcodec... needs at least version 5.1.4 (r913), disabled"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "846" ]; then
if [ -n "$version" ] && [ "$version" -lt "846" ]; then
log 1 "checking grfcodec... needs at least version 5.1.3 (r846), disabled"
else
log 1 "checking grfcodec... not found"
fi
@@ -3211,9 +3110,9 @@ detect_nforenum() {
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "913" ]; then
if [ -n "$version" ] && [ "$version" -lt "913" ]; then
log 1 "checking nforenum... needs at least version 5.1.4 (r913), disabled"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "846" ]; then
if [ -n "$version" ] && [ "$version" -lt "846" ]; then
log 1 "checking nforenum... needs at least version 5.1.3 (r846), disabled"
else
log 1 "checking nforenum... not found"
fi

44
docs/32bpp.txt Normal file
View File

@@ -0,0 +1,44 @@
32bpp and OpenTTD
Last updated: 2007-06-13
------------------------------------------------------------------------
Table of contents
-----------------
1.0) About
2.0) The format
1.0) About
---- -----
OpenTTD has 32bpp support. This means: OpenTTD still is 8bpp, but it has the
posibility to override the graphics with 32bpp. This means that it isn't a
replacement of grf or newgrf, but simply an addition. If you want to use 32bpp
graphics of a newgrf, you do need the newgrf itself too (with 8bpp graphics).
2.0) The format
---- ----------
32bpp images are stored in PNG. They should go in:
data/sprites/<grfname>/<SpriteID>.png
For example, a grfname would be 'openttd' (without .grf, lowercase), and the
SpriteID 3, to override the 3rd sprite in openttd.grf with a 32bpp version.
The format of this PNG can be almost anything, but we advise to use RGBA
format. Alpha-channel is fully supported.
As the core of OpenTTD is 8bpp, and because you of course want company colours
in your images, you will need to add a mask for every sprite that needs colour
remapping. The name is simular as above, only you have to put a 'm' behind the
SpriteID. This image should be a 8bpp palette image, where the palette is the
OpenTTD palette. Upon load of the PNG, the mask is loaded too, and overrides
the RGB (not the Alpha) of the original PNG image, and replacing it with a
8bpp color remapped and converted to 32bpp.
Another thing that OpenTTD needs in your png, is 2 tEXt chunks: x_offs and
y_offs. This to define the x- and y-offset, of course. Use the tool we supply
to add this information. Sadly enough most graphical editors trashes those
chunks upon save, so you have to readd it every time you save your image.
Your images should be the same as the grf, in size.

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2012-06-01
Release version: 1.2.1
Last updated: 2012-01-07
Release version: 1.2.0-beta2
------------------------------------------------------------------------
@@ -413,17 +413,3 @@ Not all NewGRFs, AIs, game scripts are found [FS#4887]:
tar file is the same as other content on the file system or in another
tar file, it is possible that content is not found. A more thorough
explanation and solutions are described in section 4.4 of readme.txt.
Mouse cursor going missing with SDL [FS#4997]:
Under certain circumstances SDL does not notify OpenTTD of changes
with respect to the mouse pointer, specifically whether the mouse
pointer is within the bounds of OpenTTD or not. For example, if you
Alt-tab to another application the mouse cursor will still be shown
in OpenTTD, and when you move the mouse outside of the OpenTTD
window so the cursor gets hidden, open/move another application on
top of the OpenTTD window and then Alt-tab back into OpenTTD the
cursor will not be shown.
We cannot fix this problem as SDL simply does not provide the
required information in these corner cases. This is a bug in SDL
and as such there is little that we can do about it.

View File

@@ -8,12 +8,12 @@
//
-1 * 0 0C "Airport previews"
-1 * 0 05 16 09
-1 sprites/airport_preview.png 8bpp 50 8 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 290 8 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 530 8 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 2 168 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 242 168 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 482 168 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 2 328 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 242 328 230 140 0 0 normal
-1 sprites/airport_preview.png 8bpp 482 328 230 140 0 0 normal
-1 sprites/airport_preview.png 50 8 09 140 230 0 0
-1 sprites/airport_preview.png 290 8 09 140 230 0 0
-1 sprites/airport_preview.png 530 8 09 140 230 0 0
-1 sprites/airport_preview.png 2 168 09 140 230 0 0
-1 sprites/airport_preview.png 242 168 09 140 230 0 0
-1 sprites/airport_preview.png 482 168 09 140 230 0 0
-1 sprites/airport_preview.png 2 328 09 140 230 0 0
-1 sprites/airport_preview.png 242 328 09 140 230 0 0
-1 sprites/airport_preview.png 482 328 09 140 230 0 0

View File

@@ -8,18 +8,18 @@
//
-1 * 0 0C "Extra airport graphics"
-1 * 3 05 10 0F
-1 sprites/airports.png 8bpp 18 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 98 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 178 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 258 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 338 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 418 8 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 498 8 64 55 -2 -38 normal
-1 sprites/airports.png 8bpp 578 8 18 17 16 -1 normal
-1 sprites/airports.png 8bpp 610 8 64 55 -2 -38 normal
-1 sprites/airports.png 8bpp 690 8 18 17 -30 1 normal
-1 sprites/airports.png 8bpp 722 8 64 55 -2 -38 normal
-1 sprites/airports.png 8bpp 2 88 64 55 -2 -38 normal
-1 sprites/airports.png 8bpp 82 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 162 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 242 88 64 31 -31 0 normal
-1 sprites/airports.png 18 8 09 31 64 -31 0
-1 sprites/airports.png 98 8 09 31 64 -31 0
-1 sprites/airports.png 178 8 09 31 64 -31 0
-1 sprites/airports.png 258 8 09 31 64 -31 0
-1 sprites/airports.png 338 8 09 31 64 -31 0
-1 sprites/airports.png 418 8 09 31 64 -31 0
-1 sprites/airports.png 498 8 09 55 64 -2 -38
-1 sprites/airports.png 578 8 09 17 18 16 -1
-1 sprites/airports.png 610 8 09 55 64 -2 -38
-1 sprites/airports.png 690 8 09 17 18 -30 1
-1 sprites/airports.png 722 8 09 55 64 -2 -38
-1 sprites/airports.png 2 88 09 55 64 -2 -38
-1 sprites/airports.png 82 88 09 31 64 -31 0
-1 sprites/airports.png 162 88 09 31 64 -31 0
-1 sprites/airports.png 242 88 09 31 64 -31 0

View File

@@ -10,22 +10,22 @@
// temperate aqueduct
-1 * 6 07 83 01 \7! 00 09
-1 * 3 05 12 08
-1 sprites/aqueduct.png 8bpp 34 8 61 32 -30 -9 normal
-1 sprites/aqueduct.png 8bpp 114 8 62 31 -29 -9 normal
-1 sprites/aqueduct.png 8bpp 194 8 61 32 -30 -9 normal
-1 sprites/aqueduct.png 8bpp 274 8 62 31 -29 -9 normal
-1 sprites/aqueduct.png 8bpp 354 8 61 32 -30 -4 normal
-1 sprites/aqueduct.png 8bpp 434 8 62 31 -29 -4 normal
-1 sprites/aqueduct.png 8bpp 514 8 33 23 -31 0 normal
-1 sprites/aqueduct.png 8bpp 562 8 33 23 0 1 normal
-1 sprites/aqueduct.png 34 8 09 32 61 -30 -9
-1 sprites/aqueduct.png 114 8 09 31 62 -29 -9
-1 sprites/aqueduct.png 194 8 09 32 61 -30 -9
-1 sprites/aqueduct.png 274 8 09 31 62 -29 -9
-1 sprites/aqueduct.png 354 8 09 32 61 -30 -4
-1 sprites/aqueduct.png 434 8 09 31 62 -29 -4
-1 sprites/aqueduct.png 514 8 09 23 33 -31 0
-1 sprites/aqueduct.png 562 8 09 23 33 0 1
// non-temperate aqueduct
-1 * 6 07 83 01 \7= 00 09
-1 * 3 05 12 08
-1 sprites/aqueduct.png 8bpp 34 48 61 32 -30 -9 normal
-1 sprites/aqueduct.png 8bpp 114 48 62 31 -29 -9 normal
-1 sprites/aqueduct.png 8bpp 194 48 61 32 -30 -9 normal
-1 sprites/aqueduct.png 8bpp 274 48 62 31 -29 -9 normal
-1 sprites/aqueduct.png 8bpp 354 48 61 32 -30 -4 normal
-1 sprites/aqueduct.png 8bpp 434 48 62 31 -29 -4 normal
-1 sprites/aqueduct.png 8bpp 514 48 33 23 -31 0 normal
-1 sprites/aqueduct.png 8bpp 562 48 33 23 0 1 normal
-1 sprites/aqueduct.png 34 48 09 32 61 -30 -9
-1 sprites/aqueduct.png 114 48 09 31 62 -29 -9
-1 sprites/aqueduct.png 194 48 09 32 61 -30 -9
-1 sprites/aqueduct.png 274 48 09 31 62 -29 -9
-1 sprites/aqueduct.png 354 48 09 32 61 -30 -4
-1 sprites/aqueduct.png 434 48 09 31 62 -29 -4
-1 sprites/aqueduct.png 514 48 09 23 33 -31 0
-1 sprites/aqueduct.png 562 48 09 23 33 0 1

View File

@@ -8,58 +8,58 @@
//
-1 * 0 0C "Autorail graphics"
-1 * 3 05 13 37
-1 sprites/autorail.png 8bpp 18 8 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 98 8 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 178 8 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 258 8 64 47 -31 -9 normal
-1 sprites/autorail.png 8bpp 338 8 64 31 -31 -5 normal
-1 sprites/autorail.png 8bpp 418 8 64 23 -31 7 normal
-1 sprites/autorail.png 8bpp 498 8 64 18 -31 4 normal
-1 sprites/autorail.png 8bpp 578 8 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 658 8 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 2 72 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 82 72 64 23 -31 7 normal
-1 sprites/autorail.png 8bpp 162 72 64 18 -31 4 normal
-1 sprites/autorail.png 8bpp 242 72 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 322 72 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 402 72 64 47 -31 -9 normal
-1 sprites/autorail.png 8bpp 482 72 64 31 -31 -5 normal
-1 sprites/autorail.png 8bpp 562 72 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 642 72 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 722 72 64 47 -31 -9 normal
-1 sprites/autorail.png 8bpp 2 136 64 26 -31 4 normal
-1 sprites/autorail.png 8bpp 82 136 64 23 -31 4 normal
-1 sprites/autorail.png 8bpp 162 136 64 31 -31 -3 normal
-1 sprites/autorail.png 8bpp 242 136 64 26 -31 4 normal
-1 sprites/autorail.png 8bpp 322 136 64 23 -31 4 normal
-1 sprites/autorail.png 8bpp 402 136 64 31 -31 -3 normal
-1 sprites/autorail.png 8bpp 482 136 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 562 136 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 642 136 64 15 -31 7 normal
-1 sprites/autorail.png 8bpp 722 136 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 2 184 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 82 184 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 162 184 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 242 184 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 322 184 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 402 184 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 482 184 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 562 184 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 642 184 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 722 184 64 23 -31 7 normal
-1 sprites/autorail.png 8bpp 2 248 64 15 -31 7 normal
-1 sprites/autorail.png 8bpp 82 248 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 162 248 64 47 -31 -9 normal
-1 sprites/autorail.png 8bpp 242 248 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 322 248 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 402 248 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 482 248 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 562 248 64 23 -31 7 normal
-1 sprites/autorail.png 8bpp 642 248 64 15 -31 7 normal
-1 sprites/autorail.png 8bpp 722 248 64 39 -31 -1 normal
-1 sprites/autorail.png 8bpp 2 312 64 47 -31 -9 normal
-1 sprites/autorail.png 8bpp 82 312 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 162 312 64 31 -31 -1 normal
-1 sprites/autorail.png 8bpp 242 312 64 23 -31 7 normal
-1 sprites/autorail.png 8bpp 322 312 64 31 -31 7 normal
-1 sprites/autorail.png 8bpp 402 312 64 31 -31 7 normal
-1 sprites/autorail.png 18 8 09 31 64 -31 7
-1 sprites/autorail.png 98 8 09 31 64 -31 -1
-1 sprites/autorail.png 178 8 09 39 64 -31 -1
-1 sprites/autorail.png 258 8 09 47 64 -31 -9
-1 sprites/autorail.png 338 8 09 31 64 -31 -5
-1 sprites/autorail.png 418 8 09 23 64 -31 7
-1 sprites/autorail.png 498 8 09 18 64 -31 4
-1 sprites/autorail.png 578 8 09 31 64 -31 -1
-1 sprites/autorail.png 658 8 09 31 64 -31 7
-1 sprites/autorail.png 2 72 09 31 64 -31 -1
-1 sprites/autorail.png 82 72 09 23 64 -31 7
-1 sprites/autorail.png 162 72 09 18 64 -31 4
-1 sprites/autorail.png 242 72 09 31 64 -31 -1
-1 sprites/autorail.png 322 72 09 39 64 -31 -1
-1 sprites/autorail.png 402 72 09 47 64 -31 -9
-1 sprites/autorail.png 482 72 09 31 64 -31 -5
-1 sprites/autorail.png 562 72 09 31 64 -31 7
-1 sprites/autorail.png 642 72 09 31 64 -31 -1
-1 sprites/autorail.png 722 72 09 47 64 -31 -9
-1 sprites/autorail.png 2 136 09 26 64 -31 4
-1 sprites/autorail.png 82 136 09 23 64 -31 4
-1 sprites/autorail.png 162 136 09 31 64 -31 -3
-1 sprites/autorail.png 242 136 09 26 64 -31 4
-1 sprites/autorail.png 322 136 09 23 64 -31 4
-1 sprites/autorail.png 402 136 09 31 64 -31 -3
-1 sprites/autorail.png 482 136 09 31 64 -31 7
-1 sprites/autorail.png 562 136 09 31 64 -31 -1
-1 sprites/autorail.png 642 136 09 15 64 -31 7
-1 sprites/autorail.png 722 136 09 31 64 -31 7
-1 sprites/autorail.png 2 184 09 39 64 -31 -1
-1 sprites/autorail.png 82 184 09 31 64 -31 -1
-1 sprites/autorail.png 162 184 09 31 64 -31 7
-1 sprites/autorail.png 242 184 09 39 64 -31 -1
-1 sprites/autorail.png 322 184 09 31 64 -31 -1
-1 sprites/autorail.png 402 184 09 31 64 -31 7
-1 sprites/autorail.png 482 184 09 31 64 -31 -1
-1 sprites/autorail.png 562 184 09 31 64 -31 -1
-1 sprites/autorail.png 642 184 09 31 64 -31 -1
-1 sprites/autorail.png 722 184 09 23 64 -31 7
-1 sprites/autorail.png 2 248 09 15 64 -31 7
-1 sprites/autorail.png 82 248 09 39 64 -31 -1
-1 sprites/autorail.png 162 248 09 47 64 -31 -9
-1 sprites/autorail.png 242 248 09 31 64 -31 7
-1 sprites/autorail.png 322 248 09 31 64 -31 -1
-1 sprites/autorail.png 402 248 09 31 64 -31 -1
-1 sprites/autorail.png 482 248 09 31 64 -31 -1
-1 sprites/autorail.png 562 248 09 23 64 -31 7
-1 sprites/autorail.png 642 248 09 15 64 -31 7
-1 sprites/autorail.png 722 248 09 39 64 -31 -1
-1 sprites/autorail.png 2 312 09 47 64 -31 -9
-1 sprites/autorail.png 82 312 09 31 64 -31 -1
-1 sprites/autorail.png 162 312 09 31 64 -31 -1
-1 sprites/autorail.png 242 312 09 23 64 -31 7
-1 sprites/autorail.png 322 312 09 31 64 -31 7
-1 sprites/autorail.png 402 312 09 31 64 -31 7

View File

@@ -9,107 +9,107 @@
-1 * 0 0C "Canal graphics by George / PaulC"
-1 * 3 05 08 41
// Canal slopes
-1 sprites/canal_locks.png 8bpp 66 8 64 23 -31 0 normal
-1 sprites/canal_locks.png 8bpp 146 8 64 39 -31 -8 normal
-1 sprites/canal_locks.png 8bpp 226 8 64 23 -31 0 normal
-1 sprites/canal_locks.png 8bpp 306 8 64 39 -31 -8 normal
-1 sprites/canal_locks.png 66 8 09 23 64 -31 0
-1 sprites/canal_locks.png 146 8 09 39 64 -31 -8
-1 sprites/canal_locks.png 226 8 09 23 64 -31 0
-1 sprites/canal_locks.png 306 8 09 39 64 -31 -8
// Lock sides
-1 sprites/canal_locks.png 8bpp 386 8 40 26 -7 -12 normal
-1 sprites/canal_locks.png 8bpp 434 8 42 33 -31 -13 normal
-1 sprites/canal_locks.png 8bpp 482 8 40 25 -31 -12 normal
-1 sprites/canal_locks.png 8bpp 530 8 42 34 -9 -14 normal
-1 sprites/canal_locks.png 8bpp 578 8 32 27 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 626 8 32 35 -29 -17 normal
-1 sprites/canal_locks.png 8bpp 674 8 32 27 -29 -17 normal
-1 sprites/canal_locks.png 8bpp 722 8 32 35 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 2 72 40 44 -7 -24 normal
-1 sprites/canal_locks.png 8bpp 50 72 42 33 -31 -13 normal
-1 sprites/canal_locks.png 8bpp 98 72 40 32 -31 -12 normal
-1 sprites/canal_locks.png 8bpp 146 72 41 31 -8 -12 normal
-1 sprites/canal_locks.png 8bpp 194 72 34 32 -1 -13 normal
-1 sprites/canal_locks.png 8bpp 242 72 38 34 -35 -17 normal
-1 sprites/canal_locks.png 8bpp 290 72 34 44 -29 -26 normal
-1 sprites/canal_locks.png 8bpp 338 72 38 34 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 386 72 42 24 -9 -4 normal
-1 sprites/canal_locks.png 8bpp 434 72 43 24 -31 -4 normal
-1 sprites/canal_locks.png 8bpp 482 72 53 24 -31 -4 normal
-1 sprites/canal_locks.png 8bpp 546 72 43 37 -10 -16 normal
-1 sprites/canal_locks.png 8bpp 594 72 38 26 -1 -9 normal
-1 sprites/canal_locks.png 8bpp 642 72 34 37 -29 -18 normal
-1 sprites/canal_locks.png 8bpp 690 72 38 26 -35 -9 normal
-1 sprites/canal_locks.png 8bpp 738 72 32 23 -1 -5 normal
-1 sprites/canal_locks.png 8bpp 2 136 40 26 -7 -12 normal
-1 sprites/canal_locks.png 8bpp 50 136 42 33 -31 -13 normal
-1 sprites/canal_locks.png 8bpp 98 136 40 25 -31 -12 normal
-1 sprites/canal_locks.png 8bpp 146 136 42 34 -9 -14 normal
-1 sprites/canal_locks.png 8bpp 194 136 32 27 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 242 136 32 35 -29 -17 normal
-1 sprites/canal_locks.png 8bpp 290 136 32 27 -29 -17 normal
-1 sprites/canal_locks.png 8bpp 338 136 32 35 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 386 136 40 32 -7 -12 normal
-1 sprites/canal_locks.png 8bpp 434 136 42 33 -31 -13 normal
-1 sprites/canal_locks.png 8bpp 482 136 40 32 -31 -12 normal
-1 sprites/canal_locks.png 8bpp 530 136 41 31 -8 -12 normal
-1 sprites/canal_locks.png 8bpp 578 136 34 32 -1 -13 normal
-1 sprites/canal_locks.png 8bpp 626 136 38 34 -35 -17 normal
-1 sprites/canal_locks.png 8bpp 674 136 34 32 -29 -14 normal
-1 sprites/canal_locks.png 8bpp 722 136 38 34 -1 -17 normal
-1 sprites/canal_locks.png 8bpp 2 184 42 24 -9 -4 normal
-1 sprites/canal_locks.png 8bpp 50 184 43 24 -31 -4 normal
-1 sprites/canal_locks.png 8bpp 98 184 53 24 -31 -4 normal
-1 sprites/canal_locks.png 8bpp 162 184 43 25 -10 -4 normal
-1 sprites/canal_locks.png 8bpp 210 184 38 26 -1 -9 normal
-1 sprites/canal_locks.png 8bpp 258 184 34 25 -29 -6 normal
-1 sprites/canal_locks.png 8bpp 306 184 38 26 -35 -9 normal
-1 sprites/canal_locks.png 8bpp 354 184 32 23 -1 -5 normal
-1 sprites/canal_locks.png 386 8 09 26 40 -7 -12
-1 sprites/canal_locks.png 434 8 09 33 42 -31 -13
-1 sprites/canal_locks.png 482 8 09 25 40 -31 -12
-1 sprites/canal_locks.png 530 8 09 34 42 -9 -14
-1 sprites/canal_locks.png 578 8 09 27 32 -1 -17
-1 sprites/canal_locks.png 626 8 09 35 32 -29 -17
-1 sprites/canal_locks.png 674 8 09 27 32 -29 -17
-1 sprites/canal_locks.png 722 8 09 35 32 -1 -17
-1 sprites/canal_locks.png 2 72 09 44 40 -7 -24
-1 sprites/canal_locks.png 50 72 09 33 42 -31 -13
-1 sprites/canal_locks.png 98 72 09 32 40 -31 -12
-1 sprites/canal_locks.png 146 72 09 31 41 -8 -12
-1 sprites/canal_locks.png 194 72 09 32 34 -1 -13
-1 sprites/canal_locks.png 242 72 09 34 38 -35 -17
-1 sprites/canal_locks.png 290 72 09 44 34 -29 -26
-1 sprites/canal_locks.png 338 72 09 34 38 -1 -17
-1 sprites/canal_locks.png 386 72 09 24 42 -9 -4
-1 sprites/canal_locks.png 434 72 09 24 43 -31 -4
-1 sprites/canal_locks.png 482 72 09 24 53 -31 -4
-1 sprites/canal_locks.png 546 72 09 37 43 -10 -16
-1 sprites/canal_locks.png 594 72 09 26 38 -1 -9
-1 sprites/canal_locks.png 642 72 09 37 34 -29 -18
-1 sprites/canal_locks.png 690 72 09 26 38 -35 -9
-1 sprites/canal_locks.png 738 72 09 23 32 -1 -5
-1 sprites/canal_locks.png 2 136 09 26 40 -7 -12
-1 sprites/canal_locks.png 50 136 09 33 42 -31 -13
-1 sprites/canal_locks.png 98 136 09 25 40 -31 -12
-1 sprites/canal_locks.png 146 136 09 34 42 -9 -14
-1 sprites/canal_locks.png 194 136 09 27 32 -1 -17
-1 sprites/canal_locks.png 242 136 09 35 32 -29 -17
-1 sprites/canal_locks.png 290 136 09 27 32 -29 -17
-1 sprites/canal_locks.png 338 136 09 35 32 -1 -17
-1 sprites/canal_locks.png 386 136 09 32 40 -7 -12
-1 sprites/canal_locks.png 434 136 09 33 42 -31 -13
-1 sprites/canal_locks.png 482 136 09 32 40 -31 -12
-1 sprites/canal_locks.png 530 136 09 31 41 -8 -12
-1 sprites/canal_locks.png 578 136 09 32 34 -1 -13
-1 sprites/canal_locks.png 626 136 09 34 38 -35 -17
-1 sprites/canal_locks.png 674 136 09 32 34 -29 -14
-1 sprites/canal_locks.png 722 136 09 34 38 -1 -17
-1 sprites/canal_locks.png 2 184 09 24 42 -9 -4
-1 sprites/canal_locks.png 50 184 09 24 43 -31 -4
-1 sprites/canal_locks.png 98 184 09 24 53 -31 -4
-1 sprites/canal_locks.png 162 184 09 25 43 -10 -4
-1 sprites/canal_locks.png 210 184 09 26 38 -1 -9
-1 sprites/canal_locks.png 258 184 09 25 34 -29 -6
-1 sprites/canal_locks.png 306 184 09 26 38 -35 -9
-1 sprites/canal_locks.png 354 184 09 23 32 -1 -5
// Canal edges (temperate)
-1 sprites/canals.png 8bpp 30 10 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 10 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 10 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 10 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 10 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 10 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 10 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 10 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 10 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 10 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 10 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 10 24 16 -11 -6 normal
-1 sprites/canals.png 30 10 09 22 45 -11 -1
-1 sprites/canals.png 94 10 09 21 41 -8 10
-1 sprites/canals.png 142 10 09 21 42 -31 10
-1 sprites/canals.png 190 10 09 22 43 -31 -1
-1 sprites/canals.png 238 10 09 22 22 11 4
-1 sprites/canals.png 270 10 09 16 24 -11 15
-1 sprites/canals.png 302 10 09 23 23 -31 4
-1 sprites/canals.png 334 10 09 18 24 -11 -1
-1 sprites/canals.png 366 10 09 11 12 21 10
-1 sprites/canals.png 398 10 09 10 19 -8 21
-1 sprites/canals.png 430 10 09 10 11 -31 10
-1 sprites/canals.png 446 10 09 16 24 -11 -6
// Canal icon
-1 sprites/canal_locks.png 8bpp 50 232 20 20 0 0 normal
-1 sprites/canal_locks.png 50 232 09 20 20 0 0
// Differentiation for the climates starts here
// Canal edges (arctic snowy)
-1 * 4 01 05 01 \b12
-1 sprites/canals.png 8bpp 30 40 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 40 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 40 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 40 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 40 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 40 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 40 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 40 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 40 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 40 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 40 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 40 24 16 -11 -6 normal
-1 sprites/canals.png 30 40 09 22 45 -11 -1
-1 sprites/canals.png 94 40 09 21 41 -8 10
-1 sprites/canals.png 142 40 09 21 42 -31 10
-1 sprites/canals.png 190 40 09 22 43 -31 -1
-1 sprites/canals.png 238 40 09 22 22 11 4
-1 sprites/canals.png 270 40 09 16 24 -11 15
-1 sprites/canals.png 302 40 09 23 23 -31 4
-1 sprites/canals.png 334 40 09 18 24 -11 -1
-1 sprites/canals.png 366 40 09 11 12 21 10
-1 sprites/canals.png 398 40 09 10 19 -8 21
-1 sprites/canals.png 430 40 09 10 11 -31 10
-1 sprites/canals.png 446 40 09 16 24 -11 -6
-1 * 7 02 05 10 01 00 00 00
// Canal edges (arctic normal)
-1 * 4 01 05 01 \b12
-1 sprites/canals.png 8bpp 30 70 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 70 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 70 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 70 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 70 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 70 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 70 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 70 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 70 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 70 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 70 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 70 24 16 -11 -6 normal
-1 sprites/canals.png 30 70 09 22 45 -11 -1
-1 sprites/canals.png 94 70 09 21 41 -8 10
-1 sprites/canals.png 142 70 09 21 42 -31 10
-1 sprites/canals.png 190 70 09 22 43 -31 -1
-1 sprites/canals.png 238 70 09 22 22 11 4
-1 sprites/canals.png 270 70 09 16 24 -11 15
-1 sprites/canals.png 302 70 09 23 23 -31 4
-1 sprites/canals.png 334 70 09 18 24 -11 -1
-1 sprites/canals.png 366 70 09 11 12 21 10
-1 sprites/canals.png 398 70 09 10 19 -8 21
-1 sprites/canals.png 430 70 09 10 11 -31 10
-1 sprites/canals.png 446 70 09 16 24 -11 -6
-1 * 7 02 05 11 01 00 00 00
// Choose the right arctic canal edges
-1 * 14 02 05 12 81 81 00 FF 01 10 00 04 04 11 00
@@ -118,34 +118,34 @@
// Canal edges (tropic desert)
-1 * 4 01 05 01 \b12
-1 sprites/canals.png 8bpp 30 100 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 100 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 100 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 100 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 100 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 100 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 100 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 100 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 100 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 100 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 100 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 100 24 16 -11 -6 normal
-1 sprites/canals.png 30 100 09 22 45 -11 -1
-1 sprites/canals.png 94 100 09 21 41 -8 10
-1 sprites/canals.png 142 100 09 21 42 -31 10
-1 sprites/canals.png 190 100 09 22 43 -31 -1
-1 sprites/canals.png 238 100 09 22 22 11 4
-1 sprites/canals.png 270 100 09 16 24 -11 15
-1 sprites/canals.png 302 100 09 23 23 -31 4
-1 sprites/canals.png 334 100 09 18 24 -11 -1
-1 sprites/canals.png 366 100 09 11 12 21 10
-1 sprites/canals.png 398 100 09 10 19 -8 21
-1 sprites/canals.png 430 100 09 10 11 -31 10
-1 sprites/canals.png 446 100 09 16 24 -11 -6
-1 * 7 02 05 13 01 00 00 00
// Canal edges (tropic rainforest)
-1 * 4 01 05 01 \b12
-1 sprites/canals.png 8bpp 30 130 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 130 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 130 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 130 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 130 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 130 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 130 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 130 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 130 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 130 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 130 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 130 24 16 -11 -6 normal
-1 sprites/canals.png 30 130 09 22 45 -11 -1
-1 sprites/canals.png 94 130 09 21 41 -8 10
-1 sprites/canals.png 142 130 09 21 42 -31 10
-1 sprites/canals.png 190 130 09 22 43 -31 -1
-1 sprites/canals.png 238 130 09 22 22 11 4
-1 sprites/canals.png 270 130 09 16 24 -11 15
-1 sprites/canals.png 302 130 09 23 23 -31 4
-1 sprites/canals.png 334 130 09 18 24 -11 -1
-1 sprites/canals.png 366 130 09 11 12 21 10
-1 sprites/canals.png 398 130 09 10 19 -8 21
-1 sprites/canals.png 430 130 09 10 11 -31 10
-1 sprites/canals.png 446 130 09 16 24 -11 -6
-1 * 7 02 05 14 01 00 00 00
// Choose the right tropic canal edges
-1 * 14 02 05 15 81 81 00 FF 01 13 00 01 01 14 00
@@ -154,18 +154,18 @@
// Canal edges (toyland)
-1 * 4 01 05 01 \b12
-1 sprites/canals.png 8bpp 30 160 45 22 -11 -1 normal
-1 sprites/canals.png 8bpp 94 160 41 21 -8 10 normal
-1 sprites/canals.png 8bpp 142 160 42 21 -31 10 normal
-1 sprites/canals.png 8bpp 190 160 43 22 -31 -1 normal
-1 sprites/canals.png 8bpp 238 160 22 22 11 4 normal
-1 sprites/canals.png 8bpp 270 160 24 16 -11 15 normal
-1 sprites/canals.png 8bpp 302 160 23 23 -31 4 normal
-1 sprites/canals.png 8bpp 334 160 24 18 -11 -1 normal
-1 sprites/canals.png 8bpp 366 160 12 11 21 10 normal
-1 sprites/canals.png 8bpp 398 160 19 10 -8 21 normal
-1 sprites/canals.png 8bpp 430 160 11 10 -31 10 normal
-1 sprites/canals.png 8bpp 446 160 24 16 -11 -6 normal
-1 sprites/canals.png 30 160 09 22 45 -11 -1
-1 sprites/canals.png 94 160 09 21 41 -8 10
-1 sprites/canals.png 142 160 09 21 42 -31 10
-1 sprites/canals.png 190 160 09 22 43 -31 -1
-1 sprites/canals.png 238 160 09 22 22 11 4
-1 sprites/canals.png 270 160 09 16 24 -11 15
-1 sprites/canals.png 302 160 09 23 23 -31 4
-1 sprites/canals.png 334 160 09 18 24 -11 -1
-1 sprites/canals.png 366 160 09 11 12 21 10
-1 sprites/canals.png 398 160 09 10 19 -8 21
-1 sprites/canals.png 430 160 09 10 11 -31 10
-1 sprites/canals.png 446 160 09 16 24 -11 -6
-1 * 7 02 05 16 01 00 00 00
-1 * 6 07 83 01 \7! 03 01
-1 * 7 03 05 01 02 00 16 00

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -8,51 +8,51 @@
//
-1 * 0 0C "Electrified rail by Michael Blunck"
-1 * 3 05 05 30
-1 sprites/elrails.png 8bpp 66 8 32 16 -29 -2 normal
-1 sprites/elrails.png 8bpp 114 8 32 16 -1 -2 normal
-1 sprites/elrails.png 8bpp 162 8 32 1 -1 -2 normal
-1 sprites/elrails.png 8bpp 210 8 1 16 0 -3 normal
-1 sprites/elrails.png 8bpp 226 8 32 24 -29 -2 normal
-1 sprites/elrails.png 8bpp 274 8 32 9 -1 6 normal
-1 sprites/elrails.png 8bpp 322 8 32 9 -29 6 normal
-1 sprites/elrails.png 8bpp 370 8 32 24 -1 -2 normal
-1 sprites/elrails.png 8bpp 418 8 32 16 -29 -2 normal
-1 sprites/elrails.png 8bpp 466 8 32 16 -1 -2 normal
-1 sprites/elrails.png 8bpp 514 8 32 1 -1 -2 normal
-1 sprites/elrails.png 8bpp 562 8 1 16 0 -3 normal
-1 sprites/elrails.png 8bpp 578 8 32 24 -29 -2 normal
-1 sprites/elrails.png 8bpp 626 8 32 9 -1 6 normal
-1 sprites/elrails.png 8bpp 674 8 32 9 -29 6 normal
-1 sprites/elrails.png 8bpp 722 8 32 24 -1 -2 normal
-1 sprites/elrails.png 8bpp 2 56 32 16 -29 -2 normal
-1 sprites/elrails.png 8bpp 50 56 32 16 -1 -2 normal
-1 sprites/elrails.png 8bpp 98 56 32 1 -1 -2 normal
-1 sprites/elrails.png 8bpp 146 56 1 16 0 -3 normal
-1 sprites/elrails.png 8bpp 162 56 32 24 -29 -2 normal
-1 sprites/elrails.png 8bpp 210 56 32 9 -1 6 normal
-1 sprites/elrails.png 8bpp 258 56 32 9 -29 6 normal
-1 sprites/elrails.png 8bpp 306 56 32 24 -1 -2 normal
-1 sprites/elrails.png 8bpp 354 56 16 8 -29 6 normal
-1 sprites/elrails.png 8bpp 386 56 16 8 -1 -2 normal
-1 sprites/elrails.png 8bpp 418 56 16 8 -13 -2 normal
-1 sprites/elrails.png 8bpp 450 56 16 8 15 6 normal
-1 sprites/elrails.png 8bpp 482 56 8 16 -7 -14 normal
-1 sprites/elrails.png 8bpp 498 56 8 18 0 -17 normal
-1 sprites/elrails.png 8bpp 514 56 8 16 0 -14 normal
-1 sprites/elrails.png 8bpp 530 56 8 18 -7 -17 normal
-1 sprites/elrails.png 8bpp 546 56 2 16 0 -15 normal
-1 sprites/elrails.png 8bpp 562 56 2 18 0 -16 normal
-1 sprites/elrails.png 8bpp 578 56 8 16 0 -15 normal
-1 sprites/elrails.png 8bpp 594 56 8 16 -7 -15 normal
-1 sprites/elrails.png 8bpp 610 56 13 16 4 2 normal
-1 sprites/elrails.png 8bpp 642 56 20 16 0 2 normal
-1 sprites/elrails.png 8bpp 674 56 20 16 0 2 normal
-1 sprites/elrails.png 8bpp 706 56 20 16 0 2 normal
-1 sprites/elrails.png 8bpp 738 56 38 30 -3 -14 normal
-1 sprites/elrails.png 8bpp 2 104 72 44 -16 -8 normal
-1 sprites/elrails.png 8bpp 82 104 44 35 -21 -2 normal
-1 sprites/elrails.png 8bpp 146 104 72 44 -16 -35 normal
-1 sprites/elrails.png 8bpp 226 104 20 19 0 1 normal
-1 sprites/elrails.png 8bpp 258 104 32 32 0 0 normal
-1 sprites/elrails.png 8bpp 306 104 12 22 -9 -18 normal
-1 sprites/elrails.png 8bpp 338 104 12 22 -1 -18 normal
-1 sprites/elrails.png 66 8 01 16 32 -29 -2
-1 sprites/elrails.png 114 8 01 16 32 -1 -2
-1 sprites/elrails.png 162 8 01 1 32 -1 -2
-1 sprites/elrails.png 210 8 01 16 1 0 -3
-1 sprites/elrails.png 226 8 01 24 32 -29 -2
-1 sprites/elrails.png 274 8 01 9 32 -1 6
-1 sprites/elrails.png 322 8 01 9 32 -29 6
-1 sprites/elrails.png 370 8 01 24 32 -1 -2
-1 sprites/elrails.png 418 8 01 16 32 -29 -2
-1 sprites/elrails.png 466 8 01 16 32 -1 -2
-1 sprites/elrails.png 514 8 01 1 32 -1 -2
-1 sprites/elrails.png 562 8 01 16 1 0 -3
-1 sprites/elrails.png 578 8 01 24 32 -29 -2
-1 sprites/elrails.png 626 8 01 9 32 -1 6
-1 sprites/elrails.png 674 8 01 9 32 -29 6
-1 sprites/elrails.png 722 8 01 24 32 -1 -2
-1 sprites/elrails.png 2 56 01 16 32 -29 -2
-1 sprites/elrails.png 50 56 01 16 32 -1 -2
-1 sprites/elrails.png 98 56 01 1 32 -1 -2
-1 sprites/elrails.png 146 56 01 16 1 0 -3
-1 sprites/elrails.png 162 56 01 24 32 -29 -2
-1 sprites/elrails.png 210 56 01 9 32 -1 6
-1 sprites/elrails.png 258 56 01 9 32 -29 6
-1 sprites/elrails.png 306 56 01 24 32 -1 -2
-1 sprites/elrails.png 354 56 01 8 16 -29 6
-1 sprites/elrails.png 386 56 01 8 16 -1 -2
-1 sprites/elrails.png 418 56 01 8 16 -13 -2
-1 sprites/elrails.png 450 56 01 8 16 15 6
-1 sprites/elrails.png 482 56 01 16 8 -7 -14
-1 sprites/elrails.png 498 56 01 18 8 0 -17
-1 sprites/elrails.png 514 56 01 16 8 0 -14
-1 sprites/elrails.png 530 56 01 18 8 -7 -17
-1 sprites/elrails.png 546 56 01 16 2 0 -15
-1 sprites/elrails.png 562 56 01 18 2 0 -16
-1 sprites/elrails.png 578 56 01 16 8 0 -15
-1 sprites/elrails.png 594 56 01 16 8 -7 -15
-1 sprites/elrails.png 610 56 09 16 13 4 2
-1 sprites/elrails.png 642 56 09 16 20 0 2
-1 sprites/elrails.png 674 56 09 16 20 0 2
-1 sprites/elrails.png 706 56 09 16 20 0 2
-1 sprites/elrails.png 738 56 03 30 38 -3 -14
-1 sprites/elrails.png 2 104 03 44 72 -16 -8
-1 sprites/elrails.png 82 104 03 35 44 -21 -2
-1 sprites/elrails.png 146 104 03 44 72 -16 -35
-1 sprites/elrails.png 226 104 09 19 20 0 1
-1 sprites/elrails.png 258 104 03 32 32 0 0
-1 sprites/elrails.png 306 104 01 22 12 -9 -18
-1 sprites/elrails.png 338 104 01 22 12 -1 -18

View File

@@ -12,194 +12,194 @@
-1 * 6 07 83 01 \7= 03 3D
// Fix missing wheels on the wood trucks
-1 * 14 0A 04 01 87 0C 01 89 0C 01 07 0E 01 09 0E
-1 sprites/fix_graphics.png 8bpp 82 8 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 114 8 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 146 8 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 178 8 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 82 8 09 16 22 -6 -7
-1 sprites/fix_graphics.png 114 8 09 16 22 -14 -7
-1 sprites/fix_graphics.png 146 8 09 16 22 -6 -7
-1 sprites/fix_graphics.png 178 8 09 16 22 -14 -7
// Show correct graphics for various 3rd generation trucks
-1 * 5 0A 01 28 C4 0D
-1 sprites/fix_graphics.png 8bpp 226 8 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 242 8 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 274 8 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 322 8 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 354 8 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 370 8 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 402 8 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 450 8 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 482 8 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 498 8 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 530 8 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 578 8 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 610 8 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 626 8 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 658 8 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 706 8 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 738 8 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 754 8 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 2 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 50 40 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 82 40 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 98 40 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 130 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 178 40 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 210 40 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 226 40 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 258 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 306 40 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 338 40 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 354 40 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 386 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 434 40 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 466 40 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 482 40 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 514 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 562 40 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 594 40 8 18 -3 -10 normal
-1 sprites/fix_graphics.png 8bpp 610 40 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 642 40 28 12 -14 -6 normal
-1 sprites/fix_graphics.png 8bpp 690 40 20 16 -6 -7 normal
-1 sprites/fix_graphics.png 226 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 242 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 274 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 322 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 354 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 370 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 402 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 450 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 482 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 498 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 530 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 578 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 610 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 626 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 658 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 706 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 738 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 754 8 09 16 22 -14 -7
-1 sprites/fix_graphics.png 2 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 50 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 82 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 98 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 130 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 178 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 210 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 226 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 258 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 306 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 338 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 354 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 386 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 434 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 466 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 482 40 09 16 20 -14 -7
-1 sprites/fix_graphics.png 514 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 562 40 09 16 20 -6 -7
-1 sprites/fix_graphics.png 594 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 610 40 09 16 20 -14 -7
-1 sprites/fix_graphics.png 642 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 690 40 09 16 20 -6 -7
// Fix clipping on the 2nd generation paper truck
-1 * 14 0A 04 01 9D 0C 01 9F 0C 01 A1 0C 01 A3 0C
-1 sprites/fix_graphics.png 8bpp 738 40 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 770 40 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 2 72 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 34 72 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 738 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 770 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 2 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 34 72 09 16 22 -6 -7
// Fix clipping on the 1st generation paper truck
-1 * 14 0A 04 01 5D 0D 01 5F 0D 01 61 0D 01 63 0D
-1 sprites/fix_graphics.png 8bpp 82 72 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 114 72 22 17 -5 -7 normal
-1 sprites/fix_graphics.png 8bpp 146 72 22 17 -14 -8 normal
-1 sprites/fix_graphics.png 8bpp 178 72 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 82 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 114 72 09 17 22 -5 -7
-1 sprites/fix_graphics.png 146 72 09 17 22 -14 -8
-1 sprites/fix_graphics.png 178 72 09 16 22 -6 -7
// Fix clipping on the 3rd generation paper truck
-1 * 14 0A 04 01 1D 0E 01 1F 0E 01 21 0E 01 23 0E
-1 sprites/fix_graphics.png 8bpp 226 72 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 258 72 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 8bpp 290 72 22 16 -14 -7 normal
-1 sprites/fix_graphics.png 8bpp 322 72 22 16 -6 -7 normal
-1 sprites/fix_graphics.png 226 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 258 72 09 16 22 -6 -7
-1 sprites/fix_graphics.png 290 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 322 72 09 16 22 -6 -7
// Fix clipping on the toyland toy van in the German DOS graphics
-1 * 6 07 83 01 \7! 03 02
-1 * 5 0A 01 01 5D 0C
-1 sprites/fix_graphics.png 8bpp 18 296 20 16 -14 -7 normal
-1 sprites/fix_graphics.png 18 296 09 16 20 -14 -7
// Non-toyland specific
-1 * 6 07 83 01 \7= 03 08
// Fix offsets for the monorail bridge heads
-1 * 8 0A 02 01 EA 10 02 EC 10
-1 sprites/fix_graphics.png 8bpp 370 72 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 434 72 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 498 72 49 21 -24 3 normal
-1 sprites/fix_graphics.png 370 72 09 35 48 -23 -7
-1 sprites/fix_graphics.png 434 72 09 35 48 -23 -7
-1 sprites/fix_graphics.png 498 72 09 21 49 -24 3
// Fix offsets for the maglev bridge heads
-1 * 8 0A 02 01 12 11 02 14 11
-1 sprites/fix_graphics.png 8bpp 322 486 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 386 486 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 450 486 49 21 -24 3 normal
-1 sprites/fix_graphics.png 322 486 09 35 48 -23 -7
-1 sprites/fix_graphics.png 386 486 09 35 48 -23 -7
-1 sprites/fix_graphics.png 450 486 09 21 49 -24 3
// Toyland specific
-1 * 6 07 83 01 \7! 03 0F
// Fix offsets for the toyland monorail bridge heads
-1 * 8 0A 02 01 EA 10 02 EC 10
-1 sprites/fix_graphics.png 8bpp 610 630 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 674 630 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 738 630 49 21 -24 3 normal
-1 sprites/fix_graphics.png 610 630 09 35 48 -23 -7
-1 sprites/fix_graphics.png 674 630 09 35 48 -23 -7
-1 sprites/fix_graphics.png 738 630 09 21 49 -24 3
// Fix offsets for the toyland maglev bridge heads
-1 * 8 0A 02 01 12 11 02 14 11
-1 sprites/fix_graphics.png 8bpp 18 678 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 82 678 48 35 -23 -7 normal
-1 sprites/fix_graphics.png 8bpp 146 678 49 21 -24 3 normal
-1 sprites/fix_graphics.png 18 678 09 35 48 -23 -7
-1 sprites/fix_graphics.png 82 678 09 35 48 -23 -7
-1 sprites/fix_graphics.png 146 678 09 21 49 -24 3
// Fix colours for toyland maglev junction overlays
-1 * 5 0A 01 06 91 04
-1 sprites/fix_graphics.png 8bpp 338 630 30 16 -14 8 normal
-1 sprites/fix_graphics.png 8bpp 386 630 30 16 -14 8 normal
-1 sprites/fix_graphics.png 8bpp 434 630 40 7 -19 4 normal
-1 sprites/fix_graphics.png 8bpp 482 630 40 7 -19 20 normal
-1 sprites/fix_graphics.png 8bpp 530 630 12 19 11 6 normal
-1 sprites/fix_graphics.png 8bpp 562 630 12 19 -21 6 normal
-1 sprites/fix_graphics.png 338 630 09 16 30 -14 8
-1 sprites/fix_graphics.png 386 630 09 16 30 -14 8
-1 sprites/fix_graphics.png 434 630 01 7 40 -19 4
-1 sprites/fix_graphics.png 482 630 01 7 40 -19 20
-1 sprites/fix_graphics.png 530 630 01 19 12 11 6
-1 sprites/fix_graphics.png 562 630 01 19 12 -21 6
// Fix transparency of cinema
-1 * 5 0A 01 02 34 11
-1 sprites/fix_graphics.png 8bpp 578 72 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 658 72 50 47 -28 -20 normal
-1 sprites/fix_graphics.png 578 72 09 31 64 -31 0
-1 sprites/fix_graphics.png 658 72 09 47 50 -28 -20
// Fix misaligned undergrounds for temperate monorail
-1 * 6 07 83 01 \7! 00 06
-1 * 5 0A 01 05 4C 04
-1 sprites/fix_graphics.png 8bpp 2 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 162 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 322 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 2 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 136 09 31 64 -31 0
// Fix misaligned undergrounds for arctic monorail
-1 * 6 07 83 01 \7! 01 06
-1 * 5 0A 01 05 4C 04
-1 sprites/fix_graphics.png 8bpp 434 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 514 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 594 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 674 136 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 434 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 184 09 31 64 -31 0
// Fix misaligned undergrounds for tropical/desert monorail/maglev
-1 * 6 07 83 01 \7! 02 10
-1 * 11 0A 03 05 4C 04 05 66 04 05 B8 04
-1 sprites/fix_graphics.png 8bpp 114 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 194 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 274 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 354 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 434 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 514 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 594 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 674 184 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 162 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 322 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 402 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 482 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 114 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 194 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 274 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 354 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 434 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 232 09 31 64 -31 0
// Fix misaligned X crossing for snow-covered monorail
-1 * 6 07 83 01 \7! 01 02
-1 * 5 0A 01 01 65 04
-1 sprites/fix_graphics.png 8bpp 594 232 64 31 -31 0 normal
-1 sprites/fix_graphics.png 594 232 09 31 64 -31 0
// Fix offsets for the tropical house
-1 * 5 0A 01 01 FF 11
-1 sprites/fix_graphics.png 8bpp 706 232 64 47 -31 -16 normal
-1 sprites/fix_graphics.png 706 232 09 47 64 -31 -16
// Graphics metadata pixel higher than actual graphics
-1 * 6 12 01 00 01 AC E2
-1 sprites/fix_graphics.png 8bpp 66 296 9 10 0 0 normal
-1 sprites/fix_graphics.png 66 296 01 10 9 0 0
// Non-toyland specific
-1 * 6 07 83 01 \7= 03 0A
// Fix offsets for the tubular bridge pillars
-1 * 5 0A 01 04 05 0A
-1 sprites/fix_graphics.png 8bpp 98 296 4 9 2 -1 normal
-1 sprites/fix_graphics.png 8bpp 114 296 4 9 2 -1 normal
-1 sprites/fix_graphics.png 8bpp 130 296 4 9 -4 0 normal
-1 sprites/fix_graphics.png 8bpp 146 296 4 9 -4 0 normal
-1 sprites/fix_graphics.png 98 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 114 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 130 296 09 9 4 -4 0
-1 sprites/fix_graphics.png 146 296 09 9 4 -4 0
// Fix offsets for the cantilever bridge pillars
-1 * 5 0A 01 04 DD 09
-1 sprites/fix_graphics.png 8bpp 178 296 10 11 2 -3 normal
-1 sprites/fix_graphics.png 8bpp 194 296 10 12 2 -2 normal
-1 sprites/fix_graphics.png 8bpp 210 296 10 11 -10 -1 normal
-1 sprites/fix_graphics.png 8bpp 226 296 10 11 -10 -1 normal
-1 sprites/fix_graphics.png 178 296 09 11 10 2 -3
-1 sprites/fix_graphics.png 194 296 09 12 10 2 -2
-1 sprites/fix_graphics.png 210 296 09 11 10 -10 -1
-1 sprites/fix_graphics.png 226 296 09 11 10 -10 -1
// Toyland specific
-1 * 6 07 83 01 \7! 03 0A
// Fix offsets for the toyland tubular bridge pillars
-1 * 5 0A 01 04 05 0A
-1 sprites/fix_graphics.png 8bpp 248 296 4 9 2 -1 normal
-1 sprites/fix_graphics.png 8bpp 264 296 4 9 2 -1 normal
-1 sprites/fix_graphics.png 8bpp 280 296 4 9 -4 0 normal
-1 sprites/fix_graphics.png 8bpp 296 296 4 9 -4 0 normal
-1 sprites/fix_graphics.png 248 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 264 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 280 296 09 9 4 -4 0
-1 sprites/fix_graphics.png 296 296 09 9 4 -4 0
// Fix offsets for the toyland cantilever bridge pillars
-1 * 5 0A 01 04 DD 09
-1 sprites/fix_graphics.png 8bpp 328 296 10 11 2 -3 normal
-1 sprites/fix_graphics.png 8bpp 344 296 10 12 2 -2 normal
-1 sprites/fix_graphics.png 8bpp 360 296 10 11 -10 -1 normal
-1 sprites/fix_graphics.png 8bpp 376 296 10 11 -10 -1 normal
-1 sprites/fix_graphics.png 328 296 09 11 10 2 -3
-1 sprites/fix_graphics.png 344 296 09 12 10 2 -2
-1 sprites/fix_graphics.png 360 296 09 11 10 -10 -1
-1 sprites/fix_graphics.png 376 296 09 11 10 -10 -1
// Wrong, non-translated colours in tubular bridge in 'normal' climates
// Toyland has separate sprites which are not colour translated, thus
@@ -208,169 +208,169 @@
-1 * 6 07 83 01 \7= 03 \b22
// Main tubular bridge sprites
-1 * 5 0A 01 \b6 \w2559
-1 sprites/fix_graphics.png 8bpp 2 330 32 40 -30 -26 normal
-1 sprites/fix_graphics.png 8bpp 52 330 44 50 -42 -26 normal
-1 sprites/fix_graphics.png 8bpp 116 330 46 45 -42 -21 normal
-1 sprites/fix_graphics.png 8bpp 180 330 46 45 -2 -20 normal
-1 sprites/fix_graphics.png 8bpp 244 330 44 50 0 -25 normal
-1 sprites/fix_graphics.png 8bpp 308 330 32 41 0 -25 normal
-1 sprites/fix_graphics.png 2 330 09 40 32 -30 -26
-1 sprites/fix_graphics.png 52 330 09 50 44 -42 -26
-1 sprites/fix_graphics.png 116 330 09 45 46 -42 -21
-1 sprites/fix_graphics.png 180 330 09 45 46 -2 -20
-1 sprites/fix_graphics.png 244 330 09 50 44 0 -25
-1 sprites/fix_graphics.png 308 330 09 41 32 0 -25
// start rail bridge
-1 * 5 0A 01 01 \w2569
-1 sprites/fix_graphics.png 8bpp 350 330 52 29 -25 -4 normal
-1 sprites/fix_graphics.png 350 330 09 29 52 -25 -4
// start rail + road bridge
-1 * 5 0A 01 02 \w2574
-1 sprites/fix_graphics.png 8bpp 420 330 50 29 -25 -4 normal
-1 sprites/fix_graphics.png 8bpp 489 330 52 29 -25 -4 normal
-1 sprites/fix_graphics.png 420 330 09 29 50 -25 -4
-1 sprites/fix_graphics.png 489 330 09 29 52 -25 -4
// start road + monorail bridge
-1 * 5 0A 01 02 \w2580
-1 sprites/fix_graphics.png 8bpp 559 330 50 29 -25 -4 normal
-1 sprites/fix_graphics.png 8bpp 629 330 52 29 -25 -4 normal
-1 sprites/fix_graphics.png 559 330 09 29 50 -25 -4
-1 sprites/fix_graphics.png 629 330 09 29 52 -25 -4
// start monrail + maglev bridge
-1 * 5 0A 01 02 \w2586
-1 sprites/fix_graphics.png 8bpp 699 330 50 29 -25 -4 normal
-1 sprites/fix_graphics.png 8bpp 489 283 52 29 -25 -4 normal
-1 sprites/fix_graphics.png 699 330 09 29 50 -25 -4
-1 sprites/fix_graphics.png 489 283 09 29 52 -25 -4
// start maglev bridge
-1 * 5 0A 01 01 \w2592
-1 sprites/fix_graphics.png 8bpp 559 283 50 29 -25 -4 normal
-1 sprites/fix_graphics.png 559 283 09 29 50 -25 -4
// GUI sprite
-1 * 5 0A 01 01 \w2600
-1 sprites/fix_graphics.png 8bpp 433 298 40 15 0 5 normal
-1 sprites/fix_graphics.png 433 298 09 15 40 0 5
// Remove road markings from tropical rail crossings
-1 * 6 07 83 01 \7! 02 19
-1 * 14 0A 04 04 5A 05 08 62 05 08 6E 05 04 7A 05
-1 sprites/fix_graphics.png 8bpp 2 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 162 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 322 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 402 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 482 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 562 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 642 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 722 390 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 162 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 322 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 402 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 482 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 562 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 642 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 722 438 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 486 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 486 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 162 486 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 486 64 31 -31 0 normal
-1 sprites/fix_graphics.png 2 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 562 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 642 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 722 390 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 562 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 642 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 722 438 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 486 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 486 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 486 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 486 09 31 64 -31 0
// Fix transparency of steel mill
-1 * 5 0A 01 06 46 08
-1 sprites/fix_graphics.png 8bpp 162 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 870 64 51 -31 -21 normal
-1 sprites/fix_graphics.png 8bpp 322 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 402 870 49 58 -29 -29 normal
-1 sprites/fix_graphics.png 8bpp 466 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 546 870 45 42 -18 -12 normal
-1 sprites/fix_graphics.png 162 870 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 870 09 51 64 -31 -21
-1 sprites/fix_graphics.png 322 870 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 870 09 58 49 -29 -29
-1 sprites/fix_graphics.png 466 870 09 31 64 -31 0
-1 sprites/fix_graphics.png 546 870 09 42 45 -18 -12
-1 * 5 0A 01 0A 4D 08
-1 sprites/fix_graphics.png 8bpp 610 486 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 690 486 59 61 -31 -33 normal
-1 sprites/fix_graphics.png 8bpp 2 566 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 566 51 50 -25 -21 normal
-1 sprites/fix_graphics.png 8bpp 606 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 686 870 64 46 -31 -16 normal
-1 sprites/fix_graphics.png 8bpp 2 945 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 945 50 51 -29 -21 normal
-1 sprites/fix_graphics.png 8bpp 146 945 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 226 945 47 42 -18 -12 normal
-1 sprites/fix_graphics.png 610 486 09 31 64 -31 0
-1 sprites/fix_graphics.png 690 486 09 61 59 -31 -33
-1 sprites/fix_graphics.png 2 566 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 566 09 50 51 -25 -21
-1 sprites/fix_graphics.png 606 870 09 31 64 -31 0
-1 sprites/fix_graphics.png 686 870 09 46 64 -31 -16
-1 sprites/fix_graphics.png 2 945 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 945 09 51 50 -29 -21
-1 sprites/fix_graphics.png 146 945 09 31 64 -31 0
-1 sprites/fix_graphics.png 226 945 09 42 47 -18 -12
-1 * 5 0A 01 04 58 08
-1 sprites/fix_graphics.png 8bpp 162 566 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 242 566 59 52 -31 -24 normal
-1 sprites/fix_graphics.png 8bpp 306 566 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 386 566 51 44 -25 -15 normal
-1 sprites/fix_graphics.png 162 566 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 566 09 52 59 -31 -24
-1 sprites/fix_graphics.png 306 566 09 31 64 -31 0
-1 sprites/fix_graphics.png 386 566 09 44 51 -25 -15
// Fix transparency of oil well
-1 * 5 0A 01 07 7D 08
-1 sprites/fix_graphics.png 8bpp 2 630 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 482 566 31 50 -11 -28 normal
-1 sprites/fix_graphics.png 8bpp 530 566 31 47 -11 -25 normal
-1 sprites/fix_graphics.png 8bpp 578 566 31 47 -11 -25 normal
-1 sprites/fix_graphics.png 8bpp 626 566 31 47 -11 -25 normal
-1 sprites/fix_graphics.png 8bpp 674 566 31 49 -11 -27 normal
-1 sprites/fix_graphics.png 8bpp 722 566 31 52 -11 -30 normal
-1 sprites/fix_graphics.png 2 630 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 566 09 50 31 -11 -28
-1 sprites/fix_graphics.png 530 566 09 47 31 -11 -25
-1 sprites/fix_graphics.png 578 566 09 47 31 -11 -25
-1 sprites/fix_graphics.png 626 566 09 47 31 -11 -25
-1 sprites/fix_graphics.png 674 566 09 49 31 -11 -27
-1 sprites/fix_graphics.png 722 566 09 52 31 -11 -30
-1 * 6 07 83 01 \7! 01 02
-1 * 5 0A 01 01 7D 08
-1 sprites/fix_graphics.png 8bpp 114 630 64 31 -31 0 normal
-1 sprites/fix_graphics.png 114 630 09 31 64 -31 0
-1 * 6 07 83 01 \7! 02 02
-1 * 5 0A 01 01 7D 08
-1 sprites/fix_graphics.png 8bpp 226 630 64 31 -31 0 normal
-1 sprites/fix_graphics.png 226 630 09 31 64 -31 0
// Fix city airport's grass for temperate
-1 * 6 07 83 01 \7! 00 0A
-1 * 5 0A 01 09 4C 0A
-1 sprites/fix_graphics.png 8bpp 242 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 322 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 402 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 482 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 562 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 642 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 722 678 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 242 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 562 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 642 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 722 678 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 726 09 31 64 -31 0
// Fix city airport's grass for arctic
-1 * 6 07 83 01 \7! 01 0A
-1 * 5 0A 01 09 4C 0A
-1 sprites/fix_graphics.png 8bpp 194 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 274 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 354 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 434 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 514 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 594 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 674 726 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 194 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 274 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 354 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 434 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 726 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 774 09 31 64 -31 0
// Fix city airport's grass for tropical
-1 * 6 07 83 01 \7! 02 0A
-1 * 5 0A 01 09 4C 0A
-1 sprites/fix_graphics.png 8bpp 194 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 274 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 354 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 434 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 514 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 594 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 674 774 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 194 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 274 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 354 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 434 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 774 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 822 09 31 64 -31 0
// Fix city airport's grass for toyland
-1 * 6 07 83 01 \7! 03 0A
-1 * 5 0A 01 09 4C 0A
-1 sprites/fix_graphics.png 8bpp 194 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 274 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 354 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 434 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 514 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 594 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 674 822 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 2 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 8bpp 82 870 64 31 -31 0 normal
-1 sprites/fix_graphics.png 194 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 274 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 354 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 434 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 822 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 870 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 870 09 31 64 -31 0
// Wrong, non-translated colours in arctic buildings
-1 * 8 0A 02 01 1F 06 01 DB 11
-1 sprites/fix_graphics.png 8bpp 305 945 59 29 -29 -12 normal
-1 sprites/fix_graphics.png 8bpp 369 945 59 29 -29 -12 normal
-1 sprites/fix_graphics.png 305 945 09 29 59 -29 -12
-1 sprites/fix_graphics.png 369 945 09 29 59 -29 -12
-1 * 8 0A 02 01 76 11 01 E6 11
-1 sprites/fix_graphics.png 8bpp 449 945 64 69 -31 -38 normal
-1 sprites/fix_graphics.png 8bpp 529 945 64 69 -31 -38 normal
-1 sprites/fix_graphics.png 449 945 09 69 64 -31 -38
-1 sprites/fix_graphics.png 529 945 09 69 64 -31 -38
-1 * 8 0A 02 02 7E 11 01 E1 11
-1 sprites/fix_graphics.png 8bpp 625 945 54 75 -25 -47 normal
-1 sprites/fix_graphics.png 8bpp 2 1037 54 75 -25 -47 normal
-1 sprites/fix_graphics.png 8bpp 66 1037 54 75 -25 -47 normal
-1 sprites/fix_graphics.png 625 945 03 75 54 -25 -47
-1 sprites/fix_graphics.png 2 1037 09 75 54 -25 -47
-1 sprites/fix_graphics.png 66 1037 09 75 54 -25 -47
// Fix buoy in-game; don't show black outline
-1 * 4 01 05 01 \b1
-1 sprites/fix_graphics.png 8bpp 575 490 7 11 7 4 normal
-1 sprites/fix_graphics.png 575 490 09 11 7 7 4
-1 * 7 02 05 17 01 00 00 00
-1 * 7 03 05 01 08 00 17 00

View File

@@ -8,39 +8,39 @@
//
-1 * 0 0C "Flag graphics"
-1 * 3 05 14 24
-1 sprites/flags.png 8bpp 34 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 50 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 66 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 82 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 98 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 114 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 130 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 146 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 162 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 178 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 194 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 210 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 226 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 242 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 258 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 274 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 290 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 306 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 322 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 338 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 354 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 370 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 386 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 402 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 418 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 434 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 450 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 466 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 482 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 498 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 514 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 530 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 546 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 562 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 578 8 11 8 0 0 normal
-1 sprites/flags.png 8bpp 594 8 11 8 0 0 normal
-1 sprites/flags.png 34 8 09 8 11 0 0
-1 sprites/flags.png 50 8 09 8 11 0 0
-1 sprites/flags.png 66 8 09 8 11 0 0
-1 sprites/flags.png 82 8 09 8 11 0 0
-1 sprites/flags.png 98 8 09 8 11 0 0
-1 sprites/flags.png 114 8 09 8 11 0 0
-1 sprites/flags.png 130 8 09 8 11 0 0
-1 sprites/flags.png 146 8 09 8 11 0 0
-1 sprites/flags.png 162 8 09 8 11 0 0
-1 sprites/flags.png 178 8 09 8 11 0 0
-1 sprites/flags.png 194 8 09 8 11 0 0
-1 sprites/flags.png 210 8 09 8 11 0 0
-1 sprites/flags.png 226 8 09 8 11 0 0
-1 sprites/flags.png 242 8 09 8 11 0 0
-1 sprites/flags.png 258 8 09 8 11 0 0
-1 sprites/flags.png 274 8 09 8 11 0 0
-1 sprites/flags.png 290 8 09 8 11 0 0
-1 sprites/flags.png 306 8 09 8 11 0 0
-1 sprites/flags.png 322 8 09 8 11 0 0
-1 sprites/flags.png 338 8 09 8 11 0 0
-1 sprites/flags.png 354 8 09 8 11 0 0
-1 sprites/flags.png 370 8 09 8 11 0 0
-1 sprites/flags.png 386 8 09 8 11 0 0
-1 sprites/flags.png 402 8 09 8 11 0 0
-1 sprites/flags.png 418 8 09 8 11 0 0
-1 sprites/flags.png 434 8 09 8 11 0 0
-1 sprites/flags.png 450 8 09 8 11 0 0
-1 sprites/flags.png 466 8 09 8 11 0 0
-1 sprites/flags.png 482 8 09 8 11 0 0
-1 sprites/flags.png 498 8 09 8 11 0 0
-1 sprites/flags.png 514 8 09 8 11 0 0
-1 sprites/flags.png 530 8 09 8 11 0 0
-1 sprites/flags.png 546 8 09 8 11 0 0
-1 sprites/flags.png 562 8 09 8 11 0 0
-1 sprites/flags.png 578 8 09 8 11 0 0
-1 sprites/flags.png 594 8 09 8 11 0 0

View File

@@ -9,369 +9,369 @@
-1 * 0 0C "Foundations. Non-halftile ones by Marcin Grzegorczyk"
-1 * 6 07 83 01 \7! 00 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 8bpp 82 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 8 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 8 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 8 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 72 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 72 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 72 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 72 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 72 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 136 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 136 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 136 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 136 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 200 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 200 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 200 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 200 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 200 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 264 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 264 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 264 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 264 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 264 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 264 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 264 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 264 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 264 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 264 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 328 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 328 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 328 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 328 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 328 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 392 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 392 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 392 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 392 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 392 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 456 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 456 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 456 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 456 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 456 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 456 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 482 456 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 562 456 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 642 456 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 456 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 2 520 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 82 520 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 162 520 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 520 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 322 520 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 402 520 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 482 520 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 520 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 642 520 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 722 520 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 2 584 64 33 -31 -9 normal
-1 sprites/foundations.png 82 8 09 40 64 -31 -9
-1 sprites/foundations.png 162 8 09 40 64 -31 -9
-1 sprites/foundations.png 242 8 09 32 64 -31 -9
-1 sprites/foundations.png 322 8 09 32 64 -31 -9
-1 sprites/foundations.png 402 8 09 40 64 -31 -9
-1 sprites/foundations.png 482 8 09 40 64 -31 -9
-1 sprites/foundations.png 562 8 09 40 64 -31 -9
-1 sprites/foundations.png 642 8 09 40 64 -31 -9
-1 sprites/foundations.png 722 8 09 40 64 -31 -9
-1 sprites/foundations.png 2 72 09 32 64 -31 -9
-1 sprites/foundations.png 82 72 09 32 64 -31 -9
-1 sprites/foundations.png 162 72 09 40 64 -31 -9
-1 sprites/foundations.png 242 72 09 40 64 -31 -9
-1 sprites/foundations.png 322 72 09 32 64 -31 -9
-1 sprites/foundations.png 402 72 09 32 64 -31 -9
-1 sprites/foundations.png 482 72 09 40 64 -31 -9
-1 sprites/foundations.png 562 72 09 40 64 -31 -9
-1 sprites/foundations.png 642 72 09 32 64 -31 -9
-1 sprites/foundations.png 722 72 09 32 64 -31 -9
-1 sprites/foundations.png 2 136 09 40 64 -31 -9
-1 sprites/foundations.png 82 136 09 40 64 -31 -9
-1 sprites/foundations.png 162 136 09 32 64 -31 -9
-1 sprites/foundations.png 242 136 09 40 64 -31 -9
-1 sprites/foundations.png 322 136 09 40 64 -31 -9
-1 sprites/foundations.png 402 136 09 32 64 -31 -9
-1 sprites/foundations.png 482 136 09 32 64 -31 -9
-1 sprites/foundations.png 562 136 09 40 64 -31 -9
-1 sprites/foundations.png 642 136 09 40 64 -31 -9
-1 sprites/foundations.png 722 136 09 40 64 -31 -9
-1 sprites/foundations.png 2 200 09 40 64 -31 -9
-1 sprites/foundations.png 82 200 09 40 64 -31 -9
-1 sprites/foundations.png 162 200 09 32 64 -31 -9
-1 sprites/foundations.png 242 200 09 32 64 -31 -9
-1 sprites/foundations.png 322 200 09 40 64 -31 -9
-1 sprites/foundations.png 402 200 09 40 64 -31 -9
-1 sprites/foundations.png 482 200 09 32 64 -31 -9
-1 sprites/foundations.png 562 200 09 32 64 -31 -9
-1 sprites/foundations.png 642 200 09 40 64 -31 -9
-1 sprites/foundations.png 722 200 09 40 64 -31 -9
-1 sprites/foundations.png 2 264 09 32 64 -31 -9
-1 sprites/foundations.png 82 264 09 32 64 -31 -9
-1 sprites/foundations.png 162 264 09 40 64 -31 -9
-1 sprites/foundations.png 242 264 09 40 64 -31 -9
-1 sprites/foundations.png 322 264 09 32 64 -31 -9
-1 sprites/foundations.png 402 264 09 40 64 -31 -9
-1 sprites/foundations.png 482 264 09 40 64 -31 -9
-1 sprites/foundations.png 562 264 09 32 64 -31 -9
-1 sprites/foundations.png 642 264 09 32 64 -31 -9
-1 sprites/foundations.png 722 264 09 40 64 -31 -9
-1 sprites/foundations.png 2 328 09 40 64 -31 -9
-1 sprites/foundations.png 82 328 09 40 64 -31 -9
-1 sprites/foundations.png 162 328 09 40 64 -31 -9
-1 sprites/foundations.png 242 328 09 40 64 -31 -9
-1 sprites/foundations.png 322 328 09 32 64 -31 -9
-1 sprites/foundations.png 402 328 09 32 64 -31 -9
-1 sprites/foundations.png 482 328 09 40 64 -31 -9
-1 sprites/foundations.png 562 328 09 40 64 -31 -9
-1 sprites/foundations.png 642 328 09 32 64 -31 -9
-1 sprites/foundations.png 722 328 09 32 64 -31 -9
-1 sprites/foundations.png 2 392 09 40 64 -31 -9
-1 sprites/foundations.png 82 392 09 40 64 -31 -9
-1 sprites/foundations.png 162 392 09 32 64 -31 -9
-1 sprites/foundations.png 242 392 09 32 64 -31 -9
-1 sprites/foundations.png 322 392 09 40 64 -31 -9
-1 sprites/foundations.png 402 392 09 40 64 -31 -9
-1 sprites/foundations.png 482 392 09 32 64 -31 -9
-1 sprites/foundations.png 562 392 09 40 64 -31 -9
-1 sprites/foundations.png 642 392 09 40 64 -31 -9
-1 sprites/foundations.png 722 392 09 32 64 -31 -9
-1 sprites/foundations.png 2 456 09 32 64 -31 -9
-1 sprites/foundations.png 82 456 09 40 64 -31 -9
-1 sprites/foundations.png 162 456 09 40 64 -31 -9
-1 sprites/foundations.png 242 456 09 40 64 -31 -9
-1 sprites/foundations.png 322 456 09 40 64 -31 -9
-1 sprites/foundations.png 402 456 09 40 64 -15 -17
-1 sprites/foundations.png 482 456 09 33 64 -31 -25
-1 sprites/foundations.png 562 456 09 40 64 -47 -17
-1 sprites/foundations.png 642 456 09 33 64 -31 -9
-1 sprites/foundations.png 722 456 09 40 64 -15 -17
-1 sprites/foundations.png 2 520 09 33 64 -31 -25
-1 sprites/foundations.png 82 520 09 40 64 -47 -17
-1 sprites/foundations.png 162 520 09 33 64 -31 -9
-1 sprites/foundations.png 242 520 09 40 64 -15 -17
-1 sprites/foundations.png 322 520 09 33 64 -31 -25
-1 sprites/foundations.png 402 520 09 40 64 -47 -17
-1 sprites/foundations.png 482 520 09 33 64 -31 -9
-1 sprites/foundations.png 562 520 09 40 64 -15 -17
-1 sprites/foundations.png 642 520 09 33 64 -31 -25
-1 sprites/foundations.png 722 520 09 40 64 -47 -17
-1 sprites/foundations.png 2 584 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 01 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 8bpp 114 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 194 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 274 584 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 354 584 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 434 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 514 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 594 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 674 584 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 648 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 648 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 648 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 648 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 648 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 648 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 648 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 648 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 648 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 648 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 712 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 712 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 712 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 712 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 712 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 776 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 776 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 776 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 776 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 776 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 840 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 840 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 840 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 840 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 840 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 840 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 840 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 840 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 840 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 840 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 904 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 904 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 904 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 904 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 968 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 968 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 968 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 968 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 968 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1032 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1032 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1032 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1032 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1032 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1032 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1032 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 562 1032 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 642 1032 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 722 1032 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1096 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 82 1096 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 162 1096 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 242 1096 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1096 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 402 1096 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 482 1096 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 562 1096 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1096 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 722 1096 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 2 1160 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 82 1160 64 33 -31 -9 normal
-1 sprites/foundations.png 114 584 09 40 64 -31 -9
-1 sprites/foundations.png 194 584 09 40 64 -31 -9
-1 sprites/foundations.png 274 584 09 32 64 -31 -9
-1 sprites/foundations.png 354 584 09 32 64 -31 -9
-1 sprites/foundations.png 434 584 09 40 64 -31 -9
-1 sprites/foundations.png 514 584 09 40 64 -31 -9
-1 sprites/foundations.png 594 584 09 40 64 -31 -9
-1 sprites/foundations.png 674 584 09 40 64 -31 -9
-1 sprites/foundations.png 2 648 09 40 64 -31 -9
-1 sprites/foundations.png 82 648 09 32 64 -31 -9
-1 sprites/foundations.png 162 648 09 32 64 -31 -9
-1 sprites/foundations.png 242 648 09 40 64 -31 -9
-1 sprites/foundations.png 322 648 09 40 64 -31 -9
-1 sprites/foundations.png 402 648 09 32 64 -31 -9
-1 sprites/foundations.png 482 648 09 32 64 -31 -9
-1 sprites/foundations.png 562 648 09 40 64 -31 -9
-1 sprites/foundations.png 642 648 09 40 64 -31 -9
-1 sprites/foundations.png 722 648 09 32 64 -31 -9
-1 sprites/foundations.png 2 712 09 32 64 -31 -9
-1 sprites/foundations.png 82 712 09 40 64 -31 -9
-1 sprites/foundations.png 162 712 09 40 64 -31 -9
-1 sprites/foundations.png 242 712 09 32 64 -31 -9
-1 sprites/foundations.png 322 712 09 40 64 -31 -9
-1 sprites/foundations.png 402 712 09 40 64 -31 -9
-1 sprites/foundations.png 482 712 09 32 64 -31 -9
-1 sprites/foundations.png 562 712 09 32 64 -31 -9
-1 sprites/foundations.png 642 712 09 40 64 -31 -9
-1 sprites/foundations.png 722 712 09 40 64 -31 -9
-1 sprites/foundations.png 2 776 09 40 64 -31 -9
-1 sprites/foundations.png 82 776 09 40 64 -31 -9
-1 sprites/foundations.png 162 776 09 40 64 -31 -9
-1 sprites/foundations.png 242 776 09 32 64 -31 -9
-1 sprites/foundations.png 322 776 09 32 64 -31 -9
-1 sprites/foundations.png 402 776 09 40 64 -31 -9
-1 sprites/foundations.png 482 776 09 40 64 -31 -9
-1 sprites/foundations.png 562 776 09 32 64 -31 -9
-1 sprites/foundations.png 642 776 09 32 64 -31 -9
-1 sprites/foundations.png 722 776 09 40 64 -31 -9
-1 sprites/foundations.png 2 840 09 40 64 -31 -9
-1 sprites/foundations.png 82 840 09 32 64 -31 -9
-1 sprites/foundations.png 162 840 09 32 64 -31 -9
-1 sprites/foundations.png 242 840 09 40 64 -31 -9
-1 sprites/foundations.png 322 840 09 40 64 -31 -9
-1 sprites/foundations.png 402 840 09 32 64 -31 -9
-1 sprites/foundations.png 482 840 09 40 64 -31 -9
-1 sprites/foundations.png 562 840 09 40 64 -31 -9
-1 sprites/foundations.png 642 840 09 32 64 -31 -9
-1 sprites/foundations.png 722 840 09 32 64 -31 -9
-1 sprites/foundations.png 2 904 09 40 64 -31 -9
-1 sprites/foundations.png 82 904 09 40 64 -31 -9
-1 sprites/foundations.png 162 904 09 40 64 -31 -9
-1 sprites/foundations.png 242 904 09 40 64 -31 -9
-1 sprites/foundations.png 322 904 09 40 64 -31 -9
-1 sprites/foundations.png 402 904 09 32 64 -31 -9
-1 sprites/foundations.png 482 904 09 32 64 -31 -9
-1 sprites/foundations.png 562 904 09 40 64 -31 -9
-1 sprites/foundations.png 642 904 09 40 64 -31 -9
-1 sprites/foundations.png 722 904 09 32 64 -31 -9
-1 sprites/foundations.png 2 968 09 32 64 -31 -9
-1 sprites/foundations.png 82 968 09 40 64 -31 -9
-1 sprites/foundations.png 162 968 09 40 64 -31 -9
-1 sprites/foundations.png 242 968 09 32 64 -31 -9
-1 sprites/foundations.png 322 968 09 32 64 -31 -9
-1 sprites/foundations.png 402 968 09 40 64 -31 -9
-1 sprites/foundations.png 482 968 09 40 64 -31 -9
-1 sprites/foundations.png 562 968 09 32 64 -31 -9
-1 sprites/foundations.png 642 968 09 40 64 -31 -9
-1 sprites/foundations.png 722 968 09 40 64 -31 -9
-1 sprites/foundations.png 2 1032 09 32 64 -31 -9
-1 sprites/foundations.png 82 1032 09 32 64 -31 -9
-1 sprites/foundations.png 162 1032 09 40 64 -31 -9
-1 sprites/foundations.png 242 1032 09 40 64 -31 -9
-1 sprites/foundations.png 322 1032 09 40 64 -31 -9
-1 sprites/foundations.png 402 1032 09 40 64 -31 -9
-1 sprites/foundations.png 482 1032 09 40 64 -15 -17
-1 sprites/foundations.png 562 1032 09 33 64 -31 -25
-1 sprites/foundations.png 642 1032 09 40 64 -47 -17
-1 sprites/foundations.png 722 1032 09 33 64 -31 -9
-1 sprites/foundations.png 2 1096 09 40 64 -15 -17
-1 sprites/foundations.png 82 1096 09 33 64 -31 -25
-1 sprites/foundations.png 162 1096 09 40 64 -47 -17
-1 sprites/foundations.png 242 1096 09 33 64 -31 -9
-1 sprites/foundations.png 322 1096 09 40 64 -15 -17
-1 sprites/foundations.png 402 1096 09 33 64 -31 -25
-1 sprites/foundations.png 482 1096 09 40 64 -47 -17
-1 sprites/foundations.png 562 1096 09 33 64 -31 -9
-1 sprites/foundations.png 642 1096 09 40 64 -15 -17
-1 sprites/foundations.png 722 1096 09 33 64 -31 -25
-1 sprites/foundations.png 2 1160 09 40 64 -47 -17
-1 sprites/foundations.png 82 1160 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 02 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 8bpp 194 1160 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 274 1160 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 354 1160 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 434 1160 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 514 1160 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 594 1160 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 674 1160 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1224 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1224 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1224 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1224 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1224 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1288 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1288 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1288 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1288 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1288 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1288 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1288 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1288 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1288 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1288 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1352 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1352 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1352 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1352 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1352 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1416 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1416 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1416 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1416 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1416 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1480 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1480 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1480 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1480 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1544 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1544 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1544 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1544 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1544 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1544 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1544 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1544 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1544 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1544 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1608 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1608 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1608 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1608 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1608 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1608 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1608 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1608 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 642 1608 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 722 1608 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 2 1672 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1672 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 162 1672 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 242 1672 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 322 1672 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1672 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 482 1672 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 562 1672 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 642 1672 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1672 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 2 1736 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 82 1736 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 162 1736 64 33 -31 -9 normal
-1 sprites/foundations.png 194 1160 09 40 64 -31 -9
-1 sprites/foundations.png 274 1160 09 40 64 -31 -9
-1 sprites/foundations.png 354 1160 09 32 64 -31 -9
-1 sprites/foundations.png 434 1160 09 32 64 -31 -9
-1 sprites/foundations.png 514 1160 09 40 64 -31 -9
-1 sprites/foundations.png 594 1160 09 40 64 -31 -9
-1 sprites/foundations.png 674 1160 09 40 64 -31 -9
-1 sprites/foundations.png 2 1224 09 40 64 -31 -9
-1 sprites/foundations.png 82 1224 09 40 64 -31 -9
-1 sprites/foundations.png 162 1224 09 32 64 -31 -9
-1 sprites/foundations.png 242 1224 09 32 64 -31 -9
-1 sprites/foundations.png 322 1224 09 40 64 -31 -9
-1 sprites/foundations.png 402 1224 09 40 64 -31 -9
-1 sprites/foundations.png 482 1224 09 32 64 -31 -9
-1 sprites/foundations.png 562 1224 09 32 64 -31 -9
-1 sprites/foundations.png 642 1224 09 40 64 -31 -9
-1 sprites/foundations.png 722 1224 09 40 64 -31 -9
-1 sprites/foundations.png 2 1288 09 32 64 -31 -9
-1 sprites/foundations.png 82 1288 09 32 64 -31 -9
-1 sprites/foundations.png 162 1288 09 40 64 -31 -9
-1 sprites/foundations.png 242 1288 09 40 64 -31 -9
-1 sprites/foundations.png 322 1288 09 32 64 -31 -9
-1 sprites/foundations.png 402 1288 09 40 64 -31 -9
-1 sprites/foundations.png 482 1288 09 40 64 -31 -9
-1 sprites/foundations.png 562 1288 09 32 64 -31 -9
-1 sprites/foundations.png 642 1288 09 32 64 -31 -9
-1 sprites/foundations.png 722 1288 09 40 64 -31 -9
-1 sprites/foundations.png 2 1352 09 40 64 -31 -9
-1 sprites/foundations.png 82 1352 09 40 64 -31 -9
-1 sprites/foundations.png 162 1352 09 40 64 -31 -9
-1 sprites/foundations.png 242 1352 09 40 64 -31 -9
-1 sprites/foundations.png 322 1352 09 32 64 -31 -9
-1 sprites/foundations.png 402 1352 09 32 64 -31 -9
-1 sprites/foundations.png 482 1352 09 40 64 -31 -9
-1 sprites/foundations.png 562 1352 09 40 64 -31 -9
-1 sprites/foundations.png 642 1352 09 32 64 -31 -9
-1 sprites/foundations.png 722 1352 09 32 64 -31 -9
-1 sprites/foundations.png 2 1416 09 40 64 -31 -9
-1 sprites/foundations.png 82 1416 09 40 64 -31 -9
-1 sprites/foundations.png 162 1416 09 32 64 -31 -9
-1 sprites/foundations.png 242 1416 09 32 64 -31 -9
-1 sprites/foundations.png 322 1416 09 40 64 -31 -9
-1 sprites/foundations.png 402 1416 09 40 64 -31 -9
-1 sprites/foundations.png 482 1416 09 32 64 -31 -9
-1 sprites/foundations.png 562 1416 09 40 64 -31 -9
-1 sprites/foundations.png 642 1416 09 40 64 -31 -9
-1 sprites/foundations.png 722 1416 09 32 64 -31 -9
-1 sprites/foundations.png 2 1480 09 32 64 -31 -9
-1 sprites/foundations.png 82 1480 09 40 64 -31 -9
-1 sprites/foundations.png 162 1480 09 40 64 -31 -9
-1 sprites/foundations.png 242 1480 09 40 64 -31 -9
-1 sprites/foundations.png 322 1480 09 40 64 -31 -9
-1 sprites/foundations.png 402 1480 09 40 64 -31 -9
-1 sprites/foundations.png 482 1480 09 32 64 -31 -9
-1 sprites/foundations.png 562 1480 09 32 64 -31 -9
-1 sprites/foundations.png 642 1480 09 40 64 -31 -9
-1 sprites/foundations.png 722 1480 09 40 64 -31 -9
-1 sprites/foundations.png 2 1544 09 32 64 -31 -9
-1 sprites/foundations.png 82 1544 09 32 64 -31 -9
-1 sprites/foundations.png 162 1544 09 40 64 -31 -9
-1 sprites/foundations.png 242 1544 09 40 64 -31 -9
-1 sprites/foundations.png 322 1544 09 32 64 -31 -9
-1 sprites/foundations.png 402 1544 09 32 64 -31 -9
-1 sprites/foundations.png 482 1544 09 40 64 -31 -9
-1 sprites/foundations.png 562 1544 09 40 64 -31 -9
-1 sprites/foundations.png 642 1544 09 32 64 -31 -9
-1 sprites/foundations.png 722 1544 09 40 64 -31 -9
-1 sprites/foundations.png 2 1608 09 40 64 -31 -9
-1 sprites/foundations.png 82 1608 09 32 64 -31 -9
-1 sprites/foundations.png 162 1608 09 32 64 -31 -9
-1 sprites/foundations.png 242 1608 09 40 64 -31 -9
-1 sprites/foundations.png 322 1608 09 40 64 -31 -9
-1 sprites/foundations.png 402 1608 09 40 64 -31 -9
-1 sprites/foundations.png 482 1608 09 40 64 -31 -9
-1 sprites/foundations.png 562 1608 09 40 64 -15 -17
-1 sprites/foundations.png 642 1608 09 33 64 -31 -25
-1 sprites/foundations.png 722 1608 09 40 64 -47 -17
-1 sprites/foundations.png 2 1672 09 33 64 -31 -9
-1 sprites/foundations.png 82 1672 09 40 64 -15 -17
-1 sprites/foundations.png 162 1672 09 33 64 -31 -25
-1 sprites/foundations.png 242 1672 09 40 64 -47 -17
-1 sprites/foundations.png 322 1672 09 33 64 -31 -9
-1 sprites/foundations.png 402 1672 09 40 64 -15 -17
-1 sprites/foundations.png 482 1672 09 33 64 -31 -25
-1 sprites/foundations.png 562 1672 09 40 64 -47 -17
-1 sprites/foundations.png 642 1672 09 33 64 -31 -9
-1 sprites/foundations.png 722 1672 09 40 64 -15 -17
-1 sprites/foundations.png 2 1736 09 33 64 -31 -25
-1 sprites/foundations.png 82 1736 09 40 64 -47 -17
-1 sprites/foundations.png 162 1736 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 03 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 8bpp 274 1736 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 354 1736 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 434 1736 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 514 1736 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 594 1736 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 674 1736 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1800 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1800 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1800 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1800 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1800 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1864 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1864 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1864 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1864 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1864 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1864 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1864 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1864 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1864 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1864 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1928 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1928 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1928 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1928 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 1992 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 1992 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 1992 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 1992 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 1992 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 2056 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 2056 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 2056 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 2056 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 2056 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 2120 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 2120 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 2120 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 2120 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 2120 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 2120 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 2120 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 2120 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 2120 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 722 2120 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 82 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 2184 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 242 2184 64 32 -31 -9 normal
-1 sprites/foundations.png 8bpp 322 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 402 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 562 2184 64 40 -31 -9 normal
-1 sprites/foundations.png 8bpp 642 2184 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 722 2184 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 2 2248 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 82 2248 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 162 2248 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 242 2248 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 322 2248 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 402 2248 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 482 2248 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 562 2248 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 642 2248 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 722 2248 64 33 -31 -9 normal
-1 sprites/foundations.png 8bpp 2 2312 64 40 -15 -17 normal
-1 sprites/foundations.png 8bpp 82 2312 64 33 -31 -25 normal
-1 sprites/foundations.png 8bpp 162 2312 64 40 -47 -17 normal
-1 sprites/foundations.png 8bpp 242 2312 64 33 -31 -9 normal
-1 sprites/foundations.png 274 1736 09 40 64 -31 -9
-1 sprites/foundations.png 354 1736 09 40 64 -31 -9
-1 sprites/foundations.png 434 1736 09 32 64 -31 -9
-1 sprites/foundations.png 514 1736 09 32 64 -31 -9
-1 sprites/foundations.png 594 1736 09 40 64 -31 -9
-1 sprites/foundations.png 674 1736 09 40 64 -31 -9
-1 sprites/foundations.png 2 1800 09 40 64 -31 -9
-1 sprites/foundations.png 82 1800 09 40 64 -31 -9
-1 sprites/foundations.png 162 1800 09 40 64 -31 -9
-1 sprites/foundations.png 242 1800 09 32 64 -31 -9
-1 sprites/foundations.png 322 1800 09 32 64 -31 -9
-1 sprites/foundations.png 402 1800 09 40 64 -31 -9
-1 sprites/foundations.png 482 1800 09 40 64 -31 -9
-1 sprites/foundations.png 562 1800 09 32 64 -31 -9
-1 sprites/foundations.png 642 1800 09 32 64 -31 -9
-1 sprites/foundations.png 722 1800 09 40 64 -31 -9
-1 sprites/foundations.png 2 1864 09 40 64 -31 -9
-1 sprites/foundations.png 82 1864 09 32 64 -31 -9
-1 sprites/foundations.png 162 1864 09 32 64 -31 -9
-1 sprites/foundations.png 242 1864 09 40 64 -31 -9
-1 sprites/foundations.png 322 1864 09 40 64 -31 -9
-1 sprites/foundations.png 402 1864 09 32 64 -31 -9
-1 sprites/foundations.png 482 1864 09 40 64 -31 -9
-1 sprites/foundations.png 562 1864 09 40 64 -31 -9
-1 sprites/foundations.png 642 1864 09 32 64 -31 -9
-1 sprites/foundations.png 722 1864 09 32 64 -31 -9
-1 sprites/foundations.png 2 1928 09 40 64 -31 -9
-1 sprites/foundations.png 82 1928 09 40 64 -31 -9
-1 sprites/foundations.png 162 1928 09 40 64 -31 -9
-1 sprites/foundations.png 242 1928 09 40 64 -31 -9
-1 sprites/foundations.png 322 1928 09 40 64 -31 -9
-1 sprites/foundations.png 402 1928 09 32 64 -31 -9
-1 sprites/foundations.png 482 1928 09 32 64 -31 -9
-1 sprites/foundations.png 562 1928 09 40 64 -31 -9
-1 sprites/foundations.png 642 1928 09 40 64 -31 -9
-1 sprites/foundations.png 722 1928 09 32 64 -31 -9
-1 sprites/foundations.png 2 1992 09 32 64 -31 -9
-1 sprites/foundations.png 82 1992 09 40 64 -31 -9
-1 sprites/foundations.png 162 1992 09 40 64 -31 -9
-1 sprites/foundations.png 242 1992 09 32 64 -31 -9
-1 sprites/foundations.png 322 1992 09 32 64 -31 -9
-1 sprites/foundations.png 402 1992 09 40 64 -31 -9
-1 sprites/foundations.png 482 1992 09 40 64 -31 -9
-1 sprites/foundations.png 562 1992 09 32 64 -31 -9
-1 sprites/foundations.png 642 1992 09 40 64 -31 -9
-1 sprites/foundations.png 722 1992 09 40 64 -31 -9
-1 sprites/foundations.png 2 2056 09 32 64 -31 -9
-1 sprites/foundations.png 82 2056 09 32 64 -31 -9
-1 sprites/foundations.png 162 2056 09 40 64 -31 -9
-1 sprites/foundations.png 242 2056 09 40 64 -31 -9
-1 sprites/foundations.png 322 2056 09 40 64 -31 -9
-1 sprites/foundations.png 402 2056 09 40 64 -31 -9
-1 sprites/foundations.png 482 2056 09 40 64 -31 -9
-1 sprites/foundations.png 562 2056 09 32 64 -31 -9
-1 sprites/foundations.png 642 2056 09 32 64 -31 -9
-1 sprites/foundations.png 722 2056 09 40 64 -31 -9
-1 sprites/foundations.png 2 2120 09 40 64 -31 -9
-1 sprites/foundations.png 82 2120 09 32 64 -31 -9
-1 sprites/foundations.png 162 2120 09 32 64 -31 -9
-1 sprites/foundations.png 242 2120 09 40 64 -31 -9
-1 sprites/foundations.png 322 2120 09 40 64 -31 -9
-1 sprites/foundations.png 402 2120 09 32 64 -31 -9
-1 sprites/foundations.png 482 2120 09 32 64 -31 -9
-1 sprites/foundations.png 562 2120 09 40 64 -31 -9
-1 sprites/foundations.png 642 2120 09 40 64 -31 -9
-1 sprites/foundations.png 722 2120 09 32 64 -31 -9
-1 sprites/foundations.png 2 2184 09 40 64 -31 -9
-1 sprites/foundations.png 82 2184 09 40 64 -31 -9
-1 sprites/foundations.png 162 2184 09 32 64 -31 -9
-1 sprites/foundations.png 242 2184 09 32 64 -31 -9
-1 sprites/foundations.png 322 2184 09 40 64 -31 -9
-1 sprites/foundations.png 402 2184 09 40 64 -31 -9
-1 sprites/foundations.png 482 2184 09 40 64 -31 -9
-1 sprites/foundations.png 562 2184 09 40 64 -31 -9
-1 sprites/foundations.png 642 2184 09 40 64 -15 -17
-1 sprites/foundations.png 722 2184 09 33 64 -31 -25
-1 sprites/foundations.png 2 2248 09 40 64 -47 -17
-1 sprites/foundations.png 82 2248 09 33 64 -31 -9
-1 sprites/foundations.png 162 2248 09 40 64 -15 -17
-1 sprites/foundations.png 242 2248 09 33 64 -31 -25
-1 sprites/foundations.png 322 2248 09 40 64 -47 -17
-1 sprites/foundations.png 402 2248 09 33 64 -31 -9
-1 sprites/foundations.png 482 2248 09 40 64 -15 -17
-1 sprites/foundations.png 562 2248 09 33 64 -31 -25
-1 sprites/foundations.png 642 2248 09 40 64 -47 -17
-1 sprites/foundations.png 722 2248 09 33 64 -31 -9
-1 sprites/foundations.png 2 2312 09 40 64 -15 -17
-1 sprites/foundations.png 82 2312 09 33 64 -31 -25
-1 sprites/foundations.png 162 2312 09 40 64 -47 -17
-1 sprites/foundations.png 242 2312 09 33 64 -31 -9

View File

@@ -8,233 +8,233 @@
//
-1 * 0 0C "Monospaced characters (Liberation Mono)"
-1 * 0 12 01 03 60 20 00
-1 sprites/mono.png 8bpp 10 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 30 7 13 0 0 normal
-1 sprites/mono.png 8bpp 10 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 50 7 13 0 0 normal
-1 sprites/mono.png 8bpp 10 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 70 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 70 7 13 0 0 normal
-1 sprites/mono.png 10 30 01 13 7 0 0
-1 sprites/mono.png 25 30 01 13 7 0 0
-1 sprites/mono.png 40 30 01 13 7 0 0
-1 sprites/mono.png 55 30 01 13 7 0 0
-1 sprites/mono.png 70 30 01 13 7 0 0
-1 sprites/mono.png 85 30 01 13 7 0 0
-1 sprites/mono.png 100 30 01 13 7 0 0
-1 sprites/mono.png 115 30 01 13 7 0 0
-1 sprites/mono.png 130 30 01 13 7 0 0
-1 sprites/mono.png 145 30 01 13 7 0 0
-1 sprites/mono.png 160 30 01 13 7 0 0
-1 sprites/mono.png 175 30 01 13 7 0 0
-1 sprites/mono.png 190 30 01 13 7 0 0
-1 sprites/mono.png 205 30 01 13 7 0 0
-1 sprites/mono.png 220 30 01 13 7 0 0
-1 sprites/mono.png 235 30 01 13 7 0 0
-1 sprites/mono.png 250 30 01 13 7 0 0
-1 sprites/mono.png 265 30 01 13 7 0 0
-1 sprites/mono.png 280 30 01 13 7 0 0
-1 sprites/mono.png 295 30 01 13 7 0 0
-1 sprites/mono.png 310 30 01 13 7 0 0
-1 sprites/mono.png 325 30 01 13 7 0 0
-1 sprites/mono.png 340 30 01 13 7 0 0
-1 sprites/mono.png 355 30 01 13 7 0 0
-1 sprites/mono.png 370 30 01 13 7 0 0
-1 sprites/mono.png 385 30 01 13 7 0 0
-1 sprites/mono.png 400 30 01 13 7 0 0
-1 sprites/mono.png 415 30 01 13 7 0 0
-1 sprites/mono.png 430 30 01 13 7 0 0
-1 sprites/mono.png 445 30 01 13 7 0 0
-1 sprites/mono.png 460 30 01 13 7 0 0
-1 sprites/mono.png 475 30 01 13 7 0 0
-1 sprites/mono.png 10 50 01 13 7 0 0
-1 sprites/mono.png 25 50 01 13 7 0 0
-1 sprites/mono.png 40 50 01 13 7 0 0
-1 sprites/mono.png 55 50 01 13 7 0 0
-1 sprites/mono.png 70 50 01 13 7 0 0
-1 sprites/mono.png 85 50 01 13 7 0 0
-1 sprites/mono.png 100 50 01 13 7 0 0
-1 sprites/mono.png 115 50 01 13 7 0 0
-1 sprites/mono.png 130 50 01 13 7 0 0
-1 sprites/mono.png 145 50 01 13 7 0 0
-1 sprites/mono.png 160 50 01 13 7 0 0
-1 sprites/mono.png 175 50 01 13 7 0 0
-1 sprites/mono.png 190 50 01 13 7 0 0
-1 sprites/mono.png 205 50 01 13 7 0 0
-1 sprites/mono.png 220 50 01 13 7 0 0
-1 sprites/mono.png 235 50 01 13 7 0 0
-1 sprites/mono.png 250 50 01 13 7 0 0
-1 sprites/mono.png 265 50 01 13 7 0 0
-1 sprites/mono.png 280 50 01 13 7 0 0
-1 sprites/mono.png 295 50 01 13 7 0 0
-1 sprites/mono.png 310 50 01 13 7 0 0
-1 sprites/mono.png 325 50 01 13 7 0 0
-1 sprites/mono.png 340 50 01 13 7 0 0
-1 sprites/mono.png 355 50 01 13 7 0 0
-1 sprites/mono.png 370 50 01 13 7 0 0
-1 sprites/mono.png 385 50 01 13 7 0 0
-1 sprites/mono.png 400 50 01 13 7 0 0
-1 sprites/mono.png 415 50 01 13 7 0 0
-1 sprites/mono.png 430 50 01 13 7 0 0
-1 sprites/mono.png 445 50 01 13 7 0 0
-1 sprites/mono.png 460 50 01 13 7 0 0
-1 sprites/mono.png 475 50 01 13 7 0 0
-1 sprites/mono.png 10 70 01 13 7 0 0
-1 sprites/mono.png 25 70 01 13 7 0 0
-1 sprites/mono.png 40 70 01 13 7 0 0
-1 sprites/mono.png 55 70 01 13 7 0 0
-1 sprites/mono.png 70 70 01 13 7 0 0
-1 sprites/mono.png 85 70 01 13 7 0 0
-1 sprites/mono.png 100 70 01 13 7 0 0
-1 sprites/mono.png 115 70 01 13 7 0 0
-1 sprites/mono.png 130 70 01 13 7 0 0
-1 sprites/mono.png 145 70 01 13 7 0 0
-1 sprites/mono.png 160 70 01 13 7 0 0
-1 sprites/mono.png 175 70 01 13 7 0 0
-1 sprites/mono.png 190 70 01 13 7 0 0
-1 sprites/mono.png 205 70 01 13 7 0 0
-1 sprites/mono.png 220 70 01 13 7 0 0
-1 sprites/mono.png 235 70 01 13 7 0 0
-1 sprites/mono.png 250 70 01 13 7 0 0
-1 sprites/mono.png 265 70 01 13 7 0 0
-1 sprites/mono.png 280 70 01 13 7 0 0
-1 sprites/mono.png 295 70 01 13 7 0 0
-1 sprites/mono.png 310 70 01 13 7 0 0
-1 sprites/mono.png 325 70 01 13 7 0 0
-1 sprites/mono.png 340 70 01 13 7 0 0
-1 sprites/mono.png 355 70 01 13 7 0 0
-1 sprites/mono.png 370 70 01 13 7 0 0
-1 sprites/mono.png 385 70 01 13 7 0 0
-1 sprites/mono.png 400 70 01 13 7 0 0
-1 sprites/mono.png 415 70 01 13 7 0 0
-1 sprites/mono.png 430 70 01 13 7 0 0
-1 sprites/mono.png 445 70 01 13 7 0 0
-1 sprites/mono.png 460 70 01 13 7 0 0
-1 sprites/mono.png 475 70 01 13 7 0 0
-1 * 0 12 01 03 80 80 00
-1 sprites/mono.png 8bpp 10 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 90 7 13 0 0 normal
-1 sprites/mono.png 8bpp 10 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 110 7 13 0 0 normal
-1 sprites/mono.png 8bpp 10 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 130 7 13 0 0 normal
-1 sprites/mono.png 8bpp 10 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 25 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 40 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 55 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 70 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 85 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 100 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 115 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 130 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 145 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 160 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 175 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 190 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 205 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 220 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 235 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 250 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 265 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 280 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 295 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 310 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 325 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 340 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 355 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 370 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 385 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 400 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 415 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 430 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 445 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 460 150 7 13 0 0 normal
-1 sprites/mono.png 8bpp 475 150 7 13 0 0 normal
-1 sprites/mono.png 10 90 01 13 7 0 0
-1 sprites/mono.png 25 90 01 13 7 0 0
-1 sprites/mono.png 40 90 01 13 7 0 0
-1 sprites/mono.png 55 90 01 13 7 0 0
-1 sprites/mono.png 70 90 01 13 7 0 0
-1 sprites/mono.png 85 90 01 13 7 0 0
-1 sprites/mono.png 100 90 01 13 7 0 0
-1 sprites/mono.png 115 90 01 13 7 0 0
-1 sprites/mono.png 130 90 01 13 7 0 0
-1 sprites/mono.png 145 90 01 13 7 0 0
-1 sprites/mono.png 160 90 01 13 7 0 0
-1 sprites/mono.png 175 90 01 13 7 0 0
-1 sprites/mono.png 190 90 01 13 7 0 0
-1 sprites/mono.png 205 90 01 13 7 0 0
-1 sprites/mono.png 220 90 01 13 7 0 0
-1 sprites/mono.png 235 90 01 13 7 0 0
-1 sprites/mono.png 250 90 01 13 7 0 0
-1 sprites/mono.png 265 90 01 13 7 0 0
-1 sprites/mono.png 280 90 01 13 7 0 0
-1 sprites/mono.png 295 90 01 13 7 0 0
-1 sprites/mono.png 310 90 01 13 7 0 0
-1 sprites/mono.png 325 90 01 13 7 0 0
-1 sprites/mono.png 340 90 01 13 7 0 0
-1 sprites/mono.png 355 90 01 13 7 0 0
-1 sprites/mono.png 370 90 01 13 7 0 0
-1 sprites/mono.png 385 90 01 13 7 0 0
-1 sprites/mono.png 400 90 01 13 7 0 0
-1 sprites/mono.png 415 90 01 13 7 0 0
-1 sprites/mono.png 430 90 01 13 7 0 0
-1 sprites/mono.png 445 90 01 13 7 0 0
-1 sprites/mono.png 460 90 01 13 7 0 0
-1 sprites/mono.png 475 90 01 13 7 0 0
-1 sprites/mono.png 10 110 01 13 7 0 0
-1 sprites/mono.png 25 110 01 13 7 0 0
-1 sprites/mono.png 40 110 01 13 7 0 0
-1 sprites/mono.png 55 110 01 13 7 0 0
-1 sprites/mono.png 70 110 01 13 7 0 0
-1 sprites/mono.png 85 110 01 13 7 0 0
-1 sprites/mono.png 100 110 01 13 7 0 0
-1 sprites/mono.png 115 110 01 13 7 0 0
-1 sprites/mono.png 130 110 01 13 7 0 0
-1 sprites/mono.png 145 110 01 13 7 0 0
-1 sprites/mono.png 160 110 01 13 7 0 0
-1 sprites/mono.png 175 110 01 13 7 0 0
-1 sprites/mono.png 190 110 01 13 7 0 0
-1 sprites/mono.png 205 110 01 13 7 0 0
-1 sprites/mono.png 220 110 01 13 7 0 0
-1 sprites/mono.png 235 110 01 13 7 0 0
-1 sprites/mono.png 250 110 01 13 7 0 0
-1 sprites/mono.png 265 110 01 13 7 0 0
-1 sprites/mono.png 280 110 01 13 7 0 0
-1 sprites/mono.png 295 110 01 13 7 0 0
-1 sprites/mono.png 310 110 01 13 7 0 0
-1 sprites/mono.png 325 110 01 13 7 0 0
-1 sprites/mono.png 340 110 01 13 7 0 0
-1 sprites/mono.png 355 110 01 13 7 0 0
-1 sprites/mono.png 370 110 01 13 7 0 0
-1 sprites/mono.png 385 110 01 13 7 0 0
-1 sprites/mono.png 400 110 01 13 7 0 0
-1 sprites/mono.png 415 110 01 13 7 0 0
-1 sprites/mono.png 430 110 01 13 7 0 0
-1 sprites/mono.png 445 110 01 13 7 0 0
-1 sprites/mono.png 460 110 01 13 7 0 0
-1 sprites/mono.png 475 110 01 13 7 0 0
-1 sprites/mono.png 10 130 01 13 7 0 0
-1 sprites/mono.png 25 130 01 13 7 0 0
-1 sprites/mono.png 40 130 01 13 7 0 0
-1 sprites/mono.png 55 130 01 13 7 0 0
-1 sprites/mono.png 70 130 01 13 7 0 0
-1 sprites/mono.png 85 130 01 13 7 0 0
-1 sprites/mono.png 100 130 01 13 7 0 0
-1 sprites/mono.png 115 130 01 13 7 0 0
-1 sprites/mono.png 130 130 01 13 7 0 0
-1 sprites/mono.png 145 130 01 13 7 0 0
-1 sprites/mono.png 160 130 01 13 7 0 0
-1 sprites/mono.png 175 130 01 13 7 0 0
-1 sprites/mono.png 190 130 01 13 7 0 0
-1 sprites/mono.png 205 130 01 13 7 0 0
-1 sprites/mono.png 220 130 01 13 7 0 0
-1 sprites/mono.png 235 130 01 13 7 0 0
-1 sprites/mono.png 250 130 01 13 7 0 0
-1 sprites/mono.png 265 130 01 13 7 0 0
-1 sprites/mono.png 280 130 01 13 7 0 0
-1 sprites/mono.png 295 130 01 13 7 0 0
-1 sprites/mono.png 310 130 01 13 7 0 0
-1 sprites/mono.png 325 130 01 13 7 0 0
-1 sprites/mono.png 340 130 01 13 7 0 0
-1 sprites/mono.png 355 130 01 13 7 0 0
-1 sprites/mono.png 370 130 01 13 7 0 0
-1 sprites/mono.png 385 130 01 13 7 0 0
-1 sprites/mono.png 400 130 01 13 7 0 0
-1 sprites/mono.png 415 130 01 13 7 0 0
-1 sprites/mono.png 430 130 01 13 7 0 0
-1 sprites/mono.png 445 130 01 13 7 0 0
-1 sprites/mono.png 460 130 01 13 7 0 0
-1 sprites/mono.png 475 130 01 13 7 0 0
-1 sprites/mono.png 10 150 01 13 7 0 0
-1 sprites/mono.png 25 150 01 13 7 0 0
-1 sprites/mono.png 40 150 01 13 7 0 0
-1 sprites/mono.png 55 150 01 13 7 0 0
-1 sprites/mono.png 70 150 01 13 7 0 0
-1 sprites/mono.png 85 150 01 13 7 0 0
-1 sprites/mono.png 100 150 01 13 7 0 0
-1 sprites/mono.png 115 150 01 13 7 0 0
-1 sprites/mono.png 130 150 01 13 7 0 0
-1 sprites/mono.png 145 150 01 13 7 0 0
-1 sprites/mono.png 160 150 01 13 7 0 0
-1 sprites/mono.png 175 150 01 13 7 0 0
-1 sprites/mono.png 190 150 01 13 7 0 0
-1 sprites/mono.png 205 150 01 13 7 0 0
-1 sprites/mono.png 220 150 01 13 7 0 0
-1 sprites/mono.png 235 150 01 13 7 0 0
-1 sprites/mono.png 250 150 01 13 7 0 0
-1 sprites/mono.png 265 150 01 13 7 0 0
-1 sprites/mono.png 280 150 01 13 7 0 0
-1 sprites/mono.png 295 150 01 13 7 0 0
-1 sprites/mono.png 310 150 01 13 7 0 0
-1 sprites/mono.png 325 150 01 13 7 0 0
-1 sprites/mono.png 340 150 01 13 7 0 0
-1 sprites/mono.png 355 150 01 13 7 0 0
-1 sprites/mono.png 370 150 01 13 7 0 0
-1 sprites/mono.png 385 150 01 13 7 0 0
-1 sprites/mono.png 400 150 01 13 7 0 0
-1 sprites/mono.png 415 150 01 13 7 0 0
-1 sprites/mono.png 430 150 01 13 7 0 0
-1 sprites/mono.png 445 150 01 13 7 0 0
-1 sprites/mono.png 460 150 01 13 7 0 0
-1 sprites/mono.png 475 150 01 13 7 0 0
//U+0178 Latin Capital Letter Y With Diaeresis (only needed for mono as it is in the base set, but relocated by some code)
-1 * 0 12 01 03 01 78 01
-1 sprites/mono.png 8bpp 370 230 7 13 0 0 normal
-1 sprites/mono.png 370 230 01 13 7 0 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -8,9 +8,9 @@
//
-1 * 0 0C "One way road graphics"
-1 * 3 05 09 06
-1 sprites/oneway.png 8bpp 34 8 24 16 -12 -8 normal
-1 sprites/oneway.png 8bpp 66 8 24 16 -12 -8 normal
-1 sprites/oneway.png 8bpp 98 8 24 16 -12 -8 normal
-1 sprites/oneway.png 8bpp 130 8 24 16 -12 -8 normal
-1 sprites/oneway.png 8bpp 162 8 24 16 -12 -8 normal
-1 sprites/oneway.png 8bpp 194 8 24 16 -12 -8 normal
-1 sprites/oneway.png 34 8 01 16 24 -12 -8
-1 sprites/oneway.png 66 8 01 16 24 -12 -8
-1 sprites/oneway.png 98 8 01 16 24 -12 -8
-1 sprites/oneway.png 130 8 01 16 24 -12 -8
-1 sprites/oneway.png 162 8 01 16 24 -12 -8
-1 sprites/oneway.png 194 8 01 16 24 -12 -8

View File

@@ -1,6 +1,6 @@
// Automatically generated by GRFCODEC. Do not modify!
// (Info version 32)
// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags
// (Info version 7)
// Format: spritenum.pngfile xpos ypos compression ysize xsize xrel yrel
//
// $Id$
//
@@ -14,6 +14,13 @@
// allowing it to be used.
//
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use a reserved GRF ID
// @@WARNING DISABLE 101
// -- End of NFO Renum 'settings' --
//
//
// Number of sprites, it is wrong, but GRFcodec automagically gets it right.
//
@@ -103,4 +110,3 @@
#include "rivers/arctic.nfo"
#include "rivers/tropic.nfo"
#include "rivers/toyland.nfo"
#include "tunnel_portals.nfo"

View File

@@ -5,174 +5,179 @@
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use more sprites.
// We are the 'authority' on how many sprites may be used.
// @@WARNING DISABLE 60
// -- End of NFO Renum 'settings' --
//
-1 * 0 0C "OpenTTD GUI graphics"
-1 * 3 05 15 A8
-1 sprites/openttdgui.png 8bpp 66 8 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 146 8 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 226 8 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 306 8 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 386 8 64 31 -31 -1 normal
-1 sprites/openttdgui.png 8bpp 466 8 64 39 -31 -1 normal
-1 sprites/openttdgui.png 8bpp 546 8 64 31 -31 -1 normal
-1 sprites/openttdgui.png 8bpp 626 8 64 23 -31 7 normal
-1 sprites/openttdgui.png 8bpp 706 8 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 2 72 64 23 -31 7 normal
-1 sprites/openttdgui.png 8bpp 82 72 64 31 -31 7 normal
-1 sprites/openttdgui.png 8bpp 162 72 64 39 -31 -1 normal
-1 sprites/openttdgui.png 8bpp 242 72 23 26 0 0 normal
-1 sprites/openttdgui.png 8bpp 274 72 24 26 0 0 normal
-1 sprites/openttdgui.png 8bpp 306 72 4 8 28 16 normal
-1 sprites/openttdgui.png 8bpp 322 72 4 9 0 1 normal
-1 sprites/openttdgui.png 8bpp 338 72 32 23 0 1 normal
-1 sprites/openttdgui.png 8bpp 386 72 4 8 -31 15 normal
-1 sprites/openttdgui.png 8bpp 402 72 4 9 -3 0 normal
-1 sprites/openttdgui.png 8bpp 418 72 32 23 -31 0 normal
-1 sprites/openttdgui.png 8bpp 466 72 4 8 28 16 normal
-1 sprites/openttdgui.png 8bpp 482 72 4 9 0 1 normal
-1 sprites/openttdgui.png 8bpp 498 72 32 23 0 1 normal
-1 sprites/openttdgui.png 8bpp 546 72 4 8 -31 15 normal
-1 sprites/openttdgui.png 8bpp 562 72 4 9 -3 0 normal
-1 sprites/openttdgui.png 8bpp 578 72 32 23 -31 0 normal
-1 sprites/openttdgui.png 8bpp 626 72 4 8 28 16 normal
-1 sprites/openttdgui.png 8bpp 642 72 4 9 0 1 normal
-1 sprites/openttdgui.png 8bpp 658 72 32 23 0 1 normal
-1 sprites/openttdgui.png 8bpp 706 72 4 8 -31 15 normal
-1 sprites/openttdgui.png 8bpp 722 72 4 9 -3 0 normal
-1 sprites/openttdgui.png 8bpp 738 72 32 23 -31 0 normal
-1 sprites/openttdgui.png 8bpp 786 72 4 8 28 16 normal
-1 sprites/openttdgui.png 8bpp 2 136 4 9 0 1 normal
-1 sprites/openttdgui.png 8bpp 18 136 32 23 0 1 normal
-1 sprites/openttdgui.png 8bpp 66 136 4 8 -31 15 normal
-1 sprites/openttdgui.png 8bpp 82 136 4 9 -3 0 normal
-1 sprites/openttdgui.png 8bpp 98 136 32 23 -31 0 normal
-1 sprites/openttdgui.png 8bpp 146 136 10 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 162 136 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 178 136 7 9 0 0 normal
-1 sprites/openttdgui.png 8bpp 194 136 9 7 0 0 normal
-1 sprites/openttdgui.png 8bpp 210 136 9 7 0 0 normal
-1 sprites/openttdgui.png 8bpp 226 136 10 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 242 136 7 7 0 0 normal
-1 sprites/openttdgui.png 8bpp 258 136 7 4 1 2 normal
-1 sprites/openttdgui.png 8bpp 274 136 7 4 1 2 normal
-1 sprites/openttdgui.png 8bpp 290 136 4 7 1 1 normal
-1 sprites/openttdgui.png 8bpp 306 136 4 7 2 1 normal
-1 sprites/openttdgui.png 8bpp 322 136 8 8 1 1 normal
-1 sprites/openttdgui.png 8bpp 338 136 9 9 0 0 normal
-1 sprites/openttdgui.png 8bpp 354 136 7 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 370 136 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 386 136 20 13 0 4 normal
-1 sprites/openttdgui.png 8bpp 418 136 56 36 0 0 normal
-1 sprites/openttdgui.png 8bpp 482 136 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 514 136 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 562 136 20 16 0 3 normal
-1 sprites/openttdgui.png 8bpp 594 136 56 43 0 0 normal
-1 sprites/openttdgui.png 8bpp 658 136 20 19 0 1 normal
-1 sprites/openttdgui.png 8bpp 690 136 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 738 136 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 2 200 31 31 1 1 normal
-1 sprites/openttdgui.png 8bpp 50 200 20 15 0 3 normal
-1 sprites/openttdgui.png 8bpp 82 200 56 36 0 0 normal
-1 sprites/openttdgui.png 8bpp 146 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 178 200 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 226 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 258 200 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 306 200 19 11 0 6 normal
-1 sprites/openttdgui.png 8bpp 338 200 56 36 0 0 normal
-1 sprites/openttdgui.png 8bpp 402 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 434 200 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 482 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 514 200 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 562 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 594 200 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 626 200 52 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 690 200 29 33 -27 -16 normal
-1 sprites/openttdgui.png 8bpp 738 200 35 39 -29 -29 normal
-1 sprites/openttdgui.png 8bpp 2 264 29 34 1 -17 normal
-1 sprites/openttdgui.png 8bpp 50 264 34 39 -3 -28 normal
-1 sprites/openttdgui.png 8bpp 98 264 20 13 0 4 normal
-1 sprites/openttdgui.png 8bpp 130 264 56 36 0 0 normal
-1 sprites/openttdgui.png 8bpp 194 264 20 13 0 4 normal
-1 sprites/openttdgui.png 8bpp 226 264 56 36 0 0 normal
-1 sprites/openttdgui.png 8bpp 290 264 39 18 -9 -9 normal
-1 sprites/openttdgui.png 8bpp 338 264 72 44 -16 -35 normal
-1 sprites/openttdgui.png 8bpp 418 264 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 450 264 72 44 -16 -35 normal
-1 sprites/openttdgui.png 8bpp 530 264 18 18 1 1 normal
-1 sprites/openttdgui.png 8bpp 562 264 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 594 264 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 642 264 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 674 264 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 706 264 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 738 264 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 770 264 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 2 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 34 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 66 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 98 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 130 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 162 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 194 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 226 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 258 328 16 16 0 0 normal
-1 sprites/openttdgui.png 8bpp 290 328 16 16 0 0 normal
-1 sprites/openttdgui.png 8bpp 322 328 16 16 0 0 normal
-1 sprites/openttdgui.png 8bpp 354 328 16 16 0 0 normal
-1 sprites/openttdgui.png 8bpp 386 328 35 31 0 0 normal
-1 sprites/openttdgui.png 8bpp 434 328 33 30 0 0 normal
-1 sprites/openttdgui.png 8bpp 482 328 36 33 0 0 normal
-1 sprites/openttdgui.png 8bpp 530 328 37 33 0 0 normal
-1 sprites/openttdgui.png 8bpp 578 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 610 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 642 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 674 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 706 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 738 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 770 328 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 2 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 34 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 66 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 98 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 130 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 162 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 194 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 226 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 258 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 290 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 322 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 354 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 386 376 18 18 0 0 normal
-1 sprites/openttdgui.png 8bpp 418 376 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 450 376 19 22 0 0 normal
-1 sprites/openttdgui.png 8bpp 482 376 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 514 376 54 44 -16 -35 normal
-1 sprites/openttdgui.png 8bpp 578 376 7 7 3 4 normal
-1 sprites/openttdgui.png 8bpp 594 376 7 7 3 4 normal
-1 sprites/openttdgui.png 8bpp 610 376 10 9 2 3 normal
-1 sprites/openttdgui.png 8bpp 626 376 10 9 2 3 normal
-1 sprites/openttdgui.png 8bpp 642 376 11 7 2 1 normal
-1 sprites/openttdgui.png 8bpp 658 376 9 9 3 3 normal
-1 sprites/openttdgui.png 8bpp 674 376 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 706 376 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 738 376 32 32 0 0 normal
-1 sprites/openttdgui.png 8bpp 786 376 10 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 2 440 10 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 18 440 7 7 0 0 normal
-1 sprites/openttdgui.png 8bpp 34 440 14 13 4 4 normal
-1 sprites/openttdgui.png 8bpp 66 440 7 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 82 440 7 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 98 440 7 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 114 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 130 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 146 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 162 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 178 440 8 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 194 440 13 10 0 -2 normal
-1 sprites/openttdgui.png 8bpp 215 440 9 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 232 440 8 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 248 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 264 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 280 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 296 440 8 8 0 0 normal
-1 sprites/openttdgui.png 8bpp 312 440 14 10 0 0 normal
-1 sprites/openttdgui.png 8bpp 328 440 14 10 0 0 normal
-1 * 3 05 15 A2
-1 sprites/openttdgui.png 66 8 09 31 64 -31 7
-1 sprites/openttdgui.png 146 8 09 31 64 -31 7
-1 sprites/openttdgui.png 226 8 09 31 64 -31 7
-1 sprites/openttdgui.png 306 8 09 31 64 -31 7
-1 sprites/openttdgui.png 386 8 09 31 64 -31 -1
-1 sprites/openttdgui.png 466 8 09 39 64 -31 -1
-1 sprites/openttdgui.png 546 8 09 31 64 -31 -1
-1 sprites/openttdgui.png 626 8 09 23 64 -31 7
-1 sprites/openttdgui.png 706 8 09 31 64 -31 7
-1 sprites/openttdgui.png 2 72 09 23 64 -31 7
-1 sprites/openttdgui.png 82 72 09 31 64 -31 7
-1 sprites/openttdgui.png 162 72 09 39 64 -31 -1
-1 sprites/openttdgui.png 242 72 01 26 23 0 0
-1 sprites/openttdgui.png 274 72 09 26 24 0 0
-1 sprites/openttdgui.png 306 72 01 8 4 28 16
-1 sprites/openttdgui.png 322 72 01 9 4 0 1
-1 sprites/openttdgui.png 338 72 09 23 32 0 1
-1 sprites/openttdgui.png 386 72 01 8 4 -31 15
-1 sprites/openttdgui.png 402 72 01 9 4 -3 0
-1 sprites/openttdgui.png 418 72 09 23 32 -31 0
-1 sprites/openttdgui.png 466 72 01 8 4 28 16
-1 sprites/openttdgui.png 482 72 01 9 4 0 1
-1 sprites/openttdgui.png 498 72 09 23 32 0 1
-1 sprites/openttdgui.png 546 72 01 8 4 -31 15
-1 sprites/openttdgui.png 562 72 01 9 4 -3 0
-1 sprites/openttdgui.png 578 72 09 23 32 -31 0
-1 sprites/openttdgui.png 626 72 01 8 4 28 16
-1 sprites/openttdgui.png 642 72 01 9 4 0 1
-1 sprites/openttdgui.png 658 72 09 23 32 0 1
-1 sprites/openttdgui.png 706 72 01 8 4 -31 15
-1 sprites/openttdgui.png 722 72 01 9 4 -3 0
-1 sprites/openttdgui.png 738 72 09 23 32 -31 0
-1 sprites/openttdgui.png 786 72 01 8 4 28 16
-1 sprites/openttdgui.png 2 136 01 9 4 0 1
-1 sprites/openttdgui.png 18 136 09 23 32 0 1
-1 sprites/openttdgui.png 66 136 01 8 4 -31 15
-1 sprites/openttdgui.png 82 136 01 9 4 -3 0
-1 sprites/openttdgui.png 98 136 09 23 32 -31 0
-1 sprites/openttdgui.png 146 136 09 10 10 0 0
-1 sprites/openttdgui.png 162 136 01 8 8 0 0
-1 sprites/openttdgui.png 178 136 09 9 7 0 0
-1 sprites/openttdgui.png 194 136 01 7 9 0 0
-1 sprites/openttdgui.png 210 136 01 7 9 0 0
-1 sprites/openttdgui.png 226 136 01 10 10 0 0
-1 sprites/openttdgui.png 242 136 09 7 7 0 0
-1 sprites/openttdgui.png 258 136 09 4 7 1 2
-1 sprites/openttdgui.png 274 136 09 4 7 1 2
-1 sprites/openttdgui.png 290 136 09 7 4 1 1
-1 sprites/openttdgui.png 306 136 09 7 4 2 1
-1 sprites/openttdgui.png 322 136 01 8 8 1 1
-1 sprites/openttdgui.png 338 136 01 9 9 0 0
-1 sprites/openttdgui.png 354 136 01 8 7 0 0
-1 sprites/openttdgui.png 370 136 01 8 8 0 0
-1 sprites/openttdgui.png 386 136 09 13 20 0 4
-1 sprites/openttdgui.png 418 136 03 36 56 0 0
-1 sprites/openttdgui.png 482 136 01 20 20 0 0
-1 sprites/openttdgui.png 514 136 01 32 32 0 0
-1 sprites/openttdgui.png 562 136 09 16 20 0 3
-1 sprites/openttdgui.png 594 136 03 43 56 0 0
-1 sprites/openttdgui.png 658 136 01 19 20 0 1
-1 sprites/openttdgui.png 690 136 01 32 32 0 0
-1 sprites/openttdgui.png 738 136 01 20 20 0 0
-1 sprites/openttdgui.png 2 200 01 31 31 1 1
-1 sprites/openttdgui.png 50 200 09 15 20 0 3
-1 sprites/openttdgui.png 82 200 03 36 56 0 0
-1 sprites/openttdgui.png 146 200 01 20 20 0 0
-1 sprites/openttdgui.png 178 200 01 32 32 0 0
-1 sprites/openttdgui.png 226 200 01 20 20 0 0
-1 sprites/openttdgui.png 258 200 01 32 32 0 0
-1 sprites/openttdgui.png 306 200 09 11 19 0 6
-1 sprites/openttdgui.png 338 200 03 36 56 0 0
-1 sprites/openttdgui.png 402 200 01 20 20 0 0
-1 sprites/openttdgui.png 434 200 01 32 32 0 0
-1 sprites/openttdgui.png 482 200 01 20 20 0 0
-1 sprites/openttdgui.png 514 200 01 32 32 0 0
-1 sprites/openttdgui.png 562 200 09 20 20 0 0
-1 sprites/openttdgui.png 594 200 09 20 20 0 0
-1 sprites/openttdgui.png 626 200 03 32 52 0 0
-1 sprites/openttdgui.png 690 200 09 33 29 -27 -16
-1 sprites/openttdgui.png 738 200 09 39 35 -29 -29
-1 sprites/openttdgui.png 2 264 09 34 29 1 -17
-1 sprites/openttdgui.png 50 264 09 39 34 -3 -28
-1 sprites/openttdgui.png 98 264 09 13 20 0 4
-1 sprites/openttdgui.png 130 264 03 36 56 0 0
-1 sprites/openttdgui.png 194 264 09 13 20 0 4
-1 sprites/openttdgui.png 226 264 03 36 56 0 0
-1 sprites/openttdgui.png 290 264 01 18 39 -9 -9
-1 sprites/openttdgui.png 338 264 01 44 72 -16 -35
-1 sprites/openttdgui.png 418 264 01 20 20 0 0
-1 sprites/openttdgui.png 450 264 01 44 72 -16 -35
-1 sprites/openttdgui.png 530 264 09 18 18 1 1
-1 sprites/openttdgui.png 562 264 01 20 20 0 0
-1 sprites/openttdgui.png 594 264 01 32 32 0 0
-1 sprites/openttdgui.png 642 264 01 18 18 0 0
-1 sprites/openttdgui.png 674 264 01 18 18 0 0
-1 sprites/openttdgui.png 706 264 01 18 18 0 0
-1 sprites/openttdgui.png 738 264 01 18 18 0 0
-1 sprites/openttdgui.png 770 264 01 18 18 0 0
-1 sprites/openttdgui.png 2 328 01 18 18 0 0
-1 sprites/openttdgui.png 34 328 01 18 18 0 0
-1 sprites/openttdgui.png 66 328 01 18 18 0 0
-1 sprites/openttdgui.png 98 328 01 18 18 0 0
-1 sprites/openttdgui.png 130 328 01 18 18 0 0
-1 sprites/openttdgui.png 162 328 01 18 18 0 0
-1 sprites/openttdgui.png 194 328 01 18 18 0 0
-1 sprites/openttdgui.png 226 328 01 18 18 0 0
-1 sprites/openttdgui.png 258 328 09 16 16 0 0
-1 sprites/openttdgui.png 290 328 01 16 16 0 0
-1 sprites/openttdgui.png 322 328 01 16 16 0 0
-1 sprites/openttdgui.png 354 328 01 16 16 0 0
-1 sprites/openttdgui.png 386 328 09 31 35 0 0
-1 sprites/openttdgui.png 434 328 01 30 33 0 0
-1 sprites/openttdgui.png 482 328 01 33 36 0 0
-1 sprites/openttdgui.png 530 328 01 33 37 0 0
-1 sprites/openttdgui.png 578 328 09 18 18 0 0
-1 sprites/openttdgui.png 610 328 09 18 18 0 0
-1 sprites/openttdgui.png 642 328 09 18 18 0 0
-1 sprites/openttdgui.png 674 328 09 18 18 0 0
-1 sprites/openttdgui.png 706 328 09 18 18 0 0
-1 sprites/openttdgui.png 738 328 09 18 18 0 0
-1 sprites/openttdgui.png 770 328 09 18 18 0 0
-1 sprites/openttdgui.png 2 376 09 18 18 0 0
-1 sprites/openttdgui.png 34 376 09 18 18 0 0
-1 sprites/openttdgui.png 66 376 09 18 18 0 0
-1 sprites/openttdgui.png 98 376 09 18 18 0 0
-1 sprites/openttdgui.png 130 376 09 18 18 0 0
-1 sprites/openttdgui.png 162 376 09 18 18 0 0
-1 sprites/openttdgui.png 194 376 09 18 18 0 0
-1 sprites/openttdgui.png 226 376 09 18 18 0 0
-1 sprites/openttdgui.png 258 376 09 18 18 0 0
-1 sprites/openttdgui.png 290 376 09 18 18 0 0
-1 sprites/openttdgui.png 322 376 09 18 18 0 0
-1 sprites/openttdgui.png 354 376 09 18 18 0 0
-1 sprites/openttdgui.png 386 376 09 18 18 0 0
-1 sprites/openttdgui.png 418 376 01 20 20 0 0
-1 sprites/openttdgui.png 450 376 01 22 19 0 0
-1 sprites/openttdgui.png 482 376 01 20 20 0 0
-1 sprites/openttdgui.png 514 376 01 44 54 -16 -35
-1 sprites/openttdgui.png 578 376 01 7 7 3 4
-1 sprites/openttdgui.png 594 376 01 7 7 3 4
-1 sprites/openttdgui.png 610 376 01 9 10 2 3
-1 sprites/openttdgui.png 626 376 01 9 10 2 3
-1 sprites/openttdgui.png 642 376 01 7 11 2 1
-1 sprites/openttdgui.png 658 376 01 9 9 3 3
-1 sprites/openttdgui.png 674 376 09 20 20 0 0
-1 sprites/openttdgui.png 706 376 09 20 20 0 0
-1 sprites/openttdgui.png 738 376 09 32 32 0 0
-1 sprites/openttdgui.png 786 376 09 10 10 0 0
-1 sprites/openttdgui.png 2 440 09 10 10 0 0
-1 sprites/openttdgui.png 18 440 09 7 7 0 0
-1 sprites/openttdgui.png 34 440 09 13 14 4 4
-1 sprites/openttdgui.png 66 440 09 8 7 0 0
-1 sprites/openttdgui.png 82 440 09 8 7 0 0
-1 sprites/openttdgui.png 98 440 09 8 7 0 0
-1 sprites/openttdgui.png 114 440 01 8 8 0 0
-1 sprites/openttdgui.png 130 440 01 8 8 0 0
-1 sprites/openttdgui.png 146 440 01 8 8 0 0
-1 sprites/openttdgui.png 162 440 01 8 8 0 0
-1 sprites/openttdgui.png 178 440 01 10 8 0 0
-1 sprites/openttdgui.png 194 440 09 10 13 0 -2
-1 sprites/openttdgui.png 215 440 09 10 9 0 0
-1 sprites/openttdgui.png 232 440 09 10 8 0 0
// -- NFO Renum 'settings' --
// Undo disabling the warning
// @@WARNING ENABLE 60
// -- End of NFO Renum 'settings' --

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -8,271 +8,271 @@
//
-1 * 0 0C "Arctic river graphics by andythenorth (Andrew Parkhouse)"
-1 * 4 01 05 01 3C
-1 sprites/arctic_snowy.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/arctic_snowy.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/arctic_snowy.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/arctic_snowy.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/arctic_snowy.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/arctic_snowy.png 10 10 09 19 38 -5 0
-1 sprites/arctic_snowy.png 58 10 09 18 38 -5 13
-1 sprites/arctic_snowy.png 106 10 09 18 38 -31 13
-1 sprites/arctic_snowy.png 154 10 09 19 38 -31 0
-1 sprites/arctic_snowy.png 202 10 09 9 19 14 11
-1 sprites/arctic_snowy.png 234 10 09 9 16 -7 22
-1 sprites/arctic_snowy.png 266 10 09 9 19 -31 11
-1 sprites/arctic_snowy.png 298 10 09 9 16 -7 0
-1 sprites/arctic_snowy.png 330 10 09 6 8 25 13
-1 sprites/arctic_snowy.png 346 10 09 4 12 -5 27
-1 sprites/arctic_snowy.png 364 10 09 6 8 -31 13
-1 sprites/arctic_snowy.png 380 10 09 5 12 -5 0
-1 sprites/arctic_snowy.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/arctic_snowy.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/arctic_snowy.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/arctic_snowy.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/arctic_snowy.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/arctic_snowy.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/arctic_snowy.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/arctic_snowy.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/arctic_snowy.png 10 40 09 11 40 -7 0
-1 sprites/arctic_snowy.png 58 40 09 18 39 -6 5
-1 sprites/arctic_snowy.png 106 40 09 11 38 -31 12
-1 sprites/arctic_snowy.png 154 40 09 18 39 -31 0
-1 sprites/arctic_snowy.png 202 40 09 6 20 13 5
-1 sprites/arctic_snowy.png 234 40 09 7 13 -6 16
-1 sprites/arctic_snowy.png 266 40 09 6 20 -31 12
-1 sprites/arctic_snowy.png 298 40 09 7 13 -5 0
-1 sprites/arctic_snowy.png 330 40 09 5 8 25 6
-1 sprites/arctic_snowy.png 346 40 09 3 12 -5 20
-1 sprites/arctic_snowy.png 364 40 09 4 8 -31 13
-1 sprites/arctic_snowy.png 380 40 09 4 15 -7 0
-1 sprites/arctic_snowy.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/arctic_snowy.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/arctic_snowy.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/arctic_snowy.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/arctic_snowy.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/arctic_snowy.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/arctic_snowy.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/arctic_snowy.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/arctic_snowy.png 10 70 09 20 38 -5 -8
-1 sprites/arctic_snowy.png 58 70 09 26 38 -5 5
-1 sprites/arctic_snowy.png 106 70 09 20 37 -31 11
-1 sprites/arctic_snowy.png 154 70 09 27 38 -31 -8
-1 sprites/arctic_snowy.png 202 70 09 9 16 17 3
-1 sprites/arctic_snowy.png 234 70 09 9 15 -7 22
-1 sprites/arctic_snowy.png 266 70 09 9 16 -31 11
-1 sprites/arctic_snowy.png 298 70 09 9 15 -6 -8
-1 sprites/arctic_snowy.png 330 70 09 7 8 25 5
-1 sprites/arctic_snowy.png 346 70 09 5 10 -4 27
-1 sprites/arctic_snowy.png 364 70 09 7 8 -31 11
-1 sprites/arctic_snowy.png 380 70 09 6 12 -5 -8
-1 sprites/arctic_snowy.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/arctic_snowy.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/arctic_snowy.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/arctic_snowy.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/arctic_snowy.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/arctic_snowy.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/arctic_snowy.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/arctic_snowy.png 10 100 09 18 39 -6 0
-1 sprites/arctic_snowy.png 58 100 09 11 38 -5 12
-1 sprites/arctic_snowy.png 106 100 09 18 39 -31 5
-1 sprites/arctic_snowy.png 154 100 09 11 40 -32 0
-1 sprites/arctic_snowy.png 202 100 09 6 20 13 12
-1 sprites/arctic_snowy.png 234 100 09 7 13 -5 16
-1 sprites/arctic_snowy.png 266 100 09 6 20 -31 5
-1 sprites/arctic_snowy.png 298 100 09 7 13 -6 0
-1 sprites/arctic_snowy.png 330 100 09 4 8 26 13
-1 sprites/arctic_snowy.png 346 100 09 3 12 -5 20
-1 sprites/arctic_snowy.png 364 100 09 5 8 -31 6
-1 sprites/arctic_snowy.png 380 100 09 4 15 -6 0
-1 sprites/arctic_snowy.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/arctic_snowy.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/arctic_snowy.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/arctic_snowy.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/arctic_snowy.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/arctic_snowy.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/arctic_snowy.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/arctic_snowy.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/arctic_snowy.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/arctic_snowy.png 10 130 09 27 38 -5 -8
-1 sprites/arctic_snowy.png 58 130 09 20 37 -4 11
-1 sprites/arctic_snowy.png 106 130 09 26 37 -31 5
-1 sprites/arctic_snowy.png 154 130 09 20 38 -31 -8
-1 sprites/arctic_snowy.png 202 130 09 9 16 17 11
-1 sprites/arctic_snowy.png 234 130 09 9 15 -6 22
-1 sprites/arctic_snowy.png 266 130 09 9 16 -31 3
-1 sprites/arctic_snowy.png 298 130 09 9 15 -7 -8
-1 sprites/arctic_snowy.png 330 130 09 7 8 25 11
-1 sprites/arctic_snowy.png 346 130 09 5 10 -4 26
-1 sprites/arctic_snowy.png 364 130 09 7 8 -31 5
-1 sprites/arctic_snowy.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 30 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/arctic_brown.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/arctic_brown.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/arctic_brown.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/arctic_brown.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/arctic_brown.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/arctic_brown.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/arctic_brown.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/arctic_brown.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/arctic_brown.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/arctic_brown.png 10 10 09 19 38 -5 0
-1 sprites/arctic_brown.png 58 10 09 18 38 -5 13
-1 sprites/arctic_brown.png 106 10 09 18 38 -31 13
-1 sprites/arctic_brown.png 154 10 09 19 38 -31 0
-1 sprites/arctic_brown.png 202 10 09 9 19 14 11
-1 sprites/arctic_brown.png 234 10 09 9 16 -7 22
-1 sprites/arctic_brown.png 266 10 09 9 19 -31 11
-1 sprites/arctic_brown.png 298 10 09 9 16 -7 0
-1 sprites/arctic_brown.png 330 10 09 6 8 25 13
-1 sprites/arctic_brown.png 346 10 09 4 12 -5 27
-1 sprites/arctic_brown.png 364 10 09 6 8 -31 13
-1 sprites/arctic_brown.png 380 10 09 5 12 -5 0
-1 sprites/arctic_brown.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/arctic_brown.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/arctic_brown.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/arctic_brown.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/arctic_brown.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/arctic_brown.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/arctic_brown.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/arctic_brown.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/arctic_brown.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/arctic_brown.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/arctic_brown.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/arctic_brown.png 10 40 09 11 40 -7 0
-1 sprites/arctic_brown.png 58 40 09 18 39 -6 5
-1 sprites/arctic_brown.png 106 40 09 11 38 -31 12
-1 sprites/arctic_brown.png 154 40 09 18 39 -31 0
-1 sprites/arctic_brown.png 202 40 09 6 20 13 5
-1 sprites/arctic_brown.png 234 40 09 7 13 -6 16
-1 sprites/arctic_brown.png 266 40 09 6 20 -31 12
-1 sprites/arctic_brown.png 298 40 09 7 13 -5 0
-1 sprites/arctic_brown.png 330 40 09 5 8 25 6
-1 sprites/arctic_brown.png 346 40 09 3 12 -5 20
-1 sprites/arctic_brown.png 364 40 09 4 8 -31 13
-1 sprites/arctic_brown.png 380 40 09 4 15 -7 0
-1 sprites/arctic_brown.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/arctic_brown.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/arctic_brown.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/arctic_brown.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/arctic_brown.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/arctic_brown.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/arctic_brown.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/arctic_brown.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/arctic_brown.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/arctic_brown.png 10 70 09 20 38 -5 -8
-1 sprites/arctic_brown.png 58 70 09 26 38 -5 5
-1 sprites/arctic_brown.png 106 70 09 20 37 -31 11
-1 sprites/arctic_brown.png 154 70 09 27 38 -31 -8
-1 sprites/arctic_brown.png 202 70 09 9 16 17 3
-1 sprites/arctic_brown.png 234 70 09 9 15 -7 22
-1 sprites/arctic_brown.png 266 70 09 9 16 -31 11
-1 sprites/arctic_brown.png 298 70 09 9 15 -6 -8
-1 sprites/arctic_brown.png 330 70 09 7 8 25 5
-1 sprites/arctic_brown.png 346 70 09 5 10 -4 27
-1 sprites/arctic_brown.png 364 70 09 7 8 -31 11
-1 sprites/arctic_brown.png 380 70 09 6 12 -5 -8
-1 sprites/arctic_brown.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/arctic_brown.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/arctic_brown.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/arctic_brown.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/arctic_brown.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/arctic_brown.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/arctic_brown.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/arctic_brown.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/arctic_brown.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/arctic_brown.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/arctic_brown.png 10 100 09 18 39 -6 0
-1 sprites/arctic_brown.png 58 100 09 11 38 -5 12
-1 sprites/arctic_brown.png 106 100 09 18 39 -31 5
-1 sprites/arctic_brown.png 154 100 09 11 40 -32 0
-1 sprites/arctic_brown.png 202 100 09 6 20 13 12
-1 sprites/arctic_brown.png 234 100 09 7 13 -5 16
-1 sprites/arctic_brown.png 266 100 09 6 20 -31 5
-1 sprites/arctic_brown.png 298 100 09 7 13 -6 0
-1 sprites/arctic_brown.png 330 100 09 4 8 26 13
-1 sprites/arctic_brown.png 346 100 09 3 12 -5 20
-1 sprites/arctic_brown.png 364 100 09 5 8 -31 6
-1 sprites/arctic_brown.png 380 100 09 4 15 -6 0
-1 sprites/arctic_brown.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/arctic_brown.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/arctic_brown.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/arctic_brown.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/arctic_brown.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/arctic_brown.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/arctic_brown.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/arctic_brown.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/arctic_brown.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/arctic_brown.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/arctic_brown.png 10 130 09 27 38 -5 -8
-1 sprites/arctic_brown.png 58 130 09 20 37 -4 11
-1 sprites/arctic_brown.png 106 130 09 26 37 -31 5
-1 sprites/arctic_brown.png 154 130 09 20 38 -31 -8
-1 sprites/arctic_brown.png 202 130 09 9 16 17 11
-1 sprites/arctic_brown.png 234 130 09 9 15 -6 22
-1 sprites/arctic_brown.png 266 130 09 9 16 -31 3
-1 sprites/arctic_brown.png 298 130 09 9 15 -7 -8
-1 sprites/arctic_brown.png 330 130 09 7 8 25 11
-1 sprites/arctic_brown.png 346 130 09 5 10 -4 26
-1 sprites/arctic_brown.png 364 130 09 7 8 -31 5
-1 sprites/arctic_brown.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 31 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/arctic_snowy.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/arctic_snowy.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/arctic_snowy.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/arctic_snowy.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/arctic_snowy.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/arctic_snowy.png 10 210 09 19 38 -5 0
-1 sprites/arctic_snowy.png 58 210 09 18 38 -5 13
-1 sprites/arctic_snowy.png 106 210 09 18 38 -31 13
-1 sprites/arctic_snowy.png 154 210 09 19 38 -31 0
-1 sprites/arctic_snowy.png 202 210 09 9 19 14 11
-1 sprites/arctic_snowy.png 234 210 09 9 16 -7 22
-1 sprites/arctic_snowy.png 266 210 09 9 19 -31 11
-1 sprites/arctic_snowy.png 298 210 09 9 16 -7 0
-1 sprites/arctic_snowy.png 330 210 09 6 8 25 13
-1 sprites/arctic_snowy.png 346 210 09 4 12 -5 27
-1 sprites/arctic_snowy.png 364 210 09 6 8 -31 13
-1 sprites/arctic_snowy.png 380 210 09 5 12 -5 0
-1 sprites/arctic_snowy.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/arctic_snowy.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/arctic_snowy.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/arctic_snowy.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/arctic_snowy.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/arctic_snowy.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/arctic_snowy.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/arctic_snowy.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/arctic_snowy.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/arctic_snowy.png 10 240 09 11 40 -7 0
-1 sprites/arctic_snowy.png 58 240 09 18 39 -6 5
-1 sprites/arctic_snowy.png 106 240 09 11 38 -31 12
-1 sprites/arctic_snowy.png 154 240 09 18 39 -31 0
-1 sprites/arctic_snowy.png 202 240 09 6 20 13 5
-1 sprites/arctic_snowy.png 234 240 09 7 13 -6 16
-1 sprites/arctic_snowy.png 266 240 09 6 20 -31 12
-1 sprites/arctic_snowy.png 298 240 09 7 13 -5 0
-1 sprites/arctic_snowy.png 330 240 09 5 8 25 6
-1 sprites/arctic_snowy.png 346 240 09 3 12 -5 20
-1 sprites/arctic_snowy.png 364 240 09 4 8 -31 13
-1 sprites/arctic_snowy.png 380 240 09 4 15 -7 0
-1 sprites/arctic_snowy.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/arctic_snowy.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/arctic_snowy.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/arctic_snowy.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/arctic_snowy.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/arctic_snowy.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/arctic_snowy.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/arctic_snowy.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/arctic_snowy.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/arctic_snowy.png 10 270 09 20 38 -5 -8
-1 sprites/arctic_snowy.png 58 270 09 26 38 -5 5
-1 sprites/arctic_snowy.png 106 270 09 20 37 -31 11
-1 sprites/arctic_snowy.png 154 270 09 27 38 -31 -8
-1 sprites/arctic_snowy.png 202 270 09 9 16 17 3
-1 sprites/arctic_snowy.png 234 270 09 9 15 -7 22
-1 sprites/arctic_snowy.png 266 270 09 9 16 -31 11
-1 sprites/arctic_snowy.png 298 270 09 9 15 -6 -8
-1 sprites/arctic_snowy.png 330 270 09 7 8 25 5
-1 sprites/arctic_snowy.png 346 270 09 5 10 -4 27
-1 sprites/arctic_snowy.png 364 270 09 7 8 -31 11
-1 sprites/arctic_snowy.png 380 270 09 6 12 -5 -8
-1 sprites/arctic_snowy.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/arctic_snowy.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/arctic_snowy.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/arctic_snowy.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/arctic_snowy.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/arctic_snowy.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/arctic_snowy.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/arctic_snowy.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/arctic_snowy.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/arctic_snowy.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/arctic_snowy.png 10 300 09 18 39 -6 0
-1 sprites/arctic_snowy.png 58 300 09 11 38 -5 12
-1 sprites/arctic_snowy.png 106 300 09 18 39 -31 5
-1 sprites/arctic_snowy.png 154 300 09 11 40 -32 0
-1 sprites/arctic_snowy.png 202 300 09 6 20 13 12
-1 sprites/arctic_snowy.png 234 300 09 7 13 -5 16
-1 sprites/arctic_snowy.png 266 300 09 6 20 -31 5
-1 sprites/arctic_snowy.png 298 300 09 7 13 -6 0
-1 sprites/arctic_snowy.png 330 300 09 4 8 26 13
-1 sprites/arctic_snowy.png 346 300 09 3 12 -5 20
-1 sprites/arctic_snowy.png 364 300 09 5 8 -31 6
-1 sprites/arctic_snowy.png 380 300 09 4 15 -6 0
-1 sprites/arctic_snowy.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/arctic_snowy.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/arctic_snowy.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/arctic_snowy.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/arctic_snowy.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/arctic_snowy.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/arctic_snowy.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/arctic_snowy.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/arctic_snowy.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/arctic_snowy.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/arctic_snowy.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/arctic_snowy.png 10 330 09 27 38 -5 -8
-1 sprites/arctic_snowy.png 58 330 09 20 37 -4 11
-1 sprites/arctic_snowy.png 106 330 09 26 37 -31 5
-1 sprites/arctic_snowy.png 154 330 09 20 38 -31 -8
-1 sprites/arctic_snowy.png 202 330 09 9 16 17 11
-1 sprites/arctic_snowy.png 234 330 09 9 15 -6 22
-1 sprites/arctic_snowy.png 266 330 09 9 16 -31 3
-1 sprites/arctic_snowy.png 298 330 09 9 15 -7 -8
-1 sprites/arctic_snowy.png 330 330 09 7 8 25 11
-1 sprites/arctic_snowy.png 346 330 09 5 10 -4 26
-1 sprites/arctic_snowy.png 364 330 09 7 8 -31 5
-1 sprites/arctic_snowy.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 32 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/arctic_brown.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/arctic_brown.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/arctic_brown.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/arctic_brown.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/arctic_brown.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/arctic_brown.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/arctic_brown.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/arctic_brown.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/arctic_brown.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/arctic_brown.png 10 210 09 19 38 -5 0
-1 sprites/arctic_brown.png 58 210 09 18 38 -5 13
-1 sprites/arctic_brown.png 106 210 09 18 38 -31 13
-1 sprites/arctic_brown.png 154 210 09 19 38 -31 0
-1 sprites/arctic_brown.png 202 210 09 9 19 14 11
-1 sprites/arctic_brown.png 234 210 09 9 16 -7 22
-1 sprites/arctic_brown.png 266 210 09 9 19 -31 11
-1 sprites/arctic_brown.png 298 210 09 9 16 -7 0
-1 sprites/arctic_brown.png 330 210 09 6 8 25 13
-1 sprites/arctic_brown.png 346 210 09 4 12 -5 27
-1 sprites/arctic_brown.png 364 210 09 6 8 -31 13
-1 sprites/arctic_brown.png 380 210 09 5 12 -5 0
-1 sprites/arctic_brown.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/arctic_brown.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/arctic_brown.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/arctic_brown.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/arctic_brown.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/arctic_brown.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/arctic_brown.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/arctic_brown.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/arctic_brown.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/arctic_brown.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/arctic_brown.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/arctic_brown.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/arctic_brown.png 10 240 09 11 40 -7 0
-1 sprites/arctic_brown.png 58 240 09 18 39 -6 5
-1 sprites/arctic_brown.png 106 240 09 11 38 -31 12
-1 sprites/arctic_brown.png 154 240 09 18 39 -31 0
-1 sprites/arctic_brown.png 202 240 09 6 20 13 5
-1 sprites/arctic_brown.png 234 240 09 7 13 -6 16
-1 sprites/arctic_brown.png 266 240 09 6 20 -31 12
-1 sprites/arctic_brown.png 298 240 09 7 13 -5 0
-1 sprites/arctic_brown.png 330 240 09 5 8 25 6
-1 sprites/arctic_brown.png 346 240 09 3 12 -5 20
-1 sprites/arctic_brown.png 364 240 09 4 8 -31 13
-1 sprites/arctic_brown.png 380 240 09 4 15 -7 0
-1 sprites/arctic_brown.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/arctic_brown.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/arctic_brown.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/arctic_brown.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/arctic_brown.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/arctic_brown.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/arctic_brown.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/arctic_brown.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/arctic_brown.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/arctic_brown.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/arctic_brown.png 10 270 09 20 38 -5 -8
-1 sprites/arctic_brown.png 58 270 09 26 38 -5 5
-1 sprites/arctic_brown.png 106 270 09 20 37 -31 11
-1 sprites/arctic_brown.png 154 270 09 27 38 -31 -8
-1 sprites/arctic_brown.png 202 270 09 9 16 17 3
-1 sprites/arctic_brown.png 234 270 09 9 15 -7 22
-1 sprites/arctic_brown.png 266 270 09 9 16 -31 11
-1 sprites/arctic_brown.png 298 270 09 9 15 -6 -8
-1 sprites/arctic_brown.png 330 270 09 7 8 25 5
-1 sprites/arctic_brown.png 346 270 09 5 10 -4 27
-1 sprites/arctic_brown.png 364 270 09 7 8 -31 11
-1 sprites/arctic_brown.png 380 270 09 6 12 -5 -8
-1 sprites/arctic_brown.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/arctic_brown.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/arctic_brown.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/arctic_brown.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/arctic_brown.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/arctic_brown.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/arctic_brown.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/arctic_brown.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/arctic_brown.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/arctic_brown.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/arctic_brown.png 10 300 09 18 39 -6 0
-1 sprites/arctic_brown.png 58 300 09 11 38 -5 12
-1 sprites/arctic_brown.png 106 300 09 18 39 -31 5
-1 sprites/arctic_brown.png 154 300 09 11 40 -32 0
-1 sprites/arctic_brown.png 202 300 09 6 20 13 12
-1 sprites/arctic_brown.png 234 300 09 7 13 -5 16
-1 sprites/arctic_brown.png 266 300 09 6 20 -31 5
-1 sprites/arctic_brown.png 298 300 09 7 13 -6 0
-1 sprites/arctic_brown.png 330 300 09 4 8 26 13
-1 sprites/arctic_brown.png 346 300 09 3 12 -5 20
-1 sprites/arctic_brown.png 364 300 09 5 8 -31 6
-1 sprites/arctic_brown.png 380 300 09 4 15 -6 0
-1 sprites/arctic_brown.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/arctic_brown.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/arctic_brown.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/arctic_brown.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/arctic_brown.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/arctic_brown.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/arctic_brown.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/arctic_brown.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/arctic_brown.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/arctic_brown.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/arctic_brown.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/arctic_brown.png 10 330 09 27 38 -5 -8
-1 sprites/arctic_brown.png 58 330 09 20 37 -4 11
-1 sprites/arctic_brown.png 106 330 09 26 37 -31 5
-1 sprites/arctic_brown.png 154 330 09 20 38 -31 -8
-1 sprites/arctic_brown.png 202 330 09 9 16 17 11
-1 sprites/arctic_brown.png 234 330 09 9 15 -6 22
-1 sprites/arctic_brown.png 266 330 09 9 16 -31 3
-1 sprites/arctic_brown.png 298 330 09 9 15 -7 -8
-1 sprites/arctic_brown.png 330 330 09 7 8 25 11
-1 sprites/arctic_brown.png 346 330 09 5 10 -4 26
-1 sprites/arctic_brown.png 364 330 09 7 8 -31 5
-1 sprites/arctic_brown.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 33 01 00 00 00
-1 * 14 02 05 34 81 81 00 FF 01 30 00 04 04 31 00

View File

@@ -8,115 +8,115 @@
//
-1 * 0 0C "Rapid graphics"
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 10 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 10 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 10 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 10 64 39 -31 -8 normal
-1 sprites/rapids.png 10 10 09 23 64 -31 0
-1 sprites/rapids.png 90 10 09 39 64 -31 -8
-1 sprites/rapids.png 170 10 09 23 64 -31 0
-1 sprites/rapids.png 250 10 09 39 64 -31 -8
-1 * 7 02 05 00 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 60 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 60 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 60 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 60 64 39 -31 -8 normal
-1 sprites/rapids.png 10 60 09 23 64 -31 0
-1 sprites/rapids.png 90 60 09 39 64 -31 -8
-1 sprites/rapids.png 170 60 09 23 64 -31 0
-1 sprites/rapids.png 250 60 09 39 64 -31 -8
-1 * 7 02 05 01 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 110 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 110 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 110 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 110 64 39 -31 -8 normal
-1 sprites/rapids.png 10 110 09 23 64 -31 0
-1 sprites/rapids.png 90 110 09 39 64 -31 -8
-1 sprites/rapids.png 170 110 09 23 64 -31 0
-1 sprites/rapids.png 250 110 09 39 64 -31 -8
-1 * 7 02 05 02 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 160 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 160 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 160 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 160 64 39 -31 -8 normal
-1 sprites/rapids.png 10 160 09 23 64 -31 0
-1 sprites/rapids.png 90 160 09 39 64 -31 -8
-1 sprites/rapids.png 170 160 09 23 64 -31 0
-1 sprites/rapids.png 250 160 09 39 64 -31 -8
-1 * 7 02 05 03 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 210 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 210 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 210 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 210 64 39 -31 -8 normal
-1 sprites/rapids.png 10 210 09 23 64 -31 0
-1 sprites/rapids.png 90 210 09 39 64 -31 -8
-1 sprites/rapids.png 170 210 09 23 64 -31 0
-1 sprites/rapids.png 250 210 09 39 64 -31 -8
-1 * 7 02 05 04 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 260 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 260 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 260 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 260 64 39 -31 -8 normal
-1 sprites/rapids.png 10 260 09 23 64 -31 0
-1 sprites/rapids.png 90 260 09 39 64 -31 -8
-1 sprites/rapids.png 170 260 09 23 64 -31 0
-1 sprites/rapids.png 250 260 09 39 64 -31 -8
-1 * 7 02 05 05 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 310 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 310 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 310 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 310 64 39 -31 -8 normal
-1 sprites/rapids.png 10 310 09 23 64 -31 0
-1 sprites/rapids.png 90 310 09 39 64 -31 -8
-1 sprites/rapids.png 170 310 09 23 64 -31 0
-1 sprites/rapids.png 250 310 09 39 64 -31 -8
-1 * 7 02 05 06 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 360 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 360 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 360 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 360 64 39 -31 -8 normal
-1 sprites/rapids.png 10 360 09 23 64 -31 0
-1 sprites/rapids.png 90 360 09 39 64 -31 -8
-1 sprites/rapids.png 170 360 09 23 64 -31 0
-1 sprites/rapids.png 250 360 09 39 64 -31 -8
-1 * 7 02 05 07 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 410 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 410 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 410 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 410 64 39 -31 -8 normal
-1 sprites/rapids.png 10 410 09 23 64 -31 0
-1 sprites/rapids.png 90 410 09 39 64 -31 -8
-1 sprites/rapids.png 170 410 09 23 64 -31 0
-1 sprites/rapids.png 250 410 09 39 64 -31 -8
-1 * 7 02 05 08 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 460 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 460 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 460 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 460 64 39 -31 -8 normal
-1 sprites/rapids.png 10 460 09 23 64 -31 0
-1 sprites/rapids.png 90 460 09 39 64 -31 -8
-1 sprites/rapids.png 170 460 09 23 64 -31 0
-1 sprites/rapids.png 250 460 09 39 64 -31 -8
-1 * 7 02 05 09 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 510 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 510 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 510 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 510 64 39 -31 -8 normal
-1 sprites/rapids.png 10 510 09 23 64 -31 0
-1 sprites/rapids.png 90 510 09 39 64 -31 -8
-1 sprites/rapids.png 170 510 09 23 64 -31 0
-1 sprites/rapids.png 250 510 09 39 64 -31 -8
-1 * 7 02 05 0A 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 560 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 560 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 560 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 560 64 39 -31 -8 normal
-1 sprites/rapids.png 10 560 09 23 64 -31 0
-1 sprites/rapids.png 90 560 09 39 64 -31 -8
-1 sprites/rapids.png 170 560 09 23 64 -31 0
-1 sprites/rapids.png 250 560 09 39 64 -31 -8
-1 * 7 02 05 0B 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 610 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 610 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 610 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 610 64 39 -31 -8 normal
-1 sprites/rapids.png 10 610 09 23 64 -31 0
-1 sprites/rapids.png 90 610 09 39 64 -31 -8
-1 sprites/rapids.png 170 610 09 23 64 -31 0
-1 sprites/rapids.png 250 610 09 39 64 -31 -8
-1 * 7 02 05 0C 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 660 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 660 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 660 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 660 64 39 -31 -8 normal
-1 sprites/rapids.png 10 660 09 23 64 -31 0
-1 sprites/rapids.png 90 660 09 39 64 -31 -8
-1 sprites/rapids.png 170 660 09 23 64 -31 0
-1 sprites/rapids.png 250 660 09 39 64 -31 -8
-1 * 7 02 05 0D 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 710 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 710 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 710 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 710 64 39 -31 -8 normal
-1 sprites/rapids.png 10 710 09 23 64 -31 0
-1 sprites/rapids.png 90 710 09 39 64 -31 -8
-1 sprites/rapids.png 170 710 09 23 64 -31 0
-1 sprites/rapids.png 250 710 09 39 64 -31 -8
-1 * 7 02 05 0E 01 00 00 00
-1 * 4 01 05 01 04
-1 sprites/rapids.png 8bpp 10 760 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 90 760 64 39 -31 -8 normal
-1 sprites/rapids.png 8bpp 170 760 64 23 -31 0 normal
-1 sprites/rapids.png 8bpp 250 760 64 39 -31 -8 normal
-1 sprites/rapids.png 10 760 09 23 64 -31 0
-1 sprites/rapids.png 90 760 09 39 64 -31 -8
-1 sprites/rapids.png 170 760 09 23 64 -31 0
-1 sprites/rapids.png 250 760 09 39 64 -31 -8
-1 * 7 02 05 0F 01 00 00 00
-1 * 39 02 05 10 80 00 01 10

View File

@@ -8,137 +8,137 @@
//
-1 * 0 0C "Temperate river graphics by andythenorth (Andrew Parkhouse)"
-1 * 4 01 05 01 3C
-1 sprites/temperate.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/temperate.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/temperate.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/temperate.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/temperate.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/temperate.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/temperate.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/temperate.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/temperate.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/temperate.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/temperate.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/temperate.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/temperate.png 10 10 09 19 38 -5 0
-1 sprites/temperate.png 58 10 09 18 38 -5 13
-1 sprites/temperate.png 106 10 09 18 38 -31 13
-1 sprites/temperate.png 154 10 09 19 38 -31 0
-1 sprites/temperate.png 202 10 09 9 19 14 11
-1 sprites/temperate.png 234 10 09 9 16 -7 22
-1 sprites/temperate.png 266 10 09 9 19 -31 11
-1 sprites/temperate.png 298 10 09 9 16 -7 0
-1 sprites/temperate.png 330 10 09 6 8 25 13
-1 sprites/temperate.png 346 10 09 4 12 -5 27
-1 sprites/temperate.png 364 10 09 6 8 -31 13
-1 sprites/temperate.png 380 10 09 5 12 -5 0
-1 sprites/temperate.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/temperate.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/temperate.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/temperate.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/temperate.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/temperate.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/temperate.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/temperate.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/temperate.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/temperate.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/temperate.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/temperate.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/temperate.png 10 40 09 11 40 -7 0
-1 sprites/temperate.png 58 40 09 18 39 -6 5
-1 sprites/temperate.png 106 40 09 11 38 -31 12
-1 sprites/temperate.png 154 40 09 18 39 -31 0
-1 sprites/temperate.png 202 40 09 6 20 13 5
-1 sprites/temperate.png 234 40 09 7 13 -6 16
-1 sprites/temperate.png 266 40 09 6 20 -31 12
-1 sprites/temperate.png 298 40 09 7 13 -5 0
-1 sprites/temperate.png 330 40 09 5 8 25 6
-1 sprites/temperate.png 346 40 09 3 12 -5 20
-1 sprites/temperate.png 364 40 09 4 8 -31 13
-1 sprites/temperate.png 380 40 09 4 15 -7 0
-1 sprites/temperate.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/temperate.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/temperate.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/temperate.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/temperate.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/temperate.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/temperate.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/temperate.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/temperate.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/temperate.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/temperate.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/temperate.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/temperate.png 10 70 09 20 38 -5 -8
-1 sprites/temperate.png 58 70 09 26 38 -5 5
-1 sprites/temperate.png 106 70 09 20 37 -31 11
-1 sprites/temperate.png 154 70 09 27 38 -31 -8
-1 sprites/temperate.png 202 70 09 9 16 17 3
-1 sprites/temperate.png 234 70 09 9 15 -7 22
-1 sprites/temperate.png 266 70 09 9 16 -31 11
-1 sprites/temperate.png 298 70 09 9 15 -6 -8
-1 sprites/temperate.png 330 70 09 7 8 25 5
-1 sprites/temperate.png 346 70 09 5 10 -4 27
-1 sprites/temperate.png 364 70 09 7 8 -31 11
-1 sprites/temperate.png 380 70 09 6 12 -5 -8
-1 sprites/temperate.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/temperate.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/temperate.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/temperate.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/temperate.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/temperate.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/temperate.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/temperate.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/temperate.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/temperate.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/temperate.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/temperate.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/temperate.png 10 100 09 18 39 -6 0
-1 sprites/temperate.png 58 100 09 11 38 -5 12
-1 sprites/temperate.png 106 100 09 18 39 -31 5
-1 sprites/temperate.png 154 100 09 11 40 -32 0
-1 sprites/temperate.png 202 100 09 6 20 13 12
-1 sprites/temperate.png 234 100 09 7 13 -5 16
-1 sprites/temperate.png 266 100 09 6 20 -31 5
-1 sprites/temperate.png 298 100 09 7 13 -6 0
-1 sprites/temperate.png 330 100 09 4 8 26 13
-1 sprites/temperate.png 346 100 09 3 12 -5 20
-1 sprites/temperate.png 364 100 09 5 8 -31 6
-1 sprites/temperate.png 380 100 09 4 15 -6 0
-1 sprites/temperate.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/temperate.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/temperate.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/temperate.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/temperate.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/temperate.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/temperate.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/temperate.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/temperate.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/temperate.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/temperate.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/temperate.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/temperate.png 10 130 09 27 38 -5 -8
-1 sprites/temperate.png 58 130 09 20 37 -4 11
-1 sprites/temperate.png 106 130 09 26 37 -31 5
-1 sprites/temperate.png 154 130 09 20 38 -31 -8
-1 sprites/temperate.png 202 130 09 9 16 17 11
-1 sprites/temperate.png 234 130 09 9 15 -6 22
-1 sprites/temperate.png 266 130 09 9 16 -31 3
-1 sprites/temperate.png 298 130 09 9 15 -7 -8
-1 sprites/temperate.png 330 130 09 7 8 25 11
-1 sprites/temperate.png 346 130 09 5 10 -4 26
-1 sprites/temperate.png 364 130 09 7 8 -31 5
-1 sprites/temperate.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 20 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/temperate.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/temperate.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/temperate.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/temperate.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/temperate.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/temperate.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/temperate.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/temperate.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/temperate.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/temperate.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/temperate.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/temperate.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/temperate.png 10 210 09 19 38 -5 0
-1 sprites/temperate.png 58 210 09 18 38 -5 13
-1 sprites/temperate.png 106 210 09 18 38 -31 13
-1 sprites/temperate.png 154 210 09 19 38 -31 0
-1 sprites/temperate.png 202 210 09 9 19 14 11
-1 sprites/temperate.png 234 210 09 9 16 -7 22
-1 sprites/temperate.png 266 210 09 9 19 -31 11
-1 sprites/temperate.png 298 210 09 9 16 -7 0
-1 sprites/temperate.png 330 210 09 6 8 25 13
-1 sprites/temperate.png 346 210 09 4 12 -5 27
-1 sprites/temperate.png 364 210 09 6 8 -31 13
-1 sprites/temperate.png 380 210 09 5 12 -5 0
-1 sprites/temperate.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/temperate.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/temperate.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/temperate.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/temperate.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/temperate.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/temperate.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/temperate.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/temperate.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/temperate.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/temperate.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/temperate.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/temperate.png 10 240 09 11 40 -7 0
-1 sprites/temperate.png 58 240 09 18 39 -6 5
-1 sprites/temperate.png 106 240 09 11 38 -31 12
-1 sprites/temperate.png 154 240 09 18 39 -31 0
-1 sprites/temperate.png 202 240 09 6 20 13 5
-1 sprites/temperate.png 234 240 09 7 13 -6 16
-1 sprites/temperate.png 266 240 09 6 20 -31 12
-1 sprites/temperate.png 298 240 09 7 13 -5 0
-1 sprites/temperate.png 330 240 09 5 8 25 6
-1 sprites/temperate.png 346 240 09 3 12 -5 20
-1 sprites/temperate.png 364 240 09 4 8 -31 13
-1 sprites/temperate.png 380 240 09 4 15 -7 0
-1 sprites/temperate.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/temperate.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/temperate.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/temperate.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/temperate.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/temperate.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/temperate.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/temperate.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/temperate.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/temperate.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/temperate.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/temperate.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/temperate.png 10 270 09 20 38 -5 -8
-1 sprites/temperate.png 58 270 09 26 38 -5 5
-1 sprites/temperate.png 106 270 09 20 37 -31 11
-1 sprites/temperate.png 154 270 09 27 38 -31 -8
-1 sprites/temperate.png 202 270 09 9 16 17 3
-1 sprites/temperate.png 234 270 09 9 15 -7 22
-1 sprites/temperate.png 266 270 09 9 16 -31 11
-1 sprites/temperate.png 298 270 09 9 15 -6 -8
-1 sprites/temperate.png 330 270 09 7 8 25 5
-1 sprites/temperate.png 346 270 09 5 10 -4 27
-1 sprites/temperate.png 364 270 09 7 8 -31 11
-1 sprites/temperate.png 380 270 09 6 12 -5 -8
-1 sprites/temperate.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/temperate.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/temperate.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/temperate.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/temperate.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/temperate.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/temperate.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/temperate.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/temperate.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/temperate.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/temperate.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/temperate.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/temperate.png 10 300 09 18 39 -6 0
-1 sprites/temperate.png 58 300 09 11 38 -5 12
-1 sprites/temperate.png 106 300 09 18 39 -31 5
-1 sprites/temperate.png 154 300 09 11 40 -32 0
-1 sprites/temperate.png 202 300 09 6 20 13 12
-1 sprites/temperate.png 234 300 09 7 13 -5 16
-1 sprites/temperate.png 266 300 09 6 20 -31 5
-1 sprites/temperate.png 298 300 09 7 13 -6 0
-1 sprites/temperate.png 330 300 09 4 8 26 13
-1 sprites/temperate.png 346 300 09 3 12 -5 20
-1 sprites/temperate.png 364 300 09 5 8 -31 6
-1 sprites/temperate.png 380 300 09 4 15 -6 0
-1 sprites/temperate.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/temperate.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/temperate.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/temperate.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/temperate.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/temperate.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/temperate.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/temperate.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/temperate.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/temperate.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/temperate.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/temperate.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/temperate.png 10 330 09 27 38 -5 -8
-1 sprites/temperate.png 58 330 09 20 37 -4 11
-1 sprites/temperate.png 106 330 09 26 37 -31 5
-1 sprites/temperate.png 154 330 09 20 38 -31 -8
-1 sprites/temperate.png 202 330 09 9 16 17 11
-1 sprites/temperate.png 234 330 09 9 15 -6 22
-1 sprites/temperate.png 266 330 09 9 16 -31 3
-1 sprites/temperate.png 298 330 09 9 15 -7 -8
-1 sprites/temperate.png 330 330 09 7 8 25 11
-1 sprites/temperate.png 346 330 09 5 10 -4 26
-1 sprites/temperate.png 364 330 09 7 8 -31 5
-1 sprites/temperate.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 21 01 00 00 00
-1 * 14 02 05 22 81 80 00 FF 01 20 00 00 00 21 00

View File

@@ -8,137 +8,137 @@
//
-1 * 0 0C "Toyland river graphics by andythenorth (Andrew Parkhouse)"
-1 * 4 01 05 01 3C
-1 sprites/toyland.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/toyland.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/toyland.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/toyland.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/toyland.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/toyland.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/toyland.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/toyland.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/toyland.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/toyland.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/toyland.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/toyland.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/toyland.png 10 10 09 19 38 -5 0
-1 sprites/toyland.png 58 10 09 18 38 -5 13
-1 sprites/toyland.png 106 10 09 18 38 -31 13
-1 sprites/toyland.png 154 10 09 19 38 -31 0
-1 sprites/toyland.png 202 10 09 9 19 14 11
-1 sprites/toyland.png 234 10 09 9 16 -7 22
-1 sprites/toyland.png 266 10 09 9 19 -31 11
-1 sprites/toyland.png 298 10 09 9 16 -7 0
-1 sprites/toyland.png 330 10 09 6 8 25 13
-1 sprites/toyland.png 346 10 09 4 12 -5 27
-1 sprites/toyland.png 364 10 09 6 8 -31 13
-1 sprites/toyland.png 380 10 09 5 12 -5 0
-1 sprites/toyland.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/toyland.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/toyland.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/toyland.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/toyland.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/toyland.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/toyland.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/toyland.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/toyland.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/toyland.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/toyland.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/toyland.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/toyland.png 10 40 09 11 40 -7 0
-1 sprites/toyland.png 58 40 09 18 39 -6 5
-1 sprites/toyland.png 106 40 09 11 38 -31 12
-1 sprites/toyland.png 154 40 09 18 39 -31 0
-1 sprites/toyland.png 202 40 09 6 20 13 5
-1 sprites/toyland.png 234 40 09 7 13 -6 16
-1 sprites/toyland.png 266 40 09 6 20 -31 12
-1 sprites/toyland.png 298 40 09 7 13 -5 0
-1 sprites/toyland.png 330 40 09 5 8 25 6
-1 sprites/toyland.png 346 40 09 3 12 -5 20
-1 sprites/toyland.png 364 40 09 4 8 -31 13
-1 sprites/toyland.png 380 40 09 4 15 -7 0
-1 sprites/toyland.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/toyland.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/toyland.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/toyland.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/toyland.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/toyland.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/toyland.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/toyland.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/toyland.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/toyland.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/toyland.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/toyland.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/toyland.png 10 70 09 20 38 -5 -8
-1 sprites/toyland.png 58 70 09 26 38 -5 5
-1 sprites/toyland.png 106 70 09 20 37 -31 11
-1 sprites/toyland.png 154 70 09 27 38 -31 -8
-1 sprites/toyland.png 202 70 09 9 16 17 3
-1 sprites/toyland.png 234 70 09 9 15 -7 22
-1 sprites/toyland.png 266 70 09 9 16 -31 11
-1 sprites/toyland.png 298 70 09 9 15 -6 -8
-1 sprites/toyland.png 330 70 09 7 8 25 5
-1 sprites/toyland.png 346 70 09 5 10 -4 27
-1 sprites/toyland.png 364 70 09 7 8 -31 11
-1 sprites/toyland.png 380 70 09 6 12 -5 -8
-1 sprites/toyland.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/toyland.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/toyland.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/toyland.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/toyland.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/toyland.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/toyland.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/toyland.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/toyland.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/toyland.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/toyland.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/toyland.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/toyland.png 10 100 09 18 39 -6 0
-1 sprites/toyland.png 58 100 09 11 38 -5 12
-1 sprites/toyland.png 106 100 09 18 39 -31 5
-1 sprites/toyland.png 154 100 09 11 40 -32 0
-1 sprites/toyland.png 202 100 09 6 20 13 12
-1 sprites/toyland.png 234 100 09 7 13 -5 16
-1 sprites/toyland.png 266 100 09 6 20 -31 5
-1 sprites/toyland.png 298 100 09 7 13 -6 0
-1 sprites/toyland.png 330 100 09 4 8 26 13
-1 sprites/toyland.png 346 100 09 3 12 -5 20
-1 sprites/toyland.png 364 100 09 5 8 -31 6
-1 sprites/toyland.png 380 100 09 4 15 -6 0
-1 sprites/toyland.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/toyland.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/toyland.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/toyland.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/toyland.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/toyland.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/toyland.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/toyland.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/toyland.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/toyland.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/toyland.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/toyland.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/toyland.png 10 130 09 27 38 -5 -8
-1 sprites/toyland.png 58 130 09 20 37 -4 11
-1 sprites/toyland.png 106 130 09 26 37 -31 5
-1 sprites/toyland.png 154 130 09 20 38 -31 -8
-1 sprites/toyland.png 202 130 09 9 16 17 11
-1 sprites/toyland.png 234 130 09 9 15 -6 22
-1 sprites/toyland.png 266 130 09 9 16 -31 3
-1 sprites/toyland.png 298 130 09 9 15 -7 -8
-1 sprites/toyland.png 330 130 09 7 8 25 11
-1 sprites/toyland.png 346 130 09 5 10 -4 26
-1 sprites/toyland.png 364 130 09 7 8 -31 5
-1 sprites/toyland.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 50 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/toyland.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/toyland.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/toyland.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/toyland.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/toyland.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/toyland.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/toyland.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/toyland.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/toyland.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/toyland.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/toyland.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/toyland.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/toyland.png 10 210 09 19 38 -5 0
-1 sprites/toyland.png 58 210 09 18 38 -5 13
-1 sprites/toyland.png 106 210 09 18 38 -31 13
-1 sprites/toyland.png 154 210 09 19 38 -31 0
-1 sprites/toyland.png 202 210 09 9 19 14 11
-1 sprites/toyland.png 234 210 09 9 16 -7 22
-1 sprites/toyland.png 266 210 09 9 19 -31 11
-1 sprites/toyland.png 298 210 09 9 16 -7 0
-1 sprites/toyland.png 330 210 09 6 8 25 13
-1 sprites/toyland.png 346 210 09 4 12 -5 27
-1 sprites/toyland.png 364 210 09 6 8 -31 13
-1 sprites/toyland.png 380 210 09 5 12 -5 0
-1 sprites/toyland.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/toyland.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/toyland.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/toyland.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/toyland.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/toyland.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/toyland.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/toyland.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/toyland.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/toyland.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/toyland.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/toyland.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/toyland.png 10 240 09 11 40 -7 0
-1 sprites/toyland.png 58 240 09 18 39 -6 5
-1 sprites/toyland.png 106 240 09 11 38 -31 12
-1 sprites/toyland.png 154 240 09 18 39 -31 0
-1 sprites/toyland.png 202 240 09 6 20 13 5
-1 sprites/toyland.png 234 240 09 7 13 -6 16
-1 sprites/toyland.png 266 240 09 6 20 -31 12
-1 sprites/toyland.png 298 240 09 7 13 -5 0
-1 sprites/toyland.png 330 240 09 5 8 25 6
-1 sprites/toyland.png 346 240 09 3 12 -5 20
-1 sprites/toyland.png 364 240 09 4 8 -31 13
-1 sprites/toyland.png 380 240 09 4 15 -7 0
-1 sprites/toyland.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/toyland.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/toyland.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/toyland.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/toyland.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/toyland.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/toyland.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/toyland.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/toyland.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/toyland.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/toyland.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/toyland.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/toyland.png 10 270 09 20 38 -5 -8
-1 sprites/toyland.png 58 270 09 26 38 -5 5
-1 sprites/toyland.png 106 270 09 20 37 -31 11
-1 sprites/toyland.png 154 270 09 27 38 -31 -8
-1 sprites/toyland.png 202 270 09 9 16 17 3
-1 sprites/toyland.png 234 270 09 9 15 -7 22
-1 sprites/toyland.png 266 270 09 9 16 -31 11
-1 sprites/toyland.png 298 270 09 9 15 -6 -8
-1 sprites/toyland.png 330 270 09 7 8 25 5
-1 sprites/toyland.png 346 270 09 5 10 -4 27
-1 sprites/toyland.png 364 270 09 7 8 -31 11
-1 sprites/toyland.png 380 270 09 6 12 -5 -8
-1 sprites/toyland.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/toyland.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/toyland.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/toyland.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/toyland.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/toyland.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/toyland.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/toyland.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/toyland.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/toyland.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/toyland.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/toyland.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/toyland.png 10 300 09 18 39 -6 0
-1 sprites/toyland.png 58 300 09 11 38 -5 12
-1 sprites/toyland.png 106 300 09 18 39 -31 5
-1 sprites/toyland.png 154 300 09 11 40 -32 0
-1 sprites/toyland.png 202 300 09 6 20 13 12
-1 sprites/toyland.png 234 300 09 7 13 -5 16
-1 sprites/toyland.png 266 300 09 6 20 -31 5
-1 sprites/toyland.png 298 300 09 7 13 -6 0
-1 sprites/toyland.png 330 300 09 4 8 26 13
-1 sprites/toyland.png 346 300 09 3 12 -5 20
-1 sprites/toyland.png 364 300 09 5 8 -31 6
-1 sprites/toyland.png 380 300 09 4 15 -6 0
-1 sprites/toyland.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/toyland.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/toyland.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/toyland.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/toyland.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/toyland.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/toyland.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/toyland.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/toyland.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/toyland.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/toyland.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/toyland.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/toyland.png 10 330 09 27 38 -5 -8
-1 sprites/toyland.png 58 330 09 20 37 -4 11
-1 sprites/toyland.png 106 330 09 26 37 -31 5
-1 sprites/toyland.png 154 330 09 20 38 -31 -8
-1 sprites/toyland.png 202 330 09 9 16 17 11
-1 sprites/toyland.png 234 330 09 9 15 -6 22
-1 sprites/toyland.png 266 330 09 9 16 -31 3
-1 sprites/toyland.png 298 330 09 9 15 -7 -8
-1 sprites/toyland.png 330 330 09 7 8 25 11
-1 sprites/toyland.png 346 330 09 5 10 -4 26
-1 sprites/toyland.png 364 330 09 7 8 -31 5
-1 sprites/toyland.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 51 01 00 00 00
-1 * 14 02 05 52 81 80 00 FF 01 50 00 00 00 51 00

View File

@@ -8,271 +8,271 @@
//
-1 * 0 0C "Tropic river graphics by andythenorth (Andrew Parkhouse)"
-1 * 4 01 05 01 3C
-1 sprites/tropic_desert.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/tropic_desert.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/tropic_desert.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/tropic_desert.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/tropic_desert.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/tropic_desert.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/tropic_desert.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/tropic_desert.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/tropic_desert.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/tropic_desert.png 10 10 09 19 38 -5 0
-1 sprites/tropic_desert.png 58 10 09 18 38 -5 13
-1 sprites/tropic_desert.png 106 10 09 18 38 -31 13
-1 sprites/tropic_desert.png 154 10 09 19 38 -31 0
-1 sprites/tropic_desert.png 202 10 09 9 19 14 11
-1 sprites/tropic_desert.png 234 10 09 9 16 -7 22
-1 sprites/tropic_desert.png 266 10 09 9 19 -31 11
-1 sprites/tropic_desert.png 298 10 09 9 16 -7 0
-1 sprites/tropic_desert.png 330 10 09 6 8 25 13
-1 sprites/tropic_desert.png 346 10 09 4 12 -5 27
-1 sprites/tropic_desert.png 364 10 09 6 8 -31 13
-1 sprites/tropic_desert.png 380 10 09 5 12 -5 0
-1 sprites/tropic_desert.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/tropic_desert.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/tropic_desert.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/tropic_desert.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/tropic_desert.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/tropic_desert.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/tropic_desert.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/tropic_desert.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/tropic_desert.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/tropic_desert.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/tropic_desert.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/tropic_desert.png 10 40 09 11 40 -7 0
-1 sprites/tropic_desert.png 58 40 09 18 39 -6 5
-1 sprites/tropic_desert.png 106 40 09 11 38 -31 12
-1 sprites/tropic_desert.png 154 40 09 18 39 -31 0
-1 sprites/tropic_desert.png 202 40 09 6 20 13 5
-1 sprites/tropic_desert.png 234 40 09 7 13 -6 16
-1 sprites/tropic_desert.png 266 40 09 6 20 -31 12
-1 sprites/tropic_desert.png 298 40 09 7 13 -5 0
-1 sprites/tropic_desert.png 330 40 09 5 8 25 6
-1 sprites/tropic_desert.png 346 40 09 3 12 -5 20
-1 sprites/tropic_desert.png 364 40 09 4 8 -31 13
-1 sprites/tropic_desert.png 380 40 09 4 15 -7 0
-1 sprites/tropic_desert.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/tropic_desert.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/tropic_desert.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/tropic_desert.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/tropic_desert.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/tropic_desert.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/tropic_desert.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/tropic_desert.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/tropic_desert.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/tropic_desert.png 10 70 09 20 38 -5 -8
-1 sprites/tropic_desert.png 58 70 09 26 38 -5 5
-1 sprites/tropic_desert.png 106 70 09 20 37 -31 11
-1 sprites/tropic_desert.png 154 70 09 27 38 -31 -8
-1 sprites/tropic_desert.png 202 70 09 9 16 17 3
-1 sprites/tropic_desert.png 234 70 09 9 15 -7 22
-1 sprites/tropic_desert.png 266 70 09 9 16 -31 11
-1 sprites/tropic_desert.png 298 70 09 9 15 -6 -8
-1 sprites/tropic_desert.png 330 70 09 7 8 25 5
-1 sprites/tropic_desert.png 346 70 09 5 10 -4 27
-1 sprites/tropic_desert.png 364 70 09 7 8 -31 11
-1 sprites/tropic_desert.png 380 70 09 6 12 -5 -8
-1 sprites/tropic_desert.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/tropic_desert.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/tropic_desert.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/tropic_desert.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/tropic_desert.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/tropic_desert.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/tropic_desert.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/tropic_desert.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/tropic_desert.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/tropic_desert.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/tropic_desert.png 10 100 09 18 39 -6 0
-1 sprites/tropic_desert.png 58 100 09 11 38 -5 12
-1 sprites/tropic_desert.png 106 100 09 18 39 -31 5
-1 sprites/tropic_desert.png 154 100 09 11 40 -32 0
-1 sprites/tropic_desert.png 202 100 09 6 20 13 12
-1 sprites/tropic_desert.png 234 100 09 7 13 -5 16
-1 sprites/tropic_desert.png 266 100 09 6 20 -31 5
-1 sprites/tropic_desert.png 298 100 09 7 13 -6 0
-1 sprites/tropic_desert.png 330 100 09 4 8 26 13
-1 sprites/tropic_desert.png 346 100 09 3 12 -5 20
-1 sprites/tropic_desert.png 364 100 09 5 8 -31 6
-1 sprites/tropic_desert.png 380 100 09 4 15 -6 0
-1 sprites/tropic_desert.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/tropic_desert.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/tropic_desert.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/tropic_desert.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/tropic_desert.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/tropic_desert.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/tropic_desert.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/tropic_desert.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/tropic_desert.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/tropic_desert.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/tropic_desert.png 10 130 09 27 38 -5 -8
-1 sprites/tropic_desert.png 58 130 09 20 37 -4 11
-1 sprites/tropic_desert.png 106 130 09 26 37 -31 5
-1 sprites/tropic_desert.png 154 130 09 20 38 -31 -8
-1 sprites/tropic_desert.png 202 130 09 9 16 17 11
-1 sprites/tropic_desert.png 234 130 09 9 15 -6 22
-1 sprites/tropic_desert.png 266 130 09 9 16 -31 3
-1 sprites/tropic_desert.png 298 130 09 9 15 -7 -8
-1 sprites/tropic_desert.png 330 130 09 7 8 25 11
-1 sprites/tropic_desert.png 346 130 09 5 10 -4 26
-1 sprites/tropic_desert.png 364 130 09 7 8 -31 5
-1 sprites/tropic_desert.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 40 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/tropic_forest.png 8bpp 10 10 38 19 -5 0 normal
-1 sprites/tropic_forest.png 8bpp 58 10 38 18 -5 13 normal
-1 sprites/tropic_forest.png 8bpp 106 10 38 18 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 154 10 38 19 -31 0 normal
-1 sprites/tropic_forest.png 8bpp 202 10 19 9 14 11 normal
-1 sprites/tropic_forest.png 8bpp 234 10 16 9 -7 22 normal
-1 sprites/tropic_forest.png 8bpp 266 10 19 9 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 298 10 16 9 -7 0 normal
-1 sprites/tropic_forest.png 8bpp 330 10 8 6 25 13 normal
-1 sprites/tropic_forest.png 8bpp 346 10 12 4 -5 27 normal
-1 sprites/tropic_forest.png 8bpp 364 10 8 6 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 380 10 12 5 -5 0 normal
-1 sprites/tropic_forest.png 10 10 09 19 38 -5 0
-1 sprites/tropic_forest.png 58 10 09 18 38 -5 13
-1 sprites/tropic_forest.png 106 10 09 18 38 -31 13
-1 sprites/tropic_forest.png 154 10 09 19 38 -31 0
-1 sprites/tropic_forest.png 202 10 09 9 19 14 11
-1 sprites/tropic_forest.png 234 10 09 9 16 -7 22
-1 sprites/tropic_forest.png 266 10 09 9 19 -31 11
-1 sprites/tropic_forest.png 298 10 09 9 16 -7 0
-1 sprites/tropic_forest.png 330 10 09 6 8 25 13
-1 sprites/tropic_forest.png 346 10 09 4 12 -5 27
-1 sprites/tropic_forest.png 364 10 09 6 8 -31 13
-1 sprites/tropic_forest.png 380 10 09 5 12 -5 0
-1 sprites/tropic_forest.png 8bpp 10 40 40 11 -7 0 normal
-1 sprites/tropic_forest.png 8bpp 58 40 39 18 -6 5 normal
-1 sprites/tropic_forest.png 8bpp 106 40 38 11 -31 12 normal
-1 sprites/tropic_forest.png 8bpp 154 40 39 18 -31 0 normal
-1 sprites/tropic_forest.png 8bpp 202 40 20 6 13 5 normal
-1 sprites/tropic_forest.png 8bpp 234 40 13 7 -6 16 normal
-1 sprites/tropic_forest.png 8bpp 266 40 20 6 -31 12 normal
-1 sprites/tropic_forest.png 8bpp 298 40 13 7 -5 0 normal
-1 sprites/tropic_forest.png 8bpp 330 40 8 5 25 6 normal
-1 sprites/tropic_forest.png 8bpp 346 40 12 3 -5 20 normal
-1 sprites/tropic_forest.png 8bpp 364 40 8 4 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 380 40 15 4 -7 0 normal
-1 sprites/tropic_forest.png 10 40 09 11 40 -7 0
-1 sprites/tropic_forest.png 58 40 09 18 39 -6 5
-1 sprites/tropic_forest.png 106 40 09 11 38 -31 12
-1 sprites/tropic_forest.png 154 40 09 18 39 -31 0
-1 sprites/tropic_forest.png 202 40 09 6 20 13 5
-1 sprites/tropic_forest.png 234 40 09 7 13 -6 16
-1 sprites/tropic_forest.png 266 40 09 6 20 -31 12
-1 sprites/tropic_forest.png 298 40 09 7 13 -5 0
-1 sprites/tropic_forest.png 330 40 09 5 8 25 6
-1 sprites/tropic_forest.png 346 40 09 3 12 -5 20
-1 sprites/tropic_forest.png 364 40 09 4 8 -31 13
-1 sprites/tropic_forest.png 380 40 09 4 15 -7 0
-1 sprites/tropic_forest.png 8bpp 10 70 38 20 -5 -8 normal
-1 sprites/tropic_forest.png 8bpp 58 70 38 26 -5 5 normal
-1 sprites/tropic_forest.png 8bpp 106 70 37 20 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 154 70 38 27 -31 -8 normal
-1 sprites/tropic_forest.png 8bpp 202 70 16 9 17 3 normal
-1 sprites/tropic_forest.png 8bpp 234 70 15 9 -7 22 normal
-1 sprites/tropic_forest.png 8bpp 266 70 16 9 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 298 70 15 9 -6 -8 normal
-1 sprites/tropic_forest.png 8bpp 330 70 8 7 25 5 normal
-1 sprites/tropic_forest.png 8bpp 346 70 10 5 -4 27 normal
-1 sprites/tropic_forest.png 8bpp 364 70 8 7 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 380 70 12 6 -5 -8 normal
-1 sprites/tropic_forest.png 10 70 09 20 38 -5 -8
-1 sprites/tropic_forest.png 58 70 09 26 38 -5 5
-1 sprites/tropic_forest.png 106 70 09 20 37 -31 11
-1 sprites/tropic_forest.png 154 70 09 27 38 -31 -8
-1 sprites/tropic_forest.png 202 70 09 9 16 17 3
-1 sprites/tropic_forest.png 234 70 09 9 15 -7 22
-1 sprites/tropic_forest.png 266 70 09 9 16 -31 11
-1 sprites/tropic_forest.png 298 70 09 9 15 -6 -8
-1 sprites/tropic_forest.png 330 70 09 7 8 25 5
-1 sprites/tropic_forest.png 346 70 09 5 10 -4 27
-1 sprites/tropic_forest.png 364 70 09 7 8 -31 11
-1 sprites/tropic_forest.png 380 70 09 6 12 -5 -8
-1 sprites/tropic_forest.png 8bpp 10 100 39 18 -6 0 normal
-1 sprites/tropic_forest.png 8bpp 58 100 38 11 -5 12 normal
-1 sprites/tropic_forest.png 8bpp 106 100 39 18 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 154 100 40 11 -32 0 normal
-1 sprites/tropic_forest.png 8bpp 202 100 20 6 13 12 normal
-1 sprites/tropic_forest.png 8bpp 234 100 13 7 -5 16 normal
-1 sprites/tropic_forest.png 8bpp 266 100 20 6 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 298 100 13 7 -6 0 normal
-1 sprites/tropic_forest.png 8bpp 330 100 8 4 26 13 normal
-1 sprites/tropic_forest.png 8bpp 346 100 12 3 -5 20 normal
-1 sprites/tropic_forest.png 8bpp 364 100 8 5 -31 6 normal
-1 sprites/tropic_forest.png 8bpp 380 100 15 4 -6 0 normal
-1 sprites/tropic_forest.png 10 100 09 18 39 -6 0
-1 sprites/tropic_forest.png 58 100 09 11 38 -5 12
-1 sprites/tropic_forest.png 106 100 09 18 39 -31 5
-1 sprites/tropic_forest.png 154 100 09 11 40 -32 0
-1 sprites/tropic_forest.png 202 100 09 6 20 13 12
-1 sprites/tropic_forest.png 234 100 09 7 13 -5 16
-1 sprites/tropic_forest.png 266 100 09 6 20 -31 5
-1 sprites/tropic_forest.png 298 100 09 7 13 -6 0
-1 sprites/tropic_forest.png 330 100 09 4 8 26 13
-1 sprites/tropic_forest.png 346 100 09 3 12 -5 20
-1 sprites/tropic_forest.png 364 100 09 5 8 -31 6
-1 sprites/tropic_forest.png 380 100 09 4 15 -6 0
-1 sprites/tropic_forest.png 8bpp 10 130 38 27 -5 -8 normal
-1 sprites/tropic_forest.png 8bpp 58 130 37 20 -4 11 normal
-1 sprites/tropic_forest.png 8bpp 106 130 37 26 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 154 130 38 20 -31 -8 normal
-1 sprites/tropic_forest.png 8bpp 202 130 16 9 17 11 normal
-1 sprites/tropic_forest.png 8bpp 234 130 15 9 -6 22 normal
-1 sprites/tropic_forest.png 8bpp 266 130 16 9 -31 3 normal
-1 sprites/tropic_forest.png 8bpp 298 130 15 9 -7 -8 normal
-1 sprites/tropic_forest.png 8bpp 330 130 8 7 25 11 normal
-1 sprites/tropic_forest.png 8bpp 346 130 10 5 -4 26 normal
-1 sprites/tropic_forest.png 8bpp 364 130 8 7 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 380 130 12 6 -5 -8 normal
-1 sprites/tropic_forest.png 10 130 09 27 38 -5 -8
-1 sprites/tropic_forest.png 58 130 09 20 37 -4 11
-1 sprites/tropic_forest.png 106 130 09 26 37 -31 5
-1 sprites/tropic_forest.png 154 130 09 20 38 -31 -8
-1 sprites/tropic_forest.png 202 130 09 9 16 17 11
-1 sprites/tropic_forest.png 234 130 09 9 15 -6 22
-1 sprites/tropic_forest.png 266 130 09 9 16 -31 3
-1 sprites/tropic_forest.png 298 130 09 9 15 -7 -8
-1 sprites/tropic_forest.png 330 130 09 7 8 25 11
-1 sprites/tropic_forest.png 346 130 09 5 10 -4 26
-1 sprites/tropic_forest.png 364 130 09 7 8 -31 5
-1 sprites/tropic_forest.png 380 130 09 6 12 -5 -8
-1 * 7 02 05 41 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/tropic_desert.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/tropic_desert.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/tropic_desert.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/tropic_desert.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/tropic_desert.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/tropic_desert.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/tropic_desert.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/tropic_desert.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/tropic_desert.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/tropic_desert.png 10 210 09 19 38 -5 0
-1 sprites/tropic_desert.png 58 210 09 18 38 -5 13
-1 sprites/tropic_desert.png 106 210 09 18 38 -31 13
-1 sprites/tropic_desert.png 154 210 09 19 38 -31 0
-1 sprites/tropic_desert.png 202 210 09 9 19 14 11
-1 sprites/tropic_desert.png 234 210 09 9 16 -7 22
-1 sprites/tropic_desert.png 266 210 09 9 19 -31 11
-1 sprites/tropic_desert.png 298 210 09 9 16 -7 0
-1 sprites/tropic_desert.png 330 210 09 6 8 25 13
-1 sprites/tropic_desert.png 346 210 09 4 12 -5 27
-1 sprites/tropic_desert.png 364 210 09 6 8 -31 13
-1 sprites/tropic_desert.png 380 210 09 5 12 -5 0
-1 sprites/tropic_desert.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/tropic_desert.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/tropic_desert.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/tropic_desert.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/tropic_desert.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/tropic_desert.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/tropic_desert.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/tropic_desert.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/tropic_desert.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/tropic_desert.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/tropic_desert.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/tropic_desert.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/tropic_desert.png 10 240 09 11 40 -7 0
-1 sprites/tropic_desert.png 58 240 09 18 39 -6 5
-1 sprites/tropic_desert.png 106 240 09 11 38 -31 12
-1 sprites/tropic_desert.png 154 240 09 18 39 -31 0
-1 sprites/tropic_desert.png 202 240 09 6 20 13 5
-1 sprites/tropic_desert.png 234 240 09 7 13 -6 16
-1 sprites/tropic_desert.png 266 240 09 6 20 -31 12
-1 sprites/tropic_desert.png 298 240 09 7 13 -5 0
-1 sprites/tropic_desert.png 330 240 09 5 8 25 6
-1 sprites/tropic_desert.png 346 240 09 3 12 -5 20
-1 sprites/tropic_desert.png 364 240 09 4 8 -31 13
-1 sprites/tropic_desert.png 380 240 09 4 15 -7 0
-1 sprites/tropic_desert.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/tropic_desert.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/tropic_desert.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/tropic_desert.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/tropic_desert.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/tropic_desert.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/tropic_desert.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/tropic_desert.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/tropic_desert.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/tropic_desert.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/tropic_desert.png 10 270 09 20 38 -5 -8
-1 sprites/tropic_desert.png 58 270 09 26 38 -5 5
-1 sprites/tropic_desert.png 106 270 09 20 37 -31 11
-1 sprites/tropic_desert.png 154 270 09 27 38 -31 -8
-1 sprites/tropic_desert.png 202 270 09 9 16 17 3
-1 sprites/tropic_desert.png 234 270 09 9 15 -7 22
-1 sprites/tropic_desert.png 266 270 09 9 16 -31 11
-1 sprites/tropic_desert.png 298 270 09 9 15 -6 -8
-1 sprites/tropic_desert.png 330 270 09 7 8 25 5
-1 sprites/tropic_desert.png 346 270 09 5 10 -4 27
-1 sprites/tropic_desert.png 364 270 09 7 8 -31 11
-1 sprites/tropic_desert.png 380 270 09 6 12 -5 -8
-1 sprites/tropic_desert.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/tropic_desert.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/tropic_desert.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/tropic_desert.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/tropic_desert.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/tropic_desert.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/tropic_desert.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/tropic_desert.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/tropic_desert.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/tropic_desert.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/tropic_desert.png 10 300 09 18 39 -6 0
-1 sprites/tropic_desert.png 58 300 09 11 38 -5 12
-1 sprites/tropic_desert.png 106 300 09 18 39 -31 5
-1 sprites/tropic_desert.png 154 300 09 11 40 -32 0
-1 sprites/tropic_desert.png 202 300 09 6 20 13 12
-1 sprites/tropic_desert.png 234 300 09 7 13 -5 16
-1 sprites/tropic_desert.png 266 300 09 6 20 -31 5
-1 sprites/tropic_desert.png 298 300 09 7 13 -6 0
-1 sprites/tropic_desert.png 330 300 09 4 8 26 13
-1 sprites/tropic_desert.png 346 300 09 3 12 -5 20
-1 sprites/tropic_desert.png 364 300 09 5 8 -31 6
-1 sprites/tropic_desert.png 380 300 09 4 15 -6 0
-1 sprites/tropic_desert.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/tropic_desert.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/tropic_desert.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/tropic_desert.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/tropic_desert.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/tropic_desert.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/tropic_desert.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/tropic_desert.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/tropic_desert.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/tropic_desert.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/tropic_desert.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/tropic_desert.png 10 330 09 27 38 -5 -8
-1 sprites/tropic_desert.png 58 330 09 20 37 -4 11
-1 sprites/tropic_desert.png 106 330 09 26 37 -31 5
-1 sprites/tropic_desert.png 154 330 09 20 38 -31 -8
-1 sprites/tropic_desert.png 202 330 09 9 16 17 11
-1 sprites/tropic_desert.png 234 330 09 9 15 -6 22
-1 sprites/tropic_desert.png 266 330 09 9 16 -31 3
-1 sprites/tropic_desert.png 298 330 09 9 15 -7 -8
-1 sprites/tropic_desert.png 330 330 09 7 8 25 11
-1 sprites/tropic_desert.png 346 330 09 5 10 -4 26
-1 sprites/tropic_desert.png 364 330 09 7 8 -31 5
-1 sprites/tropic_desert.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 42 01 00 00 00
-1 * 4 01 05 01 3C
-1 sprites/tropic_forest.png 8bpp 10 210 38 19 -5 0 normal
-1 sprites/tropic_forest.png 8bpp 58 210 38 18 -5 13 normal
-1 sprites/tropic_forest.png 8bpp 106 210 38 18 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 154 210 38 19 -31 0 normal
-1 sprites/tropic_forest.png 8bpp 202 210 19 9 14 11 normal
-1 sprites/tropic_forest.png 8bpp 234 210 16 9 -7 22 normal
-1 sprites/tropic_forest.png 8bpp 266 210 19 9 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 298 210 16 9 -7 0 normal
-1 sprites/tropic_forest.png 8bpp 330 210 8 6 25 13 normal
-1 sprites/tropic_forest.png 8bpp 346 210 12 4 -5 27 normal
-1 sprites/tropic_forest.png 8bpp 364 210 8 6 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 380 210 12 5 -5 0 normal
-1 sprites/tropic_forest.png 10 210 09 19 38 -5 0
-1 sprites/tropic_forest.png 58 210 09 18 38 -5 13
-1 sprites/tropic_forest.png 106 210 09 18 38 -31 13
-1 sprites/tropic_forest.png 154 210 09 19 38 -31 0
-1 sprites/tropic_forest.png 202 210 09 9 19 14 11
-1 sprites/tropic_forest.png 234 210 09 9 16 -7 22
-1 sprites/tropic_forest.png 266 210 09 9 19 -31 11
-1 sprites/tropic_forest.png 298 210 09 9 16 -7 0
-1 sprites/tropic_forest.png 330 210 09 6 8 25 13
-1 sprites/tropic_forest.png 346 210 09 4 12 -5 27
-1 sprites/tropic_forest.png 364 210 09 6 8 -31 13
-1 sprites/tropic_forest.png 380 210 09 5 12 -5 0
-1 sprites/tropic_forest.png 8bpp 10 240 40 11 -7 0 normal
-1 sprites/tropic_forest.png 8bpp 58 240 39 18 -6 5 normal
-1 sprites/tropic_forest.png 8bpp 106 240 38 11 -31 12 normal
-1 sprites/tropic_forest.png 8bpp 154 240 39 18 -31 0 normal
-1 sprites/tropic_forest.png 8bpp 202 240 20 6 13 5 normal
-1 sprites/tropic_forest.png 8bpp 234 240 13 7 -6 16 normal
-1 sprites/tropic_forest.png 8bpp 266 240 20 6 -31 12 normal
-1 sprites/tropic_forest.png 8bpp 298 240 13 7 -5 0 normal
-1 sprites/tropic_forest.png 8bpp 330 240 8 5 25 6 normal
-1 sprites/tropic_forest.png 8bpp 346 240 12 3 -5 20 normal
-1 sprites/tropic_forest.png 8bpp 364 240 8 4 -31 13 normal
-1 sprites/tropic_forest.png 8bpp 380 240 15 4 -7 0 normal
-1 sprites/tropic_forest.png 10 240 09 11 40 -7 0
-1 sprites/tropic_forest.png 58 240 09 18 39 -6 5
-1 sprites/tropic_forest.png 106 240 09 11 38 -31 12
-1 sprites/tropic_forest.png 154 240 09 18 39 -31 0
-1 sprites/tropic_forest.png 202 240 09 6 20 13 5
-1 sprites/tropic_forest.png 234 240 09 7 13 -6 16
-1 sprites/tropic_forest.png 266 240 09 6 20 -31 12
-1 sprites/tropic_forest.png 298 240 09 7 13 -5 0
-1 sprites/tropic_forest.png 330 240 09 5 8 25 6
-1 sprites/tropic_forest.png 346 240 09 3 12 -5 20
-1 sprites/tropic_forest.png 364 240 09 4 8 -31 13
-1 sprites/tropic_forest.png 380 240 09 4 15 -7 0
-1 sprites/tropic_forest.png 8bpp 10 270 38 20 -5 -8 normal
-1 sprites/tropic_forest.png 8bpp 58 270 38 26 -5 5 normal
-1 sprites/tropic_forest.png 8bpp 106 270 37 20 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 154 270 38 27 -31 -8 normal
-1 sprites/tropic_forest.png 8bpp 202 270 16 9 17 3 normal
-1 sprites/tropic_forest.png 8bpp 234 270 15 9 -7 22 normal
-1 sprites/tropic_forest.png 8bpp 266 270 16 9 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 298 270 15 9 -6 -8 normal
-1 sprites/tropic_forest.png 8bpp 330 270 8 7 25 5 normal
-1 sprites/tropic_forest.png 8bpp 346 270 10 5 -4 27 normal
-1 sprites/tropic_forest.png 8bpp 364 270 8 7 -31 11 normal
-1 sprites/tropic_forest.png 8bpp 380 270 12 6 -5 -8 normal
-1 sprites/tropic_forest.png 10 270 09 20 38 -5 -8
-1 sprites/tropic_forest.png 58 270 09 26 38 -5 5
-1 sprites/tropic_forest.png 106 270 09 20 37 -31 11
-1 sprites/tropic_forest.png 154 270 09 27 38 -31 -8
-1 sprites/tropic_forest.png 202 270 09 9 16 17 3
-1 sprites/tropic_forest.png 234 270 09 9 15 -7 22
-1 sprites/tropic_forest.png 266 270 09 9 16 -31 11
-1 sprites/tropic_forest.png 298 270 09 9 15 -6 -8
-1 sprites/tropic_forest.png 330 270 09 7 8 25 5
-1 sprites/tropic_forest.png 346 270 09 5 10 -4 27
-1 sprites/tropic_forest.png 364 270 09 7 8 -31 11
-1 sprites/tropic_forest.png 380 270 09 6 12 -5 -8
-1 sprites/tropic_forest.png 8bpp 10 300 39 18 -6 0 normal
-1 sprites/tropic_forest.png 8bpp 58 300 38 11 -5 12 normal
-1 sprites/tropic_forest.png 8bpp 106 300 39 18 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 154 300 40 11 -32 0 normal
-1 sprites/tropic_forest.png 8bpp 202 300 20 6 13 12 normal
-1 sprites/tropic_forest.png 8bpp 234 300 13 7 -5 16 normal
-1 sprites/tropic_forest.png 8bpp 266 300 20 6 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 298 300 13 7 -6 0 normal
-1 sprites/tropic_forest.png 8bpp 330 300 8 4 26 13 normal
-1 sprites/tropic_forest.png 8bpp 346 300 12 3 -5 20 normal
-1 sprites/tropic_forest.png 8bpp 364 300 8 5 -31 6 normal
-1 sprites/tropic_forest.png 8bpp 380 300 15 4 -6 0 normal
-1 sprites/tropic_forest.png 10 300 09 18 39 -6 0
-1 sprites/tropic_forest.png 58 300 09 11 38 -5 12
-1 sprites/tropic_forest.png 106 300 09 18 39 -31 5
-1 sprites/tropic_forest.png 154 300 09 11 40 -32 0
-1 sprites/tropic_forest.png 202 300 09 6 20 13 12
-1 sprites/tropic_forest.png 234 300 09 7 13 -5 16
-1 sprites/tropic_forest.png 266 300 09 6 20 -31 5
-1 sprites/tropic_forest.png 298 300 09 7 13 -6 0
-1 sprites/tropic_forest.png 330 300 09 4 8 26 13
-1 sprites/tropic_forest.png 346 300 09 3 12 -5 20
-1 sprites/tropic_forest.png 364 300 09 5 8 -31 6
-1 sprites/tropic_forest.png 380 300 09 4 15 -6 0
-1 sprites/tropic_forest.png 8bpp 10 330 38 27 -5 -8 normal
-1 sprites/tropic_forest.png 8bpp 58 330 37 20 -4 11 normal
-1 sprites/tropic_forest.png 8bpp 106 330 37 26 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 154 330 38 20 -31 -8 normal
-1 sprites/tropic_forest.png 8bpp 202 330 16 9 17 11 normal
-1 sprites/tropic_forest.png 8bpp 234 330 15 9 -6 22 normal
-1 sprites/tropic_forest.png 8bpp 266 330 16 9 -31 3 normal
-1 sprites/tropic_forest.png 8bpp 298 330 15 9 -7 -8 normal
-1 sprites/tropic_forest.png 8bpp 330 330 8 7 25 11 normal
-1 sprites/tropic_forest.png 8bpp 346 330 10 5 -4 26 normal
-1 sprites/tropic_forest.png 8bpp 364 330 8 7 -31 5 normal
-1 sprites/tropic_forest.png 8bpp 380 330 12 6 -5 -8 normal
-1 sprites/tropic_forest.png 10 330 09 27 38 -5 -8
-1 sprites/tropic_forest.png 58 330 09 20 37 -4 11
-1 sprites/tropic_forest.png 106 330 09 26 37 -31 5
-1 sprites/tropic_forest.png 154 330 09 20 38 -31 -8
-1 sprites/tropic_forest.png 202 330 09 9 16 17 11
-1 sprites/tropic_forest.png 234 330 09 9 15 -6 22
-1 sprites/tropic_forest.png 266 330 09 9 16 -31 3
-1 sprites/tropic_forest.png 298 330 09 9 15 -7 -8
-1 sprites/tropic_forest.png 330 330 09 7 8 25 11
-1 sprites/tropic_forest.png 346 330 09 5 10 -4 26
-1 sprites/tropic_forest.png 364 330 09 7 8 -31 5
-1 sprites/tropic_forest.png 380 330 09 6 12 -5 -8
-1 * 7 02 05 43 01 00 00 00
-1 * 14 02 05 44 81 81 00 FF 01 40 00 01 01 41 00

View File

@@ -8,11 +8,11 @@
//
-1 * 0 0C "Road stop graphics"
-1 * 3 05 11 08
-1 sprites/roadstops.png 8bpp 34 8 13 23 5 -11 normal
-1 sprites/roadstops.png 8bpp 66 8 13 15 5 -2 normal
-1 sprites/roadstops.png 8bpp 98 8 21 19 -20 -7 normal
-1 sprites/roadstops.png 8bpp 130 8 22 17 -25 -4 normal
-1 sprites/roadstops.png 8bpp 162 8 32 25 -5 -9 normal
-1 sprites/roadstops.png 8bpp 210 8 28 26 -3 -12 normal
-1 sprites/roadstops.png 8bpp 258 8 29 25 -24 -12 normal
-1 sprites/roadstops.png 8bpp 306 8 32 25 -25 -9 normal
-1 sprites/roadstops.png 34 8 09 23 13 5 -11
-1 sprites/roadstops.png 66 8 09 15 13 5 -2
-1 sprites/roadstops.png 98 8 09 19 21 -20 -7
-1 sprites/roadstops.png 130 8 09 17 22 -25 -4
-1 sprites/roadstops.png 162 8 09 25 32 -5 -9
-1 sprites/roadstops.png 210 8 09 26 28 -3 -12
-1 sprites/roadstops.png 258 8 09 25 29 -24 -12
-1 sprites/roadstops.png 306 8 09 25 32 -25 -9

View File

@@ -5,57 +5,71 @@
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use an incorrect number of shores
// @@WARNING DISABLE 60
// -- End of NFO Renum 'settings' --
//
-1 * 6 07 83 01 \7! 00 0C
-1 * 54 0C "Missing shore tile graphics for the temperate climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 8bpp 82 8 64 15 -31 0 normal
-1 sprites/shore.png 8bpp 162 8 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 242 8 64 23 -31 0 normal
-1 sprites/shore.png 8bpp 322 8 64 47 -31 -16 normal
-1 sprites/shore.png 8bpp 402 8 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 482 8 64 39 -31 -8 normal
-1 sprites/shore.png 8bpp 562 8 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 642 8 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 722 8 64 32 -31 -1 normal
-1 sprites/shore.png 8bpp 2 72 64 31 -31 -8 normal
-1 sprites/shore.png 82 8 09 15 64 -31 0
-1 sprites/shore.png 162 8 09 31 64 -31 -8
-1 sprites/shore.png 242 8 09 23 64 -31 0
-1 sprites/shore.png 322 8 09 47 64 -31 -16
-1 sprites/shore.png 402 8 09 31 64 -31 -8
-1 sprites/shore.png 482 8 09 39 64 -31 -8
-1 sprites/shore.png 562 8 09 31 64 -31 -8
-1 sprites/shore.png 642 8 09 31 64 -31 -8
-1 sprites/shore.png 722 8 09 32 64 -31 -1
-1 sprites/shore.png 2 72 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 01 0C
-1 * 55 0C "Missing shore tile graphics for the sub-arctic climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 8bpp 130 72 64 15 -31 0 normal
-1 sprites/shore.png 8bpp 210 72 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 290 72 64 23 -31 0 normal
-1 sprites/shore.png 8bpp 370 72 64 47 -31 -16 normal
-1 sprites/shore.png 8bpp 450 72 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 530 72 64 39 -31 -8 normal
-1 sprites/shore.png 8bpp 610 72 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 690 72 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 2 136 64 32 -31 -1 normal
-1 sprites/shore.png 8bpp 82 136 64 31 -31 -8 normal
-1 sprites/shore.png 130 72 09 15 64 -31 0
-1 sprites/shore.png 210 72 09 31 64 -31 -8
-1 sprites/shore.png 290 72 09 23 64 -31 0
-1 sprites/shore.png 370 72 09 47 64 -31 -16
-1 sprites/shore.png 450 72 09 31 64 -31 -8
-1 sprites/shore.png 530 72 09 39 64 -31 -8
-1 sprites/shore.png 610 72 09 31 64 -31 -8
-1 sprites/shore.png 690 72 09 31 64 -31 -8
-1 sprites/shore.png 2 136 09 32 64 -31 -1
-1 sprites/shore.png 82 136 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 02 0C
-1 * 57 0C "Missing shore tile graphics for the sub-tropical climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 8bpp 210 136 64 15 -31 0 normal
-1 sprites/shore.png 8bpp 290 136 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 370 136 64 23 -31 0 normal
-1 sprites/shore.png 8bpp 450 136 64 47 -31 -16 normal
-1 sprites/shore.png 8bpp 530 136 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 610 136 64 39 -31 -8 normal
-1 sprites/shore.png 8bpp 690 136 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 2 200 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 82 200 64 32 -31 -1 normal
-1 sprites/shore.png 8bpp 162 200 64 31 -31 -8 normal
-1 sprites/shore.png 210 136 09 15 64 -31 0
-1 sprites/shore.png 290 136 09 31 64 -31 -8
-1 sprites/shore.png 370 136 09 23 64 -31 0
-1 sprites/shore.png 450 136 09 47 64 -31 -16
-1 sprites/shore.png 530 136 09 31 64 -31 -8
-1 sprites/shore.png 610 136 09 39 64 -31 -8
-1 sprites/shore.png 690 136 09 31 64 -31 -8
-1 sprites/shore.png 2 200 09 31 64 -31 -8
-1 sprites/shore.png 82 200 09 32 64 -31 -1
-1 sprites/shore.png 162 200 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 03 0C
-1 * 44 0C "Missing shore tile graphics for the toyland climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 8bpp 290 200 64 15 -31 0 normal
-1 sprites/shore.png 8bpp 370 200 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 450 200 64 23 -31 0 normal
-1 sprites/shore.png 8bpp 530 200 64 47 -31 -16 normal
-1 sprites/shore.png 8bpp 610 200 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 690 200 64 39 -31 -8 normal
-1 sprites/shore.png 8bpp 2 264 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 82 264 64 31 -31 -8 normal
-1 sprites/shore.png 8bpp 162 264 64 32 -31 -1 normal
-1 sprites/shore.png 8bpp 242 264 64 31 -31 -8 normal
-1 sprites/shore.png 290 200 09 15 64 -31 0
-1 sprites/shore.png 370 200 09 31 64 -31 -8
-1 sprites/shore.png 450 200 09 23 64 -31 0
-1 sprites/shore.png 530 200 09 47 64 -31 -16
-1 sprites/shore.png 610 200 09 31 64 -31 -8
-1 sprites/shore.png 690 200 09 39 64 -31 -8
-1 sprites/shore.png 2 264 09 31 64 -31 -8
-1 sprites/shore.png 82 264 09 31 64 -31 -8
-1 sprites/shore.png 162 264 09 32 64 -31 -1
-1 sprites/shore.png 242 264 09 31 64 -31 -8
//
// -- NFO Renum 'settings' --
// Reset warning about incorrect number of shores
// @@WARNING ENABLE 60
// -- End of NFO Renum 'settings' --
//

View File

@@ -8,486 +8,486 @@
//
-1 * 0 0C "Pre-signal, semaphore, and PBS graphics by Michael Blunck"
-1 * 3 05 04 F0
-1 sprites/signals.png 8bpp 66 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 82 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 98 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 114 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 130 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 146 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 162 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 178 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 194 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 210 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 226 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 242 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 258 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 274 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 290 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 306 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 322 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 338 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 354 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 370 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 386 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 402 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 418 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 434 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 450 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 466 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 482 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 498 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 514 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 530 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 546 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 562 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 578 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 594 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 610 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 626 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 642 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 658 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 674 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 690 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 706 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 722 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 738 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 754 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 770 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 786 8 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 2 40 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 18 40 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 34 40 10 21 -6 -19 normal
-1 sprites/signals.png 8bpp 50 40 7 23 -3 -21 normal
-1 sprites/signals.png 8bpp 66 40 10 21 1 -19 normal
-1 sprites/signals.png 8bpp 82 40 9 21 1 -19 normal
-1 sprites/signals.png 8bpp 98 40 9 21 1 -19 normal
-1 sprites/signals.png 8bpp 114 40 6 23 1 -21 normal
-1 sprites/signals.png 8bpp 130 40 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 146 40 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 162 40 2 21 1 -19 normal
-1 sprites/signals.png 8bpp 178 40 2 24 1 -22 normal
-1 sprites/signals.png 8bpp 194 40 2 23 1 -21 normal
-1 sprites/signals.png 8bpp 210 40 2 26 1 -24 normal
-1 sprites/signals.png 8bpp 226 40 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 242 40 8 21 -4 -19 normal
-1 sprites/signals.png 8bpp 258 40 11 21 1 -19 normal
-1 sprites/signals.png 8bpp 274 40 8 21 1 -19 normal
-1 sprites/signals.png 8bpp 290 40 12 21 -6 -19 normal
-1 sprites/signals.png 8bpp 322 40 9 23 -3 -21 normal
-1 sprites/signals.png 8bpp 338 40 12 21 -1 -19 normal
-1 sprites/signals.png 8bpp 370 40 11 21 -1 -19 normal
-1 sprites/signals.png 8bpp 386 40 11 21 -1 -19 normal
-1 sprites/signals.png 8bpp 402 40 8 23 -1 -21 normal
-1 sprites/signals.png 8bpp 418 40 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 450 40 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 482 40 4 21 1 -19 normal
-1 sprites/signals.png 8bpp 498 40 4 24 1 -22 normal
-1 sprites/signals.png 8bpp 514 40 4 23 -1 -21 normal
-1 sprites/signals.png 8bpp 530 40 4 26 -1 -24 normal
-1 sprites/signals.png 8bpp 546 40 13 21 -7 -19 normal
-1 sprites/signals.png 8bpp 578 40 10 21 -4 -19 normal
-1 sprites/signals.png 8bpp 594 40 13 21 -1 -19 normal
-1 sprites/signals.png 8bpp 626 40 10 21 -1 -19 normal
-1 sprites/signals.png 8bpp 642 40 11 21 -6 -19 normal
-1 sprites/signals.png 8bpp 658 40 8 23 -3 -21 normal
-1 sprites/signals.png 8bpp 674 40 11 21 0 -19 normal
-1 sprites/signals.png 8bpp 690 40 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 706 40 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 722 40 7 23 0 -21 normal
-1 sprites/signals.png 8bpp 738 40 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 754 40 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 770 40 4 21 1 -19 normal
-1 sprites/signals.png 8bpp 786 40 4 24 1 -22 normal
-1 sprites/signals.png 8bpp 2 88 4 23 -1 -21 normal
-1 sprites/signals.png 8bpp 18 88 4 26 -1 -24 normal
-1 sprites/signals.png 8bpp 34 88 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 66 88 9 21 -4 -19 normal
-1 sprites/signals.png 8bpp 82 88 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 114 88 9 21 0 -19 normal
-1 sprites/signals.png 8bpp 130 88 11 21 -6 -19 normal
-1 sprites/signals.png 8bpp 146 88 8 23 -3 -21 normal
-1 sprites/signals.png 8bpp 162 88 11 21 0 -19 normal
-1 sprites/signals.png 8bpp 178 88 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 194 88 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 210 88 7 23 0 -21 normal
-1 sprites/signals.png 8bpp 226 88 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 242 88 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 258 88 4 21 1 -19 normal
-1 sprites/signals.png 8bpp 274 88 4 24 1 -22 normal
-1 sprites/signals.png 8bpp 290 88 4 23 -1 -21 normal
-1 sprites/signals.png 8bpp 306 88 4 26 -1 -24 normal
-1 sprites/signals.png 8bpp 322 88 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 354 88 9 21 -4 -19 normal
-1 sprites/signals.png 8bpp 370 88 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 402 88 9 21 0 -19 normal
-1 sprites/signals.png 8bpp 418 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 434 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 450 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 466 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 482 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 498 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 514 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 530 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 546 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 562 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 578 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 594 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 610 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 626 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 642 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 658 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 674 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 690 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 706 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 722 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 738 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 754 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 770 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 786 88 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 2 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 18 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 34 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 50 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 66 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 82 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 98 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 114 136 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 130 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 146 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 162 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 178 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 194 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 210 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 226 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 242 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 258 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 274 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 290 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 306 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 322 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 338 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 354 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 370 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 386 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 402 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 418 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 434 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 450 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 466 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 482 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 498 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 514 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 530 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 546 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 562 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 578 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 594 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 610 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 626 136 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 642 136 10 21 -6 -19 normal
-1 sprites/signals.png 8bpp 658 136 7 23 -3 -21 normal
-1 sprites/signals.png 8bpp 674 136 10 21 1 -19 normal
-1 sprites/signals.png 8bpp 690 136 9 21 1 -19 normal
-1 sprites/signals.png 8bpp 706 136 9 21 1 -19 normal
-1 sprites/signals.png 8bpp 722 136 6 23 1 -21 normal
-1 sprites/signals.png 8bpp 738 136 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 754 136 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 770 136 2 21 1 -19 normal
-1 sprites/signals.png 8bpp 786 136 2 24 1 -22 normal
-1 sprites/signals.png 8bpp 2 184 2 23 1 -21 normal
-1 sprites/signals.png 8bpp 18 184 2 26 1 -24 normal
-1 sprites/signals.png 8bpp 34 184 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 50 184 8 21 -4 -19 normal
-1 sprites/signals.png 8bpp 66 184 11 21 1 -19 normal
-1 sprites/signals.png 8bpp 82 184 8 21 1 -19 normal
-1 sprites/signals.png 8bpp 98 184 12 21 -6 -19 normal
-1 sprites/signals.png 8bpp 130 184 9 23 -3 -21 normal
-1 sprites/signals.png 8bpp 146 184 12 21 -1 -19 normal
-1 sprites/signals.png 8bpp 178 184 11 21 -1 -19 normal
-1 sprites/signals.png 8bpp 194 184 11 21 -1 -19 normal
-1 sprites/signals.png 8bpp 210 184 8 23 -1 -21 normal
-1 sprites/signals.png 8bpp 226 184 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 258 184 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 290 184 4 21 -1 -19 normal
-1 sprites/signals.png 8bpp 306 184 4 24 -1 -22 normal
-1 sprites/signals.png 8bpp 322 184 4 23 1 -21 normal
-1 sprites/signals.png 8bpp 338 184 4 26 1 -24 normal
-1 sprites/signals.png 8bpp 354 184 13 21 -7 -19 normal
-1 sprites/signals.png 8bpp 386 184 10 21 -4 -19 normal
-1 sprites/signals.png 8bpp 402 184 13 21 -1 -19 normal
-1 sprites/signals.png 8bpp 434 184 10 21 -1 -19 normal
-1 sprites/signals.png 8bpp 450 184 11 21 -6 -19 normal
-1 sprites/signals.png 8bpp 466 184 8 23 -3 -21 normal
-1 sprites/signals.png 8bpp 482 184 11 21 0 -19 normal
-1 sprites/signals.png 8bpp 498 184 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 514 184 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 530 184 7 23 0 -21 normal
-1 sprites/signals.png 8bpp 546 184 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 562 184 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 578 184 4 21 1 -19 normal
-1 sprites/signals.png 8bpp 594 184 4 24 1 -22 normal
-1 sprites/signals.png 8bpp 610 184 4 23 -1 -21 normal
-1 sprites/signals.png 8bpp 626 184 4 26 -1 -24 normal
-1 sprites/signals.png 8bpp 642 184 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 674 184 9 21 -4 -19 normal
-1 sprites/signals.png 8bpp 690 184 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 722 184 9 21 0 -19 normal
-1 sprites/signals.png 8bpp 738 184 11 21 -6 -19 normal
-1 sprites/signals.png 8bpp 754 184 8 23 -3 -21 normal
-1 sprites/signals.png 8bpp 770 184 11 21 0 -19 normal
-1 sprites/signals.png 8bpp 786 184 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 2 232 10 21 0 -19 normal
-1 sprites/signals.png 8bpp 18 232 7 23 0 -21 normal
-1 sprites/signals.png 8bpp 34 232 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 50 232 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 66 232 4 21 1 -19 normal
-1 sprites/signals.png 8bpp 82 232 4 24 1 -22 normal
-1 sprites/signals.png 8bpp 98 232 4 23 -1 -21 normal
-1 sprites/signals.png 8bpp 114 232 4 26 -1 -24 normal
-1 sprites/signals.png 8bpp 130 232 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 162 232 9 21 -4 -19 normal
-1 sprites/signals.png 8bpp 178 232 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 210 232 9 21 0 -19 normal
-1 sprites/signals.png 66 8 01 21 6 -2 -19
-1 sprites/signals.png 82 8 01 21 6 -2 -19
-1 sprites/signals.png 98 8 01 21 6 -2 -19
-1 sprites/signals.png 114 8 01 21 6 -2 -19
-1 sprites/signals.png 130 8 01 21 6 -2 -19
-1 sprites/signals.png 146 8 01 21 6 -2 -19
-1 sprites/signals.png 162 8 01 21 6 -2 -19
-1 sprites/signals.png 178 8 01 21 6 -2 -19
-1 sprites/signals.png 194 8 01 21 6 -2 -19
-1 sprites/signals.png 210 8 01 21 6 -2 -19
-1 sprites/signals.png 226 8 01 21 6 -2 -19
-1 sprites/signals.png 242 8 01 21 6 -2 -19
-1 sprites/signals.png 258 8 01 21 6 -2 -19
-1 sprites/signals.png 274 8 01 21 6 -2 -19
-1 sprites/signals.png 290 8 01 21 6 -2 -19
-1 sprites/signals.png 306 8 01 21 6 -2 -19
-1 sprites/signals.png 322 8 01 21 6 -2 -19
-1 sprites/signals.png 338 8 01 21 6 -2 -19
-1 sprites/signals.png 354 8 01 21 6 -2 -19
-1 sprites/signals.png 370 8 01 21 6 -2 -19
-1 sprites/signals.png 386 8 01 21 6 -2 -19
-1 sprites/signals.png 402 8 01 21 6 -2 -19
-1 sprites/signals.png 418 8 01 21 6 -2 -19
-1 sprites/signals.png 434 8 01 21 6 -2 -19
-1 sprites/signals.png 450 8 01 21 6 -2 -19
-1 sprites/signals.png 466 8 01 21 6 -2 -19
-1 sprites/signals.png 482 8 01 21 6 -2 -19
-1 sprites/signals.png 498 8 01 21 6 -2 -19
-1 sprites/signals.png 514 8 01 21 6 -2 -19
-1 sprites/signals.png 530 8 01 21 6 -2 -19
-1 sprites/signals.png 546 8 01 21 6 -2 -19
-1 sprites/signals.png 562 8 01 21 6 -2 -19
-1 sprites/signals.png 578 8 01 21 6 -2 -19
-1 sprites/signals.png 594 8 01 21 6 -2 -19
-1 sprites/signals.png 610 8 01 21 6 -2 -19
-1 sprites/signals.png 626 8 01 21 6 -2 -19
-1 sprites/signals.png 642 8 01 21 6 -2 -19
-1 sprites/signals.png 658 8 01 21 6 -2 -19
-1 sprites/signals.png 674 8 01 21 6 -2 -19
-1 sprites/signals.png 690 8 01 21 6 -2 -19
-1 sprites/signals.png 706 8 01 21 6 -2 -19
-1 sprites/signals.png 722 8 01 21 6 -2 -19
-1 sprites/signals.png 738 8 01 21 6 -2 -19
-1 sprites/signals.png 754 8 01 21 6 -2 -19
-1 sprites/signals.png 770 8 01 21 6 -2 -19
-1 sprites/signals.png 786 8 01 21 6 -2 -19
-1 sprites/signals.png 2 40 01 21 6 -2 -19
-1 sprites/signals.png 18 40 01 21 6 -2 -19
-1 sprites/signals.png 34 40 01 21 10 -6 -19
-1 sprites/signals.png 50 40 01 23 7 -3 -21
-1 sprites/signals.png 66 40 01 21 10 1 -19
-1 sprites/signals.png 82 40 01 21 9 1 -19
-1 sprites/signals.png 98 40 01 21 9 1 -19
-1 sprites/signals.png 114 40 01 23 6 1 -21
-1 sprites/signals.png 130 40 01 21 10 -7 -19
-1 sprites/signals.png 146 40 01 21 10 -7 -19
-1 sprites/signals.png 162 40 01 21 2 1 -19
-1 sprites/signals.png 178 40 01 24 2 1 -22
-1 sprites/signals.png 194 40 01 23 2 1 -21
-1 sprites/signals.png 210 40 01 26 2 1 -24
-1 sprites/signals.png 226 40 01 21 11 -7 -19
-1 sprites/signals.png 242 40 01 21 8 -4 -19
-1 sprites/signals.png 258 40 01 21 11 1 -19
-1 sprites/signals.png 274 40 01 21 8 1 -19
-1 sprites/signals.png 290 40 01 21 12 -6 -19
-1 sprites/signals.png 322 40 01 23 9 -3 -21
-1 sprites/signals.png 338 40 01 21 12 -1 -19
-1 sprites/signals.png 370 40 01 21 11 -1 -19
-1 sprites/signals.png 386 40 01 21 11 -1 -19
-1 sprites/signals.png 402 40 01 23 8 -1 -21
-1 sprites/signals.png 418 40 01 21 12 -7 -19
-1 sprites/signals.png 450 40 01 21 12 -7 -19
-1 sprites/signals.png 482 40 01 21 4 1 -19
-1 sprites/signals.png 498 40 01 24 4 1 -22
-1 sprites/signals.png 514 40 01 23 4 -1 -21
-1 sprites/signals.png 530 40 01 26 4 -1 -24
-1 sprites/signals.png 546 40 01 21 13 -7 -19
-1 sprites/signals.png 578 40 01 21 10 -4 -19
-1 sprites/signals.png 594 40 01 21 13 -1 -19
-1 sprites/signals.png 626 40 01 21 10 -1 -19
-1 sprites/signals.png 642 40 01 21 11 -6 -19
-1 sprites/signals.png 658 40 01 23 8 -3 -21
-1 sprites/signals.png 674 40 01 21 11 0 -19
-1 sprites/signals.png 690 40 01 21 10 0 -19
-1 sprites/signals.png 706 40 01 21 10 0 -19
-1 sprites/signals.png 722 40 01 23 7 0 -21
-1 sprites/signals.png 738 40 01 21 11 -7 -19
-1 sprites/signals.png 754 40 01 21 11 -7 -19
-1 sprites/signals.png 770 40 01 21 4 1 -19
-1 sprites/signals.png 786 40 01 24 4 1 -22
-1 sprites/signals.png 2 88 01 23 4 -1 -21
-1 sprites/signals.png 18 88 01 26 4 -1 -24
-1 sprites/signals.png 34 88 01 21 12 -7 -19
-1 sprites/signals.png 66 88 01 21 9 -4 -19
-1 sprites/signals.png 82 88 01 21 12 0 -19
-1 sprites/signals.png 114 88 01 21 9 0 -19
-1 sprites/signals.png 130 88 01 21 11 -6 -19
-1 sprites/signals.png 146 88 01 23 8 -3 -21
-1 sprites/signals.png 162 88 01 21 11 0 -19
-1 sprites/signals.png 178 88 01 21 10 0 -19
-1 sprites/signals.png 194 88 01 21 10 0 -19
-1 sprites/signals.png 210 88 01 23 7 0 -21
-1 sprites/signals.png 226 88 01 21 11 -7 -19
-1 sprites/signals.png 242 88 01 21 11 -7 -19
-1 sprites/signals.png 258 88 01 21 4 1 -19
-1 sprites/signals.png 274 88 01 24 4 1 -22
-1 sprites/signals.png 290 88 01 23 4 -1 -21
-1 sprites/signals.png 306 88 01 26 4 -1 -24
-1 sprites/signals.png 322 88 01 21 12 -7 -19
-1 sprites/signals.png 354 88 01 21 9 -4 -19
-1 sprites/signals.png 370 88 01 21 12 0 -19
-1 sprites/signals.png 402 88 01 21 9 0 -19
-1 sprites/signals.png 418 88 01 19 6 -2 -17
-1 sprites/signals.png 434 88 01 19 6 -2 -17
-1 sprites/signals.png 450 88 01 19 6 -2 -17
-1 sprites/signals.png 466 88 01 19 6 -2 -17
-1 sprites/signals.png 482 88 01 19 6 -2 -17
-1 sprites/signals.png 498 88 01 19 6 -2 -17
-1 sprites/signals.png 514 88 01 19 6 -2 -17
-1 sprites/signals.png 530 88 01 19 6 -2 -17
-1 sprites/signals.png 546 88 01 19 6 -2 -17
-1 sprites/signals.png 562 88 01 19 6 -2 -17
-1 sprites/signals.png 578 88 01 19 6 -2 -17
-1 sprites/signals.png 594 88 01 19 6 -2 -17
-1 sprites/signals.png 610 88 01 19 6 -2 -17
-1 sprites/signals.png 626 88 01 19 6 -2 -17
-1 sprites/signals.png 642 88 01 19 6 -2 -17
-1 sprites/signals.png 658 88 01 19 6 -2 -17
-1 sprites/signals.png 674 88 01 19 6 -2 -17
-1 sprites/signals.png 690 88 01 19 6 -2 -17
-1 sprites/signals.png 706 88 01 19 6 -2 -17
-1 sprites/signals.png 722 88 01 19 6 -2 -17
-1 sprites/signals.png 738 88 01 19 6 -2 -17
-1 sprites/signals.png 754 88 01 19 6 -2 -17
-1 sprites/signals.png 770 88 01 19 6 -2 -17
-1 sprites/signals.png 786 88 01 19 6 -2 -17
-1 sprites/signals.png 2 136 01 19 6 -2 -17
-1 sprites/signals.png 18 136 01 19 6 -2 -17
-1 sprites/signals.png 34 136 01 19 6 -2 -17
-1 sprites/signals.png 50 136 01 19 6 -2 -17
-1 sprites/signals.png 66 136 01 19 6 -2 -17
-1 sprites/signals.png 82 136 01 19 6 -2 -17
-1 sprites/signals.png 98 136 01 19 6 -2 -17
-1 sprites/signals.png 114 136 01 19 6 -2 -17
-1 sprites/signals.png 130 136 01 21 6 -2 -19
-1 sprites/signals.png 146 136 01 21 6 -2 -19
-1 sprites/signals.png 162 136 01 21 6 -2 -19
-1 sprites/signals.png 178 136 01 21 6 -2 -19
-1 sprites/signals.png 194 136 01 21 6 -2 -19
-1 sprites/signals.png 210 136 01 21 6 -2 -19
-1 sprites/signals.png 226 136 01 21 6 -2 -19
-1 sprites/signals.png 242 136 01 21 6 -2 -19
-1 sprites/signals.png 258 136 01 21 6 -2 -19
-1 sprites/signals.png 274 136 01 21 6 -2 -19
-1 sprites/signals.png 290 136 01 21 6 -2 -19
-1 sprites/signals.png 306 136 01 21 6 -2 -19
-1 sprites/signals.png 322 136 01 21 6 -2 -19
-1 sprites/signals.png 338 136 01 21 6 -2 -19
-1 sprites/signals.png 354 136 01 21 6 -2 -19
-1 sprites/signals.png 370 136 01 21 6 -2 -19
-1 sprites/signals.png 386 136 01 21 6 -2 -19
-1 sprites/signals.png 402 136 01 21 6 -2 -19
-1 sprites/signals.png 418 136 01 21 6 -2 -19
-1 sprites/signals.png 434 136 01 21 6 -2 -19
-1 sprites/signals.png 450 136 01 21 6 -2 -19
-1 sprites/signals.png 466 136 01 21 6 -2 -19
-1 sprites/signals.png 482 136 01 21 6 -2 -19
-1 sprites/signals.png 498 136 01 21 6 -2 -19
-1 sprites/signals.png 514 136 01 21 6 -2 -19
-1 sprites/signals.png 530 136 01 21 6 -2 -19
-1 sprites/signals.png 546 136 01 21 6 -2 -19
-1 sprites/signals.png 562 136 01 21 6 -2 -19
-1 sprites/signals.png 578 136 01 21 6 -2 -19
-1 sprites/signals.png 594 136 01 21 6 -2 -19
-1 sprites/signals.png 610 136 01 21 6 -2 -19
-1 sprites/signals.png 626 136 01 21 6 -2 -19
-1 sprites/signals.png 642 136 01 21 10 -6 -19
-1 sprites/signals.png 658 136 01 23 7 -3 -21
-1 sprites/signals.png 674 136 01 21 10 1 -19
-1 sprites/signals.png 690 136 01 21 9 1 -19
-1 sprites/signals.png 706 136 01 21 9 1 -19
-1 sprites/signals.png 722 136 01 23 6 1 -21
-1 sprites/signals.png 738 136 01 21 10 -7 -19
-1 sprites/signals.png 754 136 01 21 10 -7 -19
-1 sprites/signals.png 770 136 01 21 2 1 -19
-1 sprites/signals.png 786 136 01 24 2 1 -22
-1 sprites/signals.png 2 184 01 23 2 1 -21
-1 sprites/signals.png 18 184 01 26 2 1 -24
-1 sprites/signals.png 34 184 01 21 11 -7 -19
-1 sprites/signals.png 50 184 01 21 8 -4 -19
-1 sprites/signals.png 66 184 01 21 11 1 -19
-1 sprites/signals.png 82 184 01 21 8 1 -19
-1 sprites/signals.png 98 184 01 21 12 -6 -19
-1 sprites/signals.png 130 184 01 23 9 -3 -21
-1 sprites/signals.png 146 184 01 21 12 -1 -19
-1 sprites/signals.png 178 184 01 21 11 -1 -19
-1 sprites/signals.png 194 184 01 21 11 -1 -19
-1 sprites/signals.png 210 184 01 23 8 -1 -21
-1 sprites/signals.png 226 184 01 21 12 -7 -19
-1 sprites/signals.png 258 184 01 21 12 -7 -19
-1 sprites/signals.png 290 184 01 21 4 -1 -19
-1 sprites/signals.png 306 184 01 24 4 -1 -22
-1 sprites/signals.png 322 184 01 23 4 1 -21
-1 sprites/signals.png 338 184 01 26 4 1 -24
-1 sprites/signals.png 354 184 01 21 13 -7 -19
-1 sprites/signals.png 386 184 01 21 10 -4 -19
-1 sprites/signals.png 402 184 01 21 13 -1 -19
-1 sprites/signals.png 434 184 01 21 10 -1 -19
-1 sprites/signals.png 450 184 01 21 11 -6 -19
-1 sprites/signals.png 466 184 01 23 8 -3 -21
-1 sprites/signals.png 482 184 01 21 11 0 -19
-1 sprites/signals.png 498 184 01 21 10 0 -19
-1 sprites/signals.png 514 184 01 21 10 0 -19
-1 sprites/signals.png 530 184 01 23 7 0 -21
-1 sprites/signals.png 546 184 01 21 11 -7 -19
-1 sprites/signals.png 562 184 01 21 11 -7 -19
-1 sprites/signals.png 578 184 01 21 4 1 -19
-1 sprites/signals.png 594 184 01 24 4 1 -22
-1 sprites/signals.png 610 184 01 23 4 -1 -21
-1 sprites/signals.png 626 184 01 26 4 -1 -24
-1 sprites/signals.png 642 184 01 21 12 -7 -19
-1 sprites/signals.png 674 184 01 21 9 -4 -19
-1 sprites/signals.png 690 184 01 21 12 0 -19
-1 sprites/signals.png 722 184 01 21 9 0 -19
-1 sprites/signals.png 738 184 01 21 11 -6 -19
-1 sprites/signals.png 754 184 01 23 8 -3 -21
-1 sprites/signals.png 770 184 01 21 11 0 -19
-1 sprites/signals.png 786 184 01 21 10 0 -19
-1 sprites/signals.png 2 232 01 21 10 0 -19
-1 sprites/signals.png 18 232 01 23 7 0 -21
-1 sprites/signals.png 34 232 01 21 11 -7 -19
-1 sprites/signals.png 50 232 01 21 11 -7 -19
-1 sprites/signals.png 66 232 01 21 4 1 -19
-1 sprites/signals.png 82 232 01 24 4 1 -22
-1 sprites/signals.png 98 232 01 23 4 -1 -21
-1 sprites/signals.png 114 232 01 26 4 -1 -24
-1 sprites/signals.png 130 232 01 21 12 -7 -19
-1 sprites/signals.png 162 232 01 21 9 -4 -19
-1 sprites/signals.png 178 232 01 21 12 0 -19
-1 sprites/signals.png 210 232 01 21 9 0 -19
-1 * 6 07 85 01 \70 3B F2
-1 * 6 07 86 01 \70 04 F1
-1 * 3 05 04 F0
-1 sprites/signals.png 8bpp 274 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 290 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 306 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 322 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 338 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 354 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 370 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 386 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 402 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 418 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 434 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 450 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 466 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 482 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 498 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 514 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 530 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 546 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 562 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 578 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 594 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 610 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 626 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 642 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 658 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 674 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 690 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 706 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 722 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 738 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 754 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 770 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 786 232 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 2 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 18 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 34 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 50 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 66 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 82 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 98 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 114 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 130 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 146 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 162 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 178 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 194 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 210 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 226 280 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 242 280 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 258 280 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 274 280 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 290 280 7 26 -5 -24 normal
-1 sprites/signals.png 8bpp 306 280 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 322 280 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 338 280 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 354 280 7 26 2 -24 normal
-1 sprites/signals.png 8bpp 370 280 3 23 0 -21 normal
-1 sprites/signals.png 8bpp 386 280 3 26 0 -24 normal
-1 sprites/signals.png 8bpp 402 280 3 21 0 -19 normal
-1 sprites/signals.png 8bpp 418 280 3 24 0 -22 normal
-1 sprites/signals.png 8bpp 434 280 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 466 280 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 482 280 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 514 280 9 24 -6 -22 normal
-1 sprites/signals.png 8bpp 530 280 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 562 280 11 23 -9 -21 normal
-1 sprites/signals.png 8bpp 578 280 11 23 -7 -21 normal
-1 sprites/signals.png 8bpp 594 280 9 26 -5 -24 normal
-1 sprites/signals.png 8bpp 610 280 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 642 280 11 23 -6 -21 normal
-1 sprites/signals.png 8bpp 658 280 11 23 0 -21 normal
-1 sprites/signals.png 8bpp 674 280 9 26 0 -24 normal
-1 sprites/signals.png 8bpp 690 280 5 23 0 -21 normal
-1 sprites/signals.png 8bpp 706 280 5 26 0 -24 normal
-1 sprites/signals.png 8bpp 722 280 5 21 -2 -19 normal
-1 sprites/signals.png 8bpp 738 280 5 24 -2 -22 normal
-1 sprites/signals.png 8bpp 754 280 13 21 -1 -19 normal
-1 sprites/signals.png 8bpp 786 280 10 24 -1 -22 normal
-1 sprites/signals.png 8bpp 2 328 13 21 -9 -19 normal
-1 sprites/signals.png 8bpp 34 328 10 24 -6 -22 normal
-1 sprites/signals.png 8bpp 50 328 11 21 -8 -19 normal
-1 sprites/signals.png 8bpp 66 328 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 82 328 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 98 328 8 26 -5 -24 normal
-1 sprites/signals.png 8bpp 114 328 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 130 328 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 146 328 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 162 328 8 26 1 -24 normal
-1 sprites/signals.png 8bpp 178 328 5 23 0 -21 normal
-1 sprites/signals.png 8bpp 194 328 5 26 0 -24 normal
-1 sprites/signals.png 8bpp 210 328 5 21 -2 -19 normal
-1 sprites/signals.png 8bpp 226 328 5 24 -2 -22 normal
-1 sprites/signals.png 8bpp 242 328 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 274 328 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 290 328 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 322 328 9 24 -6 -22 normal
-1 sprites/signals.png 8bpp 338 328 11 21 -8 -19 normal
-1 sprites/signals.png 8bpp 354 328 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 370 328 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 386 328 8 26 -5 -24 normal
-1 sprites/signals.png 8bpp 402 328 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 418 328 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 434 328 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 450 328 8 26 1 -24 normal
-1 sprites/signals.png 8bpp 466 328 5 23 0 -21 normal
-1 sprites/signals.png 8bpp 482 328 5 26 0 -24 normal
-1 sprites/signals.png 8bpp 498 328 5 21 -2 -19 normal
-1 sprites/signals.png 8bpp 514 328 5 24 -2 -22 normal
-1 sprites/signals.png 8bpp 530 328 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 562 328 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 578 328 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 610 328 9 24 -6 -22 normal
-1 sprites/signals.png 8bpp 626 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 642 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 658 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 674 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 690 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 706 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 722 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 738 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 754 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 770 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 786 328 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 2 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 18 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 34 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 50 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 66 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 82 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 98 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 114 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 130 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 146 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 162 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 178 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 194 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 210 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 226 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 242 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 258 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 274 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 290 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 306 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 322 376 6 19 -2 -17 normal
-1 sprites/signals.png 8bpp 338 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 354 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 370 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 386 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 402 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 418 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 434 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 450 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 466 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 482 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 498 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 514 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 530 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 546 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 562 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 578 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 594 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 610 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 626 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 642 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 658 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 674 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 690 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 706 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 722 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 738 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 754 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 770 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 786 376 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 2 408 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 18 408 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 34 408 6 21 -2 -19 normal
-1 sprites/signals.png 8bpp 50 408 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 66 408 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 82 408 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 98 408 7 26 -5 -24 normal
-1 sprites/signals.png 8bpp 114 408 10 21 -7 -19 normal
-1 sprites/signals.png 8bpp 130 408 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 146 408 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 162 408 7 26 2 -24 normal
-1 sprites/signals.png 8bpp 178 408 3 23 0 -21 normal
-1 sprites/signals.png 8bpp 194 408 3 26 0 -24 normal
-1 sprites/signals.png 8bpp 210 408 3 21 0 -19 normal
-1 sprites/signals.png 8bpp 226 408 3 24 0 -22 normal
-1 sprites/signals.png 8bpp 242 408 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 274 408 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 290 408 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 322 408 9 24 -6 -22 normal
-1 sprites/signals.png 8bpp 338 408 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 370 408 11 23 -9 -21 normal
-1 sprites/signals.png 8bpp 386 408 11 23 -7 -21 normal
-1 sprites/signals.png 8bpp 402 408 9 26 -5 -24 normal
-1 sprites/signals.png 8bpp 418 408 12 21 -7 -19 normal
-1 sprites/signals.png 8bpp 450 408 11 23 -6 -21 normal
-1 sprites/signals.png 8bpp 466 408 11 23 0 -21 normal
-1 sprites/signals.png 8bpp 482 408 9 26 0 -24 normal
-1 sprites/signals.png 8bpp 498 408 5 23 -1 -21 normal
-1 sprites/signals.png 8bpp 514 408 5 26 -1 -24 normal
-1 sprites/signals.png 8bpp 530 408 5 21 -1 -19 normal
-1 sprites/signals.png 8bpp 546 408 5 24 -1 -22 normal
-1 sprites/signals.png 8bpp 562 408 13 21 -1 -19 normal
-1 sprites/signals.png 8bpp 594 408 10 24 -1 -22 normal
-1 sprites/signals.png 8bpp 610 408 13 21 -9 -19 normal
-1 sprites/signals.png 8bpp 642 408 10 24 -6 -22 normal
-1 sprites/signals.png 8bpp 658 408 11 21 -8 -19 normal
-1 sprites/signals.png 8bpp 674 408 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 690 408 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 706 408 8 26 -5 -24 normal
-1 sprites/signals.png 8bpp 722 408 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 738 408 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 754 408 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 770 408 8 26 1 -24 normal
-1 sprites/signals.png 8bpp 786 408 5 23 0 -21 normal
-1 sprites/signals.png 8bpp 2 456 5 26 0 -24 normal
-1 sprites/signals.png 8bpp 18 456 5 21 -2 -19 normal
-1 sprites/signals.png 8bpp 34 456 5 24 -2 -22 normal
-1 sprites/signals.png 8bpp 50 456 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 82 456 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 98 456 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 130 456 9 24 -6 -22 normal
-1 sprites/signals.png 8bpp 146 456 11 21 -8 -19 normal
-1 sprites/signals.png 8bpp 162 456 10 23 -8 -21 normal
-1 sprites/signals.png 8bpp 178 456 10 23 -7 -21 normal
-1 sprites/signals.png 8bpp 194 456 8 26 -5 -24 normal
-1 sprites/signals.png 8bpp 210 456 11 21 -7 -19 normal
-1 sprites/signals.png 8bpp 226 456 10 23 -6 -21 normal
-1 sprites/signals.png 8bpp 242 456 10 23 1 -21 normal
-1 sprites/signals.png 8bpp 258 456 8 26 1 -24 normal
-1 sprites/signals.png 8bpp 274 456 5 23 0 -21 normal
-1 sprites/signals.png 8bpp 290 456 5 26 0 -24 normal
-1 sprites/signals.png 8bpp 306 456 5 21 -2 -19 normal
-1 sprites/signals.png 8bpp 322 456 5 24 -2 -22 normal
-1 sprites/signals.png 8bpp 338 456 12 21 0 -19 normal
-1 sprites/signals.png 8bpp 370 456 9 24 0 -22 normal
-1 sprites/signals.png 8bpp 386 456 12 21 -9 -19 normal
-1 sprites/signals.png 8bpp 418 456 9 24 -6 -22 normal
-1 sprites/signals.png 274 232 01 21 6 -2 -19
-1 sprites/signals.png 290 232 01 21 6 -2 -19
-1 sprites/signals.png 306 232 01 21 6 -2 -19
-1 sprites/signals.png 322 232 01 21 6 -2 -19
-1 sprites/signals.png 338 232 01 21 6 -2 -19
-1 sprites/signals.png 354 232 01 21 6 -2 -19
-1 sprites/signals.png 370 232 01 21 6 -2 -19
-1 sprites/signals.png 386 232 01 21 6 -2 -19
-1 sprites/signals.png 402 232 01 21 6 -2 -19
-1 sprites/signals.png 418 232 01 21 6 -2 -19
-1 sprites/signals.png 434 232 01 21 6 -2 -19
-1 sprites/signals.png 450 232 01 21 6 -2 -19
-1 sprites/signals.png 466 232 01 21 6 -2 -19
-1 sprites/signals.png 482 232 01 21 6 -2 -19
-1 sprites/signals.png 498 232 01 21 6 -2 -19
-1 sprites/signals.png 514 232 01 21 6 -2 -19
-1 sprites/signals.png 530 232 01 21 6 -2 -19
-1 sprites/signals.png 546 232 01 21 6 -2 -19
-1 sprites/signals.png 562 232 01 21 6 -2 -19
-1 sprites/signals.png 578 232 01 21 6 -2 -19
-1 sprites/signals.png 594 232 01 21 6 -2 -19
-1 sprites/signals.png 610 232 01 21 6 -2 -19
-1 sprites/signals.png 626 232 01 21 6 -2 -19
-1 sprites/signals.png 642 232 01 21 6 -2 -19
-1 sprites/signals.png 658 232 01 21 6 -2 -19
-1 sprites/signals.png 674 232 01 21 6 -2 -19
-1 sprites/signals.png 690 232 01 21 6 -2 -19
-1 sprites/signals.png 706 232 01 21 6 -2 -19
-1 sprites/signals.png 722 232 01 21 6 -2 -19
-1 sprites/signals.png 738 232 01 21 6 -2 -19
-1 sprites/signals.png 754 232 01 21 6 -2 -19
-1 sprites/signals.png 770 232 01 21 6 -2 -19
-1 sprites/signals.png 786 232 01 21 6 -2 -19
-1 sprites/signals.png 2 280 01 21 6 -2 -19
-1 sprites/signals.png 18 280 01 21 6 -2 -19
-1 sprites/signals.png 34 280 01 21 6 -2 -19
-1 sprites/signals.png 50 280 01 21 6 -2 -19
-1 sprites/signals.png 66 280 01 21 6 -2 -19
-1 sprites/signals.png 82 280 01 21 6 -2 -19
-1 sprites/signals.png 98 280 01 21 6 -2 -19
-1 sprites/signals.png 114 280 01 21 6 -2 -19
-1 sprites/signals.png 130 280 01 21 6 -2 -19
-1 sprites/signals.png 146 280 01 21 6 -2 -19
-1 sprites/signals.png 162 280 01 21 6 -2 -19
-1 sprites/signals.png 178 280 01 21 6 -2 -19
-1 sprites/signals.png 194 280 01 21 6 -2 -19
-1 sprites/signals.png 210 280 01 21 6 -2 -19
-1 sprites/signals.png 226 280 01 21 6 -2 -19
-1 sprites/signals.png 242 280 01 21 10 -7 -19
-1 sprites/signals.png 258 280 01 23 10 -8 -21
-1 sprites/signals.png 274 280 01 23 10 -7 -21
-1 sprites/signals.png 290 280 01 26 7 -5 -24
-1 sprites/signals.png 306 280 01 21 10 -7 -19
-1 sprites/signals.png 322 280 01 23 10 -6 -21
-1 sprites/signals.png 338 280 01 23 10 1 -21
-1 sprites/signals.png 354 280 01 26 7 2 -24
-1 sprites/signals.png 370 280 01 23 3 0 -21
-1 sprites/signals.png 386 280 01 26 3 0 -24
-1 sprites/signals.png 402 280 01 21 3 0 -19
-1 sprites/signals.png 418 280 01 24 3 0 -22
-1 sprites/signals.png 434 280 01 21 12 0 -19
-1 sprites/signals.png 466 280 01 24 9 0 -22
-1 sprites/signals.png 482 280 01 21 12 -9 -19
-1 sprites/signals.png 514 280 01 24 9 -6 -22
-1 sprites/signals.png 530 280 01 21 12 -9 -19
-1 sprites/signals.png 562 280 01 23 11 -9 -21
-1 sprites/signals.png 578 280 01 23 11 -7 -21
-1 sprites/signals.png 594 280 01 26 9 -5 -24
-1 sprites/signals.png 610 280 01 21 12 -7 -19
-1 sprites/signals.png 642 280 01 23 11 -6 -21
-1 sprites/signals.png 658 280 01 23 11 0 -21
-1 sprites/signals.png 674 280 01 26 9 0 -24
-1 sprites/signals.png 690 280 01 23 5 0 -21
-1 sprites/signals.png 706 280 01 26 5 0 -24
-1 sprites/signals.png 722 280 01 21 5 -2 -19
-1 sprites/signals.png 738 280 01 24 5 -2 -22
-1 sprites/signals.png 754 280 01 21 13 -1 -19
-1 sprites/signals.png 786 280 01 24 10 -1 -22
-1 sprites/signals.png 2 328 01 21 13 -9 -19
-1 sprites/signals.png 34 328 01 24 10 -6 -22
-1 sprites/signals.png 50 328 01 21 11 -8 -19
-1 sprites/signals.png 66 328 01 23 10 -8 -21
-1 sprites/signals.png 82 328 01 23 10 -7 -21
-1 sprites/signals.png 98 328 01 26 8 -5 -24
-1 sprites/signals.png 114 328 01 21 11 -7 -19
-1 sprites/signals.png 130 328 01 23 10 -6 -21
-1 sprites/signals.png 146 328 01 23 10 1 -21
-1 sprites/signals.png 162 328 01 26 8 1 -24
-1 sprites/signals.png 178 328 01 23 5 0 -21
-1 sprites/signals.png 194 328 01 26 5 0 -24
-1 sprites/signals.png 210 328 01 21 5 -2 -19
-1 sprites/signals.png 226 328 01 24 5 -2 -22
-1 sprites/signals.png 242 328 01 21 12 0 -19
-1 sprites/signals.png 274 328 01 24 9 0 -22
-1 sprites/signals.png 290 328 01 21 12 -9 -19
-1 sprites/signals.png 322 328 01 24 9 -6 -22
-1 sprites/signals.png 338 328 01 21 11 -8 -19
-1 sprites/signals.png 354 328 01 23 10 -8 -21
-1 sprites/signals.png 370 328 01 23 10 -7 -21
-1 sprites/signals.png 386 328 01 26 8 -5 -24
-1 sprites/signals.png 402 328 01 21 11 -7 -19
-1 sprites/signals.png 418 328 01 23 10 -6 -21
-1 sprites/signals.png 434 328 01 23 10 1 -21
-1 sprites/signals.png 450 328 01 26 8 1 -24
-1 sprites/signals.png 466 328 01 23 5 0 -21
-1 sprites/signals.png 482 328 01 26 5 0 -24
-1 sprites/signals.png 498 328 01 21 5 -2 -19
-1 sprites/signals.png 514 328 01 24 5 -2 -22
-1 sprites/signals.png 530 328 01 21 12 0 -19
-1 sprites/signals.png 562 328 01 24 9 0 -22
-1 sprites/signals.png 578 328 01 21 12 -9 -19
-1 sprites/signals.png 610 328 01 24 9 -6 -22
-1 sprites/signals.png 626 328 01 19 6 -2 -17
-1 sprites/signals.png 642 328 01 19 6 -2 -17
-1 sprites/signals.png 658 328 01 19 6 -2 -17
-1 sprites/signals.png 674 328 01 19 6 -2 -17
-1 sprites/signals.png 690 328 01 19 6 -2 -17
-1 sprites/signals.png 706 328 01 19 6 -2 -17
-1 sprites/signals.png 722 328 01 19 6 -2 -17
-1 sprites/signals.png 738 328 01 19 6 -2 -17
-1 sprites/signals.png 754 328 01 19 6 -2 -17
-1 sprites/signals.png 770 328 01 19 6 -2 -17
-1 sprites/signals.png 786 328 01 19 6 -2 -17
-1 sprites/signals.png 2 376 01 19 6 -2 -17
-1 sprites/signals.png 18 376 01 19 6 -2 -17
-1 sprites/signals.png 34 376 01 19 6 -2 -17
-1 sprites/signals.png 50 376 01 19 6 -2 -17
-1 sprites/signals.png 66 376 01 19 6 -2 -17
-1 sprites/signals.png 82 376 01 19 6 -2 -17
-1 sprites/signals.png 98 376 01 19 6 -2 -17
-1 sprites/signals.png 114 376 01 19 6 -2 -17
-1 sprites/signals.png 130 376 01 19 6 -2 -17
-1 sprites/signals.png 146 376 01 19 6 -2 -17
-1 sprites/signals.png 162 376 01 19 6 -2 -17
-1 sprites/signals.png 178 376 01 19 6 -2 -17
-1 sprites/signals.png 194 376 01 19 6 -2 -17
-1 sprites/signals.png 210 376 01 19 6 -2 -17
-1 sprites/signals.png 226 376 01 19 6 -2 -17
-1 sprites/signals.png 242 376 01 19 6 -2 -17
-1 sprites/signals.png 258 376 01 19 6 -2 -17
-1 sprites/signals.png 274 376 01 19 6 -2 -17
-1 sprites/signals.png 290 376 01 19 6 -2 -17
-1 sprites/signals.png 306 376 01 19 6 -2 -17
-1 sprites/signals.png 322 376 01 19 6 -2 -17
-1 sprites/signals.png 338 376 01 21 6 -2 -19
-1 sprites/signals.png 354 376 01 21 6 -2 -19
-1 sprites/signals.png 370 376 01 21 6 -2 -19
-1 sprites/signals.png 386 376 01 21 6 -2 -19
-1 sprites/signals.png 402 376 01 21 6 -2 -19
-1 sprites/signals.png 418 376 01 21 6 -2 -19
-1 sprites/signals.png 434 376 01 21 6 -2 -19
-1 sprites/signals.png 450 376 01 21 6 -2 -19
-1 sprites/signals.png 466 376 01 21 6 -2 -19
-1 sprites/signals.png 482 376 01 21 6 -2 -19
-1 sprites/signals.png 498 376 01 21 6 -2 -19
-1 sprites/signals.png 514 376 01 21 6 -2 -19
-1 sprites/signals.png 530 376 01 21 6 -2 -19
-1 sprites/signals.png 546 376 01 21 6 -2 -19
-1 sprites/signals.png 562 376 01 21 6 -2 -19
-1 sprites/signals.png 578 376 01 21 6 -2 -19
-1 sprites/signals.png 594 376 01 21 6 -2 -19
-1 sprites/signals.png 610 376 01 21 6 -2 -19
-1 sprites/signals.png 626 376 01 21 6 -2 -19
-1 sprites/signals.png 642 376 01 21 6 -2 -19
-1 sprites/signals.png 658 376 01 21 6 -2 -19
-1 sprites/signals.png 674 376 01 21 6 -2 -19
-1 sprites/signals.png 690 376 01 21 6 -2 -19
-1 sprites/signals.png 706 376 01 21 6 -2 -19
-1 sprites/signals.png 722 376 01 21 6 -2 -19
-1 sprites/signals.png 738 376 01 21 6 -2 -19
-1 sprites/signals.png 754 376 01 21 6 -2 -19
-1 sprites/signals.png 770 376 01 21 6 -2 -19
-1 sprites/signals.png 786 376 01 21 6 -2 -19
-1 sprites/signals.png 2 408 01 21 6 -2 -19
-1 sprites/signals.png 18 408 01 21 6 -2 -19
-1 sprites/signals.png 34 408 01 21 6 -2 -19
-1 sprites/signals.png 50 408 01 21 10 -7 -19
-1 sprites/signals.png 66 408 01 23 10 -8 -21
-1 sprites/signals.png 82 408 01 23 10 -7 -21
-1 sprites/signals.png 98 408 01 26 7 -5 -24
-1 sprites/signals.png 114 408 01 21 10 -7 -19
-1 sprites/signals.png 130 408 01 23 10 -6 -21
-1 sprites/signals.png 146 408 01 23 10 1 -21
-1 sprites/signals.png 162 408 01 26 7 2 -24
-1 sprites/signals.png 178 408 01 23 3 0 -21
-1 sprites/signals.png 194 408 01 26 3 0 -24
-1 sprites/signals.png 210 408 01 21 3 0 -19
-1 sprites/signals.png 226 408 01 24 3 0 -22
-1 sprites/signals.png 242 408 01 21 12 0 -19
-1 sprites/signals.png 274 408 01 24 9 0 -22
-1 sprites/signals.png 290 408 01 21 12 -9 -19
-1 sprites/signals.png 322 408 01 24 9 -6 -22
-1 sprites/signals.png 338 408 01 21 12 -9 -19
-1 sprites/signals.png 370 408 01 23 11 -9 -21
-1 sprites/signals.png 386 408 01 23 11 -7 -21
-1 sprites/signals.png 402 408 01 26 9 -5 -24
-1 sprites/signals.png 418 408 01 21 12 -7 -19
-1 sprites/signals.png 450 408 01 23 11 -6 -21
-1 sprites/signals.png 466 408 01 23 11 0 -21
-1 sprites/signals.png 482 408 01 26 9 0 -24
-1 sprites/signals.png 498 408 01 23 5 -1 -21
-1 sprites/signals.png 514 408 01 26 5 -1 -24
-1 sprites/signals.png 530 408 01 21 5 -1 -19
-1 sprites/signals.png 546 408 01 24 5 -1 -22
-1 sprites/signals.png 562 408 01 21 13 -1 -19
-1 sprites/signals.png 594 408 01 24 10 -1 -22
-1 sprites/signals.png 610 408 01 21 13 -9 -19
-1 sprites/signals.png 642 408 01 24 10 -6 -22
-1 sprites/signals.png 658 408 01 21 11 -8 -19
-1 sprites/signals.png 674 408 01 23 10 -8 -21
-1 sprites/signals.png 690 408 01 23 10 -7 -21
-1 sprites/signals.png 706 408 01 26 8 -5 -24
-1 sprites/signals.png 722 408 01 21 11 -7 -19
-1 sprites/signals.png 738 408 01 23 10 -6 -21
-1 sprites/signals.png 754 408 01 23 10 1 -21
-1 sprites/signals.png 770 408 01 26 8 1 -24
-1 sprites/signals.png 786 408 01 23 5 0 -21
-1 sprites/signals.png 2 456 01 26 5 0 -24
-1 sprites/signals.png 18 456 01 21 5 -2 -19
-1 sprites/signals.png 34 456 01 24 5 -2 -22
-1 sprites/signals.png 50 456 01 21 12 0 -19
-1 sprites/signals.png 82 456 01 24 9 0 -22
-1 sprites/signals.png 98 456 01 21 12 -9 -19
-1 sprites/signals.png 130 456 01 24 9 -6 -22
-1 sprites/signals.png 146 456 01 21 11 -8 -19
-1 sprites/signals.png 162 456 01 23 10 -8 -21
-1 sprites/signals.png 178 456 01 23 10 -7 -21
-1 sprites/signals.png 194 456 01 26 8 -5 -24
-1 sprites/signals.png 210 456 01 21 11 -7 -19
-1 sprites/signals.png 226 456 01 23 10 -6 -21
-1 sprites/signals.png 242 456 01 23 10 1 -21
-1 sprites/signals.png 258 456 01 26 8 1 -24
-1 sprites/signals.png 274 456 01 23 5 0 -21
-1 sprites/signals.png 290 456 01 26 5 0 -24
-1 sprites/signals.png 306 456 01 21 5 -2 -19
-1 sprites/signals.png 322 456 01 24 5 -2 -22
-1 sprites/signals.png 338 456 01 21 12 0 -19
-1 sprites/signals.png 370 456 01 24 9 0 -22
-1 sprites/signals.png 386 456 01 21 12 -9 -19
-1 sprites/signals.png 418 456 01 24 9 -6 -22

View File

@@ -8,15 +8,15 @@
//
-1 * 0 0C "Sloped tracks"
-1 * 3 05 0F 0C
-1 sprites/sloped_tracks.png 8bpp 50 8 42 29 -19 -3 normal
-1 sprites/sloped_tracks.png 8bpp 98 8 41 13 -20 5 normal
-1 sprites/sloped_tracks.png 8bpp 146 8 42 14 -19 5 normal
-1 sprites/sloped_tracks.png 8bpp 194 8 42 29 -21 -3 normal
-1 sprites/sloped_tracks.png 8bpp 242 8 33 25 -15 -1 normal
-1 sprites/sloped_tracks.png 8bpp 290 8 33 10 -15 7 normal
-1 sprites/sloped_tracks.png 8bpp 338 8 34 10 -15 7 normal
-1 sprites/sloped_tracks.png 8bpp 386 8 34 25 -15 -1 normal
-1 sprites/sloped_tracks.png 8bpp 434 8 31 23 -13 -1 normal
-1 sprites/sloped_tracks.png 8bpp 482 8 32 10 -15 7 normal
-1 sprites/sloped_tracks.png 8bpp 530 8 31 10 -15 7 normal
-1 sprites/sloped_tracks.png 8bpp 578 8 31 23 -16 -1 normal
-1 sprites/sloped_tracks.png 50 8 09 29 42 -19 -3
-1 sprites/sloped_tracks.png 98 8 09 13 41 -20 5
-1 sprites/sloped_tracks.png 146 8 09 14 42 -19 5
-1 sprites/sloped_tracks.png 194 8 09 29 42 -21 -3
-1 sprites/sloped_tracks.png 242 8 09 25 33 -15 -1
-1 sprites/sloped_tracks.png 290 8 09 10 33 -15 7
-1 sprites/sloped_tracks.png 338 8 09 10 34 -15 7
-1 sprites/sloped_tracks.png 386 8 09 25 34 -15 -1
-1 sprites/sloped_tracks.png 434 8 09 23 31 -13 -1
-1 sprites/sloped_tracks.png 482 8 09 10 32 -15 7
-1 sprites/sloped_tracks.png 530 8 09 10 31 -15 7
-1 sprites/sloped_tracks.png 578 8 09 23 31 -16 -1

View File

@@ -8,116 +8,116 @@
//
-1 * 0 0C "Tram track graphics by PikkaBird"
-1 * 3 05 0B 71
-1 sprites/tramtracks.png 8bpp 18 8 20 13 0 4 normal
-1 sprites/tramtracks.png 8bpp 50 8 20 13 0 4 normal
-1 sprites/tramtracks.png 8bpp 82 8 64 36 -18 -8 normal
-1 sprites/tramtracks.png 8bpp 162 8 62 36 -16 -8 normal
-1 sprites/tramtracks.png 8bpp 242 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 322 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 402 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 642 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 722 8 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 2 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 82 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 162 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 242 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 322 56 64 39 -31 -8 normal
-1 sprites/tramtracks.png 8bpp 402 56 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 56 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 56 64 39 -31 -8 normal
-1 sprites/tramtracks.png 8bpp 642 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 722 56 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 2 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 82 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 162 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 242 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 322 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 402 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 642 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 722 120 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 2 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 82 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 162 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 242 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 322 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 402 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 168 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 168 64 39 -31 -8 normal
-1 sprites/tramtracks.png 8bpp 642 168 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 722 168 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 2 232 64 39 -31 -8 normal
-1 sprites/tramtracks.png 8bpp 82 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 162 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 242 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 322 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 402 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 232 20 20 0 0 normal
-1 sprites/tramtracks.png 8bpp 594 232 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 674 232 62 64 2 -49 normal
-1 sprites/tramtracks.png 8bpp 2 312 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 82 312 62 64 -62 -49 normal
-1 sprites/tramtracks.png 8bpp 162 312 62 64 -62 -49 normal
-1 sprites/tramtracks.png 8bpp 242 312 62 64 2 -49 normal
-1 sprites/tramtracks.png 8bpp 322 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 402 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 482 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 562 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 642 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 722 312 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 2 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 82 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 162 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 242 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 322 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 402 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 482 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 562 392 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 642 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 722 392 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 2 472 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 82 472 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 162 472 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 242 472 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 322 472 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 402 472 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 482 472 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 472 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 642 472 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 722 472 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 2 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 82 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 162 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 242 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 322 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 402 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 482 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 562 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 642 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 722 552 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 2 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 82 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 162 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 242 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 322 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 402 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 482 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 562 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 642 616 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 722 616 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 2 696 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 82 696 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 162 696 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 242 696 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 322 696 64 56 -31 -25 normal
-1 sprites/tramtracks.png 8bpp 402 696 64 48 -31 -17 normal
-1 sprites/tramtracks.png 8bpp 482 696 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 562 696 64 31 -31 0 normal
-1 sprites/tramtracks.png 8bpp 642 696 64 39 -31 -8 normal
-1 sprites/tramtracks.png 8bpp 722 696 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 2 776 64 23 -31 0 normal
-1 sprites/tramtracks.png 8bpp 82 776 64 39 -31 -8 normal
-1 sprites/tramtracks.png 18 8 09 13 20 0 4
-1 sprites/tramtracks.png 50 8 09 13 20 0 4
-1 sprites/tramtracks.png 82 8 03 36 64 -18 -8
-1 sprites/tramtracks.png 162 8 03 36 62 -16 -8
-1 sprites/tramtracks.png 242 8 09 31 64 -31 0
-1 sprites/tramtracks.png 322 8 09 31 64 -31 0
-1 sprites/tramtracks.png 402 8 09 31 64 -31 0
-1 sprites/tramtracks.png 482 8 09 31 64 -31 0
-1 sprites/tramtracks.png 562 8 09 31 64 -31 0
-1 sprites/tramtracks.png 642 8 09 31 64 -31 0
-1 sprites/tramtracks.png 722 8 09 31 64 -31 0
-1 sprites/tramtracks.png 2 56 09 31 64 -31 0
-1 sprites/tramtracks.png 82 56 09 31 64 -31 0
-1 sprites/tramtracks.png 162 56 09 31 64 -31 0
-1 sprites/tramtracks.png 242 56 09 31 64 -31 0
-1 sprites/tramtracks.png 322 56 09 39 64 -31 -8
-1 sprites/tramtracks.png 402 56 09 23 64 -31 0
-1 sprites/tramtracks.png 482 56 09 23 64 -31 0
-1 sprites/tramtracks.png 562 56 09 39 64 -31 -8
-1 sprites/tramtracks.png 642 56 09 31 64 -31 0
-1 sprites/tramtracks.png 722 56 09 31 64 -31 0
-1 sprites/tramtracks.png 2 120 09 31 64 -31 0
-1 sprites/tramtracks.png 82 120 09 31 64 -31 0
-1 sprites/tramtracks.png 162 120 09 31 64 -31 0
-1 sprites/tramtracks.png 242 120 09 31 64 -31 0
-1 sprites/tramtracks.png 322 120 09 31 64 -31 0
-1 sprites/tramtracks.png 402 120 09 31 64 -31 0
-1 sprites/tramtracks.png 482 120 09 31 64 -31 0
-1 sprites/tramtracks.png 562 120 09 31 64 -31 0
-1 sprites/tramtracks.png 642 120 09 31 64 -31 0
-1 sprites/tramtracks.png 722 120 09 31 64 -31 0
-1 sprites/tramtracks.png 2 168 09 31 64 -31 0
-1 sprites/tramtracks.png 82 168 09 31 64 -31 0
-1 sprites/tramtracks.png 162 168 09 31 64 -31 0
-1 sprites/tramtracks.png 242 168 09 31 64 -31 0
-1 sprites/tramtracks.png 322 168 09 31 64 -31 0
-1 sprites/tramtracks.png 402 168 09 31 64 -31 0
-1 sprites/tramtracks.png 482 168 09 31 64 -31 0
-1 sprites/tramtracks.png 562 168 09 39 64 -31 -8
-1 sprites/tramtracks.png 642 168 09 23 64 -31 0
-1 sprites/tramtracks.png 722 168 09 23 64 -31 0
-1 sprites/tramtracks.png 2 232 09 39 64 -31 -8
-1 sprites/tramtracks.png 82 232 09 31 64 -31 0
-1 sprites/tramtracks.png 162 232 09 31 64 -31 0
-1 sprites/tramtracks.png 242 232 09 31 64 -31 0
-1 sprites/tramtracks.png 322 232 09 31 64 -31 0
-1 sprites/tramtracks.png 402 232 09 31 64 -31 0
-1 sprites/tramtracks.png 482 232 09 31 64 -31 0
-1 sprites/tramtracks.png 562 232 09 20 20 0 0
-1 sprites/tramtracks.png 594 232 09 31 64 -31 0
-1 sprites/tramtracks.png 674 232 09 64 62 2 -49
-1 sprites/tramtracks.png 2 312 09 31 64 -31 0
-1 sprites/tramtracks.png 82 312 09 64 62 -62 -49
-1 sprites/tramtracks.png 162 312 09 64 62 -62 -49
-1 sprites/tramtracks.png 242 312 09 64 62 2 -49
-1 sprites/tramtracks.png 322 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 392 09 56 64 -31 -25
-1 sprites/tramtracks.png 642 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 82 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 162 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 402 472 09 31 64 -31 0
-1 sprites/tramtracks.png 482 472 09 31 64 -31 0
-1 sprites/tramtracks.png 562 472 09 31 64 -31 0
-1 sprites/tramtracks.png 642 472 09 31 64 -31 0
-1 sprites/tramtracks.png 722 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 616 09 56 64 -31 -25
-1 sprites/tramtracks.png 722 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 82 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 242 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 402 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 696 09 31 64 -31 0
-1 sprites/tramtracks.png 562 696 09 31 64 -31 0
-1 sprites/tramtracks.png 642 696 09 39 64 -31 -8
-1 sprites/tramtracks.png 722 696 09 23 64 -31 0
-1 sprites/tramtracks.png 2 776 09 23 64 -31 0
-1 sprites/tramtracks.png 82 776 09 39 64 -31 -8

View File

@@ -1,74 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 63 0C "Tunnel portal overlays for railtypes by Snail (Jacopo Coletto)"
// Tropical sprites.
-1 * 6 07 83 01 \7! 02 11
-1 * 3 05 17 10
-1 sprites/tunnel_portals.png 8bpp 5 88 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 88 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 88 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 88 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 88 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 88 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 88 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 88 40 37 -31 -38 normal
-1 sprites/tunnel_portals.png 8bpp 5 170 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 170 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 170 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 170 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 170 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 170 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 170 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 170 40 37 -31 -38 normal
// Temperate grass + snow sprites.
-1 * 6 07 83 01 \7= 02 25
-1 * 3 05 17 10
-1 sprites/tunnel_portals.png 8bpp 5 6 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 6 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 6 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 6 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 6 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 6 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 6 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 6 40 37 -31 -38 normal
-1 sprites/tunnel_portals.png 8bpp 5 129 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 129 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 129 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 129 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 129 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 129 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 129 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 129 40 37 -31 -38 normal
// Arctic grass sprites.
-1 * 6 07 83 01 \7! 01 09
-1 * 4 05 97 08 00
-1 sprites/tunnel_portals.png 8bpp 5 47 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 47 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 47 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 47 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 47 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 47 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 47 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 47 40 37 -31 -38 normal
// Toyland sprites.
-1 * 6 07 83 01 \7! 03 09
-1 * 4 05 97 08 00
-1 sprites/tunnel_portals.png 8bpp 5 211 35 33 -31 -2 normal
-1 sprites/tunnel_portals.png 8bpp 43 211 40 37 -7 -38 normal
-1 sprites/tunnel_portals.png 8bpp 86 211 35 21 -31 0 normal
-1 sprites/tunnel_portals.png 8bpp 124 211 40 22 -7 -29 normal
-1 sprites/tunnel_portals.png 8bpp 168 211 35 21 -2 0 normal
-1 sprites/tunnel_portals.png 8bpp 206 211 40 22 -31 -29 normal
-1 sprites/tunnel_portals.png 8bpp 249 211 35 33 -2 -2 normal
-1 sprites/tunnel_portals.png 8bpp 287 211 40 37 -31 -38 normal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -1,13 +0,0 @@
# $Id: openttd.desktop.translation.awk 19884 2010-05-22 19:59:37Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to automatically remove duplicate Comment[i]= lines
#
BEGIN { FS = "="; last = "" }
{ if (last != $1) { print $0 }; last = $1 }

View File

@@ -6,10 +6,10 @@
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to automatically generate a comment lines for
# a translated desktop shortcut. If it does not exist there
# Awk script to automatically generate a single comment line
# for a translated desktop shortcut. If it does not exist there
# is no output.
#
/##isocode/ { lang = $2; next }
/STR_DESKTOP_SHORTCUT_COMMENT/ { sub("^[^:]*:", "", $0); print "Comment[" lang "]=" $0; sub("_.*", "", lang); print "Comment[" lang "]=" $0; next}
/STR_DESKTOP_SHORTCUT_COMMENT/ { sub("^[^:]*:", "", $0); print "Comment[" lang "]=" $0; next}

View File

@@ -1,81 +1,3 @@
openttd (1.3.0-beta1) unstable; urgency=low
* New upstream release 1.3.0-beta1
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 24 Dec 2012 00:00:00 +0100
openttd (1.2.3) unstable; urgency=low
* New upstream release 1.2.3
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Nov 2012 00:00:00 +0200
openttd (1.2.3~RC1) unstable; urgency=low
* New upstream release 1.2.3-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 17 Oct 2012 00:00:00 +0200
openttd (1.2.2) unstable; urgency=low
* New upstream release 1.2.2
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 16 Aug 2012 20:00:00 +0200
openttd (1.2.2~RC1) unstable; urgency=low
* New upstream release 1.2.2-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Aug 2012 00:00:00 +0200
openttd (1.2.1) unstable; urgency=low
* New upstream release 1.2.1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Jun 2012 00:00:00 +0200
openttd (1.2.1~RC1) unstable; urgency=low
* New upstream release 1.2.1-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 16 Apr 2012 22:00:00 +0200
openttd (1.2.0) unstable; urgency=low
* New upstream release 1.2.0
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Apr 2012 14:00:00 +0200
openttd (1.2.0~RC4) unstable; urgency=low
* New upstream release 1.2.0-RC4
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Apr 2012 00:00:00 +0200
openttd (1.2.0~RC3) unstable; urgency=low
* New upstream release 1.2.0-RC3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 18 Mar 2012 18:00:00 +0100
openttd (1.2.0~RC2) unstable; urgency=low
* New upstream release 1.2.0-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Mar 2012 18:00:00 +0100
openttd (1.2.0~RC1) unstable; urgency=low
* New upstream release 1.2.0-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 19 Feb 2012 23:00:00 +0100
openttd (1.2.0~beta4) unstable; urgency=low
* New upstream release 1.2.0-beta4
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 04 Feb 2012 16:00:00 +0100
openttd (1.2.0~beta3) unstable; urgency=low
* New upstream release 1.2.0-beta3

Binary file not shown.

View File

@@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.3.0-beta1
set OPENTTD_VERSION=1.2.0-beta3
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=1.2.0

View File

@@ -1,58 +1,40 @@
#
# spec file for package openttd
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2007-2012 The OpenTTD developers
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
%define dedicated 0
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define binname openttd
Name: openttd
Version: 1.3.beta1
Release: 0
%define srcver 1.3.0-beta1
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
License: GPL-2.0
Group: Amusements/Games/Strategy/Other
Url: http://www.openttd.org
%define srcver 1.2.0
Source: http://binaries.openttd.org/releases/%{srcver}/%{name}-%{srcver}-source.tar.gz
%if 0%{?suse_version} || 0%{?mdkversion}
Recommends: %{name}-gui
%if %{dedicated}
Name: %{binname}-dedicated
%else
Name: %{binname}
%endif
Version: %{srcver}
Release: 1%{?dist}
Group: Amusements/Games/Strategy/Other
License: GPLv2
URL: http://www.openttd.org
Summary: An open source clone of Chris Sawyer's Transport Tycoon Deluxe
Source: openttd%{?branch:-%{branch}}-%{srcver}-source.tar.bz2
# the main package works with the exact same data package version only
Requires: %{binname}-data = %{version}
BuildRequires: gcc-c++
BuildRequires: libpng-devel
BuildRequires: zlib-devel
%if 0%{?suse_version} || 0%{?mdkversion}
BuildRequires: update-alternatives
Requires: update-alternatives
%else
BuildRequires: chkconfig
Requires: chkconfig
%endif
%if 0%{?mdkversion}
BuildRequires: liblzma-devel
BuildRequires: liblzo-devel
BuildRequires: liblzma-devel
%else
BuildRequires: lzo-devel
BuildRequires: xz-devel
%endif
# OBS workaround: needed by libdrm
%if 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
#needed by libdrm
%if 0%{?rhel_version} >= 600
BuildRequires: kernel
%endif
@@ -61,18 +43,44 @@ BuildRequires: kernel
BuildRequires: pkg-config
%endif
# bulding openttd.grf is not required as it is a) part of source and
# b) required only, if you want to use the original set
%if 0%{?with_grfcodec}
# Desktop specific tags, not needed for dedicated
%if !%{dedicated}
BuildRequires: fontconfig-devel
BuildRequires: SDL-devel
BuildRequires: grfcodec
# vendor specific dependencies
%if !0%{?rhel_version}
BuildRequires: libicu-devel
%endif
%if 0%{?rhel_version} || 0%{?fedora}
BuildRequires: freetype-devel
%endif
%if 0%{?suse_version} || 0%{?mdkversion}
BuildRequires: freetype2-devel
%endif
%if 0%{?suse_version}
BuildRequires: update-desktop-files
%endif
%endif
%if %{dedicated}
Conflicts: %{binname} %{binname}-gui
%else
Provides: %{binname}-gui
Conflicts: %{binname}-dedicated
Requires: openttd-opensfx
# recommends works for suse (not sles9) and mandriva, only
%if 0%{?suse_version} || 0%{?mdkversion}
# require timidity is part of openmsx
Recommends: openttd-openmsx
%endif
%endif
# Recommends would fit better but not well supported...
Requires: openttd-opengfx >= 0.4.2
Requires: openttd-opengfx >= 0.3.2
Obsoletes: %{name}-data < %{version}
Provides: %{name}-data = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
%description
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
@@ -84,161 +92,70 @@ 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.
%package gui
Summary: OpenTTD GUI/Client (requires SDL)
# the subpackage data needs only to build once, the dedicated version
# can reuse the data package of the gui package
%if !%{dedicated}
%package data
Summary: Data package for OpenTTD
Group: Amusements/Games/Strategy/Other
%if 0%{?suse_version} >= 1120 || 0%{?fedora} || 0%{?mdkversion}
BuildArch: noarch
%endif
BuildRequires: grfcodec
Requires: %{name}
Conflicts: %{name}-dedicated
BuildRequires: SDL-devel
BuildRequires: fontconfig-devel
%if 0%{?rhel_version} != 600
BuildRequires: libicu-devel
%endif
%if 0%{?rhel_version} || 0%{?fedora}
BuildRequires: freetype-devel
%endif
%if 0%{?suse_version} || 0%{?mdkversion}
BuildRequires: freetype2-devel
%endif
%if 0%{?suse_version}
BuildRequires: update-desktop-files
%else
BuildRequires: desktop-file-utils
Requires: hicolor-icon-theme
%endif
%if 0%{?suse_version} || 0%{?mdkversion}
Recommends: openttd-openmsx
Recommends: openttd-opensfx
%endif
%description gui
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
with lots of new features and enhancements. To play the game you need either
the original data from the game or install the recommend subackages OpenGFX for
free graphics, OpenSFX for free sounds and OpenMSX for free music.
This subpackage provides the binary which needs SDL.
%package dedicated
Summary: OpenTTD Dedicated Server binary (without SDL)
Group: Amusements/Games/Strategy/Other
Requires: %{name}
Conflicts: %{name}-gui
%description dedicated
%description data
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
with lots of new features and enhancements. To play the game you need either
the original data from the game or the required package OpenGFX and OpenSFX.
This subpackage provides the binary without dependency of SDL.
This package is required by openttd gui and openttd dedicated package. This
way it is possible to install a openttd version without SDL requirement.
%endif
%prep
%setup -qn openttd%{?branch:-%{branch}}-%{srcver}
# we build the grfs from sources but validate the result with the existing data
%if 0%{?with_grfcodec}
md5sum bin/data/* > validate.data
%endif
md5sum bin/baseset/* > validate.data
%build
# first, we build the dedicated binary and copy it to dedicated/
./configure \
--prefix-dir="%{_prefix}" \
--binary-name="%{binname}" \
--binary-dir="bin" \
--data-dir="share/%{name}" \
--enable-dedicated
make %{?_smp_mflags} BUNDLE_DIR="dedicated" bundle
# then, we build the common gui version which we install the usual way
./configure \
--prefix-dir="%{_prefix}" \
--binary-name="%{name}" \
--binary-dir="bin" \
--data-dir="share/%{name}" \
--doc-dir="share/doc/%{name}" \
--data-dir="share/%{binname}" \
--doc-dir="share/doc/%{binname}" \
--menu-name="OpenTTD%{?branch: %{branch}}" \
--menu-group="Game;StrategyGame;"
--menu-group="Game;StrategyGame;" \
--enable-dedicated="%{dedicated}" \
make %{?_smp_mflags}
%install
# install the dedicated binary
install -D -m0755 dedicated/openttd %{buildroot}%{_bindir}/%{name}-dedicated
# install the gui binary and rename to openttd-gui
make install INSTALL_DIR=%{buildroot}
mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-gui
# we need a dummy target for /etc/alternatives/openttd
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/%{name}
ln -s -f /etc/alternatives/%{name} %{buildroot}%{_bindir}/%{name}
%if 0%{?suse_version}
%suse_update_desktop_file -r %{name} Game StrategyGame
%if %{dedicated}
# dedicated package needs binary only
install -D -m0755 bin/openttd %{buildroot}/%{_bindir}/%{binname}
%else
%if 0%{?fedora} || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600
desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
--add-category=StrategyGame \
media/openttd.desktop
%endif
make install INSTALL_DIR="%{buildroot}"
%if 0%{?suse_version}
%suse_update_desktop_file -r %{binname} Game StrategyGame
%endif
%endif
%if 0%{?with_grfcodec}
%clean
rm -rf "%{buildroot}"
%check
md5sum -c validate.data
%endif
%post gui
/usr/sbin/update-alternatives --install %{_bindir}/%{name} %{name} %{_bindir}/%{name}-gui 10
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%post dedicated
/usr/sbin/update-alternatives --install %{_bindir}/%{name} %{name} %{_bindir}/%{name}-dedicated 0
%preun gui
if [ "$1" = 0 ] ; then
/usr/sbin/update-alternatives --remove %{name} %{_bindir}/%{name}-gui
fi
%preun dedicated
if [ "$1" = 0 ] ; then
/usr/sbin/update-alternatives --remove %{name} %{_bindir}/%{name}-dedicated
fi
%postun gui
if [ "$1" -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans gui
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
# we need a file in the main package so it will be made
%files
%defattr(-, root, root)
%dir %{_datadir}/doc/%{name}
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/lang
%dir %{_datadir}/%{name}/baseset
%dir %{_datadir}/%{name}/scripts
%dir %{_datadir}/%{name}/ai
%{_datadir}/doc/%{name}/*
%{_datadir}/%{name}/lang/*
%{_datadir}/%{name}/baseset/*
%{_datadir}/%{name}/scripts/*
%{_datadir}/%{name}/ai/*
%doc %{_mandir}/man6/%{name}.6.*
%attr(755, root, root) %{_bindir}/%{binname}
%files gui
# all other files are for the gui version only, also no
# subpackage needed for the dedicated version
%if !%{dedicated}
%defattr(-, root, root)
%ghost %{_sysconfdir}/alternatives/%{name}
%ghost %{_bindir}/%{name}
%{_bindir}/%{name}-gui
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/16x16
%dir %{_datadir}/icons/hicolor/16x16/apps
@@ -252,19 +169,29 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%dir %{_datadir}/icons/hicolor/128x128/apps
%dir %{_datadir}/icons/hicolor/256x256
%dir %{_datadir}/icons/hicolor/256x256/apps
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
%{_datadir}/pixmaps/%{name}.32.xpm
%{_datadir}/applications/%{binname}.desktop
%{_datadir}/icons/hicolor/16x16/apps/%{binname}.png
%{_datadir}/icons/hicolor/32x32/apps/%{binname}.png
%{_datadir}/icons/hicolor/48x48/apps/%{binname}.png
%{_datadir}/icons/hicolor/64x64/apps/%{binname}.png
%{_datadir}/icons/hicolor/128x128/apps/%{binname}.png
%{_datadir}/icons/hicolor/256x256/apps/%{binname}.png
%{_datadir}/pixmaps/%{binname}.32.xpm
%files dedicated
%files data
%defattr(-, root, root)
%ghost %{_bindir}/%{name}
%ghost %{_sysconfdir}/alternatives/%{name}
%{_bindir}/%{name}-dedicated
%dir %{_datadir}/doc/%{binname}
%dir %{_datadir}/%{binname}
%dir %{_datadir}/%{binname}/lang
%dir %{_datadir}/%{binname}/baseset
%dir %{_datadir}/%{binname}/scripts
%dir %{_datadir}/%{binname}/ai
%{_datadir}/doc/%{binname}/*
%{_datadir}/%{binname}/lang/*
%{_datadir}/%{binname}/baseset/*
%{_datadir}/%{binname}/scripts/*
%{_datadir}/%{binname}/ai/*
%doc %{_mandir}/man6/%{binname}.6.*
%endif
%changelog

View File

@@ -1,9 +1,9 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 3
!define APPV_MINOR 2
!define APPV_MAINT 0
!define APPV_BUILD 0
!define APPV_EXTRA "-beta1"
!define APPV_BUILD 2
!define APPV_EXTRA "-beta3"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
@@ -143,6 +143,9 @@ Section "!OpenTTD" Section1
File ${PATH_ROOT}docs\multiplayer.txt
Push "$INSTDIR\docs\multiplayer.txt"
Call unix2dos
File ${PATH_ROOT}docs\32bpp.txt
Push "$INSTDIR\docs\32bpp.txt"
Call unix2dos
; Copy the rest of the stuff
SetOutPath "$INSTDIR\"
@@ -214,6 +217,7 @@ Section "!OpenTTD" Section1
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" "$INSTDIR\known-bugs.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Docs"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk" "$INSTDIR\docs\multiplayer.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\32bpp.lnk" "$INSTDIR\docs\32bpp.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Scripts"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk" "$INSTDIR\scripts\readme.txt"
!insertmacro MUI_STARTMENU_WRITE_END
@@ -277,17 +281,17 @@ SectionEnd
Section "Download OpenMSX (free music set)" Section5
SetOverwrite try
NSISdl::download "http://binaries.openttd.org/installer/openmsx-${OPENMSX_BASE_VERSION}.7z" "$INSTDIR\baseset\openmsx.7z"
NSISdl::download "http://binaries.openttd.org/installer/openmsx-${OPENMSX_BASE_VERSION}.7z" "$INSTDIR\gm\openmsx.7z"
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Downloading of OpenMSX failed"
Goto Done
; Let's extract the files
SetOutPath "$INSTDIR\baseset\"
NSIS7z::Extract "$INSTDIR\baseset\openmsx.7z"
SetOutPath "$INSTDIR\gm\"
NSIS7z::Extract "$INSTDIR\gm\openmsx.7z"
Delete "$INSTDIR\baseset\openmsx.7z"
Delete "$INSTDIR\gm\openmsx.7z"
SetOutPath "$INSTDIR\"
Done:

View File

@@ -177,9 +177,6 @@ Function DetermineSVNVersion()
' Make sure index is in sync with disk
Set oExec = WshShell.Exec("git update-index --refresh")
If Err.Number = 0 Then
' StdOut and StdErr share a 4kB buffer so prevent it from filling up as we don't care about the output
oExec.StdOut.Close
oExec.StdErr.Close
' Wait till the application is finished ...
Do While oExec.Status = 0
WScript.Sleep 10

View File

@@ -296,7 +296,6 @@
<ClCompile Include="..\src\articulated_vehicles.cpp" />
<ClCompile Include="..\src\autoreplace.cpp" />
<ClCompile Include="..\src\bmp.cpp" />
<ClCompile Include="..\src\cargomonitor.cpp" />
<ClCompile Include="..\src\cargopacket.cpp" />
<ClCompile Include="..\src\cargotype.cpp" />
<ClCompile Include="..\src\cheat.cpp" />
@@ -317,7 +316,6 @@
<ClCompile Include="..\src\fileio.cpp" />
<ClCompile Include="..\src\fios.cpp" />
<ClCompile Include="..\src\fontcache.cpp" />
<ClCompile Include="..\src\base_consist.cpp" />
<ClCompile Include="..\src\gamelog.cpp" />
<ClCompile Include="..\src\genworld.cpp" />
<ClCompile Include="..\src\gfx.cpp" />
@@ -362,10 +360,8 @@
<ClCompile Include="..\src\station.cpp" />
<ClCompile Include="..\src\strgen\strgen_base.cpp" />
<ClCompile Include="..\src\string.cpp" />
<ClCompile Include="..\src\stringfilter.cpp" />
<ClCompile Include="..\src\strings.cpp" />
<ClCompile Include="..\src\subsidy.cpp" />
<ClCompile Include="..\src\textbuf.cpp" />
<ClCompile Include="..\src\texteff.cpp" />
<ClCompile Include="..\src\tgp.cpp" />
<ClCompile Include="..\src\tile_map.cpp" />
@@ -392,7 +388,6 @@
<ClInclude Include="..\src\bmp.h" />
<ClInclude Include="..\src\bridge.h" />
<ClInclude Include="..\src\cargo_type.h" />
<ClInclude Include="..\src\cargomonitor.h" />
<ClInclude Include="..\src\cargopacket.h" />
<ClInclude Include="..\src\cargotype.h" />
<ClInclude Include="..\src\cheat_func.h" />
@@ -440,7 +435,6 @@
<ClInclude Include="..\src\fileio_type.h" />
<ClInclude Include="..\src\fios.h" />
<ClInclude Include="..\src\fontcache.h" />
<ClInclude Include="..\src\base_consist.h" />
<ClInclude Include="..\src\gamelog.h" />
<ClInclude Include="..\src\gamelog_internal.h" />
<ClInclude Include="..\src\genworld.h" />
@@ -545,7 +539,6 @@
<ClInclude Include="..\src\sound\sdl_s.h" />
<ClInclude Include="..\src\video\sdl_v.h" />
<ClInclude Include="..\src\settings_func.h" />
<ClInclude Include="..\src\settings_gui.h" />
<ClInclude Include="..\src\settings_internal.h" />
<ClInclude Include="..\src\settings_type.h" />
<ClInclude Include="..\src\ship.h" />
@@ -571,7 +564,6 @@
<ClInclude Include="..\src\strgen\strgen.h" />
<ClInclude Include="..\src\string_func.h" />
<ClInclude Include="..\src\string_type.h" />
<ClInclude Include="..\src\stringfilter_type.h" />
<ClInclude Include="..\src\strings_func.h" />
<ClInclude Include="..\src\strings_type.h" />
<ClInclude Include="..\src\subsidy_base.h" />
@@ -580,10 +572,7 @@
<ClInclude Include="..\src\tar_type.h" />
<ClInclude Include="..\src\terraform_gui.h" />
<ClInclude Include="..\src\textbuf_gui.h" />
<ClInclude Include="..\src\textbuf_type.h" />
<ClInclude Include="..\src\texteff.hpp" />
<ClInclude Include="..\src\textfile_gui.h" />
<ClInclude Include="..\src\textfile_type.h" />
<ClInclude Include="..\src\tgp.h" />
<ClInclude Include="..\src\tile_cmd.h" />
<ClInclude Include="..\src\tile_type.h" />
@@ -695,7 +684,6 @@
<ClCompile Include="..\src\statusbar_gui.cpp" />
<ClCompile Include="..\src\subsidy_gui.cpp" />
<ClCompile Include="..\src\terraform_gui.cpp" />
<ClCompile Include="..\src\textfile_gui.cpp" />
<ClCompile Include="..\src\timetable_gui.cpp" />
<ClCompile Include="..\src\toolbar_gui.cpp" />
<ClCompile Include="..\src\town_gui.cpp" />
@@ -792,7 +780,6 @@
<ClCompile Include="..\src\saveload\airport_sl.cpp" />
<ClCompile Include="..\src\saveload\animated_tile_sl.cpp" />
<ClCompile Include="..\src\saveload\autoreplace_sl.cpp" />
<ClCompile Include="..\src\saveload\cargomonitor_sl.cpp" />
<ClCompile Include="..\src\saveload\cargopacket_sl.cpp" />
<ClCompile Include="..\src\saveload\cheat_sl.cpp" />
<ClCompile Include="..\src\saveload\company_sl.cpp" />
@@ -957,7 +944,6 @@
<ClInclude Include="..\src\script\api\script_bridgelist.hpp" />
<ClInclude Include="..\src\script\api\script_cargo.hpp" />
<ClInclude Include="..\src\script\api\script_cargolist.hpp" />
<ClInclude Include="..\src\script\api\script_cargomonitor.hpp" />
<ClInclude Include="..\src\script\api\script_company.hpp" />
<ClInclude Include="..\src\script\api\script_companymode.hpp" />
<ClInclude Include="..\src\script\api\script_controller.hpp" />
@@ -1019,7 +1005,6 @@
<ClCompile Include="..\src\script\api\script_bridgelist.cpp" />
<ClCompile Include="..\src\script\api\script_cargo.cpp" />
<ClCompile Include="..\src\script\api\script_cargolist.cpp" />
<ClCompile Include="..\src\script\api\script_cargomonitor.cpp" />
<ClCompile Include="..\src\script\api\script_company.cpp" />
<ClCompile Include="..\src\script\api\script_companymode.cpp" />
<ClCompile Include="..\src\script\api\script_controller.cpp" />
@@ -1094,6 +1079,8 @@
<ClInclude Include="..\src\video\video_driver.hpp" />
<ClCompile Include="..\src\spriteloader\grf.cpp" />
<ClInclude Include="..\src\spriteloader\grf.hpp" />
<ClCompile Include="..\src\spriteloader\png.cpp" />
<ClInclude Include="..\src\spriteloader\png.hpp" />
<ClInclude Include="..\src\spriteloader\spriteloader.hpp" />
<ClCompile Include="..\src\newgrf.cpp" />
<ClCompile Include="..\src\newgrf_airport.cpp" />

View File

@@ -117,9 +117,6 @@
<ClCompile Include="..\src\bmp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\cargomonitor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\cargopacket.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -180,9 +177,6 @@
<ClCompile Include="..\src\fontcache.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\base_consist.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\gamelog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -315,18 +309,12 @@
<ClCompile Include="..\src\string.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\stringfilter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\strings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\subsidy.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\textbuf.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\texteff.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -405,9 +393,6 @@
<ClInclude Include="..\src\cargo_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\cargomonitor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\cargopacket.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -549,9 +534,6 @@
<ClInclude Include="..\src\fontcache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\base_consist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\gamelog.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -864,9 +846,6 @@
<ClInclude Include="..\src\settings_func.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\settings_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\settings_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -942,9 +921,6 @@
<ClInclude Include="..\src\string_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\stringfilter_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\strings_func.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -969,18 +945,9 @@
<ClInclude Include="..\src\textbuf_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\textbuf_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\texteff.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\textfile_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\textfile_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\tgp.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -1314,9 +1281,6 @@
<ClCompile Include="..\src\terraform_gui.cpp">
<Filter>GUI Source Code</Filter>
</ClCompile>
<ClCompile Include="..\src\textfile_gui.cpp">
<Filter>GUI Source Code</Filter>
</ClCompile>
<ClCompile Include="..\src\timetable_gui.cpp">
<Filter>GUI Source Code</Filter>
</ClCompile>
@@ -1605,9 +1569,6 @@
<ClCompile Include="..\src\saveload\autoreplace_sl.cpp">
<Filter>Save/Load handlers</Filter>
</ClCompile>
<ClCompile Include="..\src\saveload\cargomonitor_sl.cpp">
<Filter>Save/Load handlers</Filter>
</ClCompile>
<ClCompile Include="..\src\saveload\cargopacket_sl.cpp">
<Filter>Save/Load handlers</Filter>
</ClCompile>
@@ -2100,9 +2061,6 @@
<ClInclude Include="..\src\script\api\script_cargolist.hpp">
<Filter>Script API</Filter>
</ClInclude>
<ClInclude Include="..\src\script\api\script_cargomonitor.hpp">
<Filter>Script API</Filter>
</ClInclude>
<ClInclude Include="..\src\script\api\script_company.hpp">
<Filter>Script API</Filter>
</ClInclude>
@@ -2286,9 +2244,6 @@
<ClCompile Include="..\src\script\api\script_cargolist.cpp">
<Filter>Script API Implementation</Filter>
</ClCompile>
<ClCompile Include="..\src\script\api\script_cargomonitor.cpp">
<Filter>Script API Implementation</Filter>
</ClCompile>
<ClCompile Include="..\src\script\api\script_company.cpp">
<Filter>Script API Implementation</Filter>
</ClCompile>
@@ -2511,6 +2466,12 @@
<ClInclude Include="..\src\spriteloader\grf.hpp">
<Filter>Sprite loaders</Filter>
</ClInclude>
<ClCompile Include="..\src\spriteloader\png.cpp">
<Filter>Sprite loaders</Filter>
</ClCompile>
<ClInclude Include="..\src\spriteloader\png.hpp">
<Filter>Sprite loaders</Filter>
</ClInclude>
<ClInclude Include="..\src\spriteloader\spriteloader.hpp">
<Filter>Sprite loaders</Filter>
</ClInclude>

View File

@@ -454,10 +454,6 @@
RelativePath=".\..\src\bmp.cpp"
>
</File>
<File
RelativePath=".\..\src\cargomonitor.cpp"
>
</File>
<File
RelativePath=".\..\src\cargopacket.cpp"
>
@@ -538,10 +534,6 @@
RelativePath=".\..\src\fontcache.cpp"
>
</File>
<File
RelativePath=".\..\src\base_consist.cpp"
>
</File>
<File
RelativePath=".\..\src\gamelog.cpp"
>
@@ -718,10 +710,6 @@
RelativePath=".\..\src\string.cpp"
>
</File>
<File
RelativePath=".\..\src\stringfilter.cpp"
>
</File>
<File
RelativePath=".\..\src\strings.cpp"
>
@@ -730,10 +718,6 @@
RelativePath=".\..\src\subsidy.cpp"
>
</File>
<File
RelativePath=".\..\src\textbuf.cpp"
>
</File>
<File
RelativePath=".\..\src\texteff.cpp"
>
@@ -842,10 +826,6 @@
RelativePath=".\..\src\cargo_type.h"
>
</File>
<File
RelativePath=".\..\src\cargomonitor.h"
>
</File>
<File
RelativePath=".\..\src\cargopacket.h"
>
@@ -1034,10 +1014,6 @@
RelativePath=".\..\src\fontcache.h"
>
</File>
<File
RelativePath=".\..\src\base_consist.h"
>
</File>
<File
RelativePath=".\..\src\gamelog.h"
>
@@ -1454,10 +1430,6 @@
RelativePath=".\..\src\settings_func.h"
>
</File>
<File
RelativePath=".\..\src\settings_gui.h"
>
</File>
<File
RelativePath=".\..\src\settings_internal.h"
>
@@ -1558,10 +1530,6 @@
RelativePath=".\..\src\string_type.h"
>
</File>
<File
RelativePath=".\..\src\stringfilter_type.h"
>
</File>
<File
RelativePath=".\..\src\strings_func.h"
>
@@ -1594,22 +1562,10 @@
RelativePath=".\..\src\textbuf_gui.h"
>
</File>
<File
RelativePath=".\..\src\textbuf_type.h"
>
</File>
<File
RelativePath=".\..\src\texteff.hpp"
>
</File>
<File
RelativePath=".\..\src\textfile_gui.h"
>
</File>
<File
RelativePath=".\..\src\textfile_type.h"
>
</File>
<File
RelativePath=".\..\src\tgp.h"
>
@@ -2062,10 +2018,6 @@
RelativePath=".\..\src\terraform_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\textfile_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\timetable_gui.cpp"
>
@@ -2462,10 +2414,6 @@
RelativePath=".\..\src\saveload\autoreplace_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\cargomonitor_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\cargopacket_sl.cpp"
>
@@ -3162,10 +3110,6 @@
RelativePath=".\..\src\script\api\script_cargolist.hpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_cargomonitor.hpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_company.hpp"
>
@@ -3414,10 +3358,6 @@
RelativePath=".\..\src\script\api\script_cargolist.cpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_cargomonitor.cpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_company.cpp"
>
@@ -3726,6 +3666,14 @@
RelativePath=".\..\src\spriteloader\grf.hpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\png.cpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\png.hpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\spriteloader.hpp"
>

View File

@@ -451,10 +451,6 @@
RelativePath=".\..\src\bmp.cpp"
>
</File>
<File
RelativePath=".\..\src\cargomonitor.cpp"
>
</File>
<File
RelativePath=".\..\src\cargopacket.cpp"
>
@@ -535,10 +531,6 @@
RelativePath=".\..\src\fontcache.cpp"
>
</File>
<File
RelativePath=".\..\src\base_consist.cpp"
>
</File>
<File
RelativePath=".\..\src\gamelog.cpp"
>
@@ -715,10 +707,6 @@
RelativePath=".\..\src\string.cpp"
>
</File>
<File
RelativePath=".\..\src\stringfilter.cpp"
>
</File>
<File
RelativePath=".\..\src\strings.cpp"
>
@@ -727,10 +715,6 @@
RelativePath=".\..\src\subsidy.cpp"
>
</File>
<File
RelativePath=".\..\src\textbuf.cpp"
>
</File>
<File
RelativePath=".\..\src\texteff.cpp"
>
@@ -839,10 +823,6 @@
RelativePath=".\..\src\cargo_type.h"
>
</File>
<File
RelativePath=".\..\src\cargomonitor.h"
>
</File>
<File
RelativePath=".\..\src\cargopacket.h"
>
@@ -1031,10 +1011,6 @@
RelativePath=".\..\src\fontcache.h"
>
</File>
<File
RelativePath=".\..\src\base_consist.h"
>
</File>
<File
RelativePath=".\..\src\gamelog.h"
>
@@ -1451,10 +1427,6 @@
RelativePath=".\..\src\settings_func.h"
>
</File>
<File
RelativePath=".\..\src\settings_gui.h"
>
</File>
<File
RelativePath=".\..\src\settings_internal.h"
>
@@ -1555,10 +1527,6 @@
RelativePath=".\..\src\string_type.h"
>
</File>
<File
RelativePath=".\..\src\stringfilter_type.h"
>
</File>
<File
RelativePath=".\..\src\strings_func.h"
>
@@ -1591,22 +1559,10 @@
RelativePath=".\..\src\textbuf_gui.h"
>
</File>
<File
RelativePath=".\..\src\textbuf_type.h"
>
</File>
<File
RelativePath=".\..\src\texteff.hpp"
>
</File>
<File
RelativePath=".\..\src\textfile_gui.h"
>
</File>
<File
RelativePath=".\..\src\textfile_type.h"
>
</File>
<File
RelativePath=".\..\src\tgp.h"
>
@@ -2059,10 +2015,6 @@
RelativePath=".\..\src\terraform_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\textfile_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\timetable_gui.cpp"
>
@@ -2459,10 +2411,6 @@
RelativePath=".\..\src\saveload\autoreplace_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\cargomonitor_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\cargopacket_sl.cpp"
>
@@ -3159,10 +3107,6 @@
RelativePath=".\..\src\script\api\script_cargolist.hpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_cargomonitor.hpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_company.hpp"
>
@@ -3411,10 +3355,6 @@
RelativePath=".\..\src\script\api\script_cargolist.cpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_cargomonitor.cpp"
>
</File>
<File
RelativePath=".\..\src\script\api\script_company.cpp"
>
@@ -3723,6 +3663,14 @@
RelativePath=".\..\src\spriteloader\grf.hpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\png.cpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\png.hpp"
>
</File>
<File
RelativePath=".\..\src\spriteloader\spriteloader.hpp"
>

View File

@@ -1,6 +1,6 @@
OpenTTD readme
Last updated: 2012-12-24
Release version: 1.3.0-beta1
Last updated: 2012-01-21
Release version: 1.2.0-beta3
------------------------------------------------------------------------
@@ -80,10 +80,8 @@ 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 (Windows, Linux, FreeBSD, ...) and compiler (including version) if
* Platform (Win32, Linux, FreeBSD, ...) and compiler (including version) if
you compiled OpenTTD yourself.
* The processor architecture of your OS (32 bits Windows, 64 bits Windows,
Linux on an ARM, Mac OS X on a PowerPC, ...)
* 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
@@ -147,9 +145,9 @@ will not be able to reproduce the desync and thus will be unable to fix it.
3.0) Supported platforms
---- -------------------
OpenTTD has been ported to several platforms and operating systems. It should
not be very difficult to port it to a new platform. The currently working
platforms are:
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
are:
BeOS - SDL or Allegro
DOS - Allegro
@@ -170,7 +168,7 @@ be installed, or you have downloaded an installer, which will automatically
extract OpenTTD in the given directory.
OpenTTD looks in multiple locations to find the required data files (described
in section 4.2). Installing any 3rd party files into a 'shared' location has
in section 4.2). Installing any 3rd party files into a "shared" location has
the advantage that you only need to do this step once, rather than copying the
data files into all OpenTTD versions you have.
Savegames, screenshots, etc are saved relative to the config file (openttd.cfg)
@@ -179,16 +177,15 @@ shared directories, savegames will reside in the save/ directory next to the
openttd.cfg file there.
If you want savegames and screenshots in the directory where the OpenTTD binary
resides, simply have your config file in that location. But if you remove this
config file, savegames will still be in this directory (see notes in
section 4.2 'OpenTTD directories')
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.
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
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
@@ -201,7 +198,7 @@ For OpenTTD you need to acquire some third party data files. For this you have
the choice of using the original Transport Tycoon Deluxe data files or a set
of free data files.
Do NOT copy files included with OpenTTD into 'shared' directories (explained in
Do NOT copy files included with OpenTTD into "shared" directories (explained in
the following sections) as sooner or later you will run into graphical glitches
when using other versions of the game.
@@ -242,7 +239,7 @@ not work.
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 will have to download those too and put them in 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.
@@ -250,32 +247,20 @@ 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
'could not find library "lib-name"'. Download that library and try again.
4.1.5) Game scripts
------ ------------
If you want an extra challenge in OpenTTD you can download so-called game
scripts via the in-game content downloader. These game scripts have varying
functionality, though they can generally influence town growth, subsidies, add
goals to reach or provide a different ranking system.
If you download a game script manually you have to follow the same rules as for
AIs, except that game scripts are placed in the game/ directory instead of the
ai/ directory.
"couldn't find library 'lib-name'". Download that library and try again.
4.2) OpenTTD directories
---- -------------------
OpenTTD uses its own directory to store its required 3rd party base set files
(see section 4.1 'Required 3rd party files') and non-compulsory extension and
configuration files. See below for their proper place within this OpenTTD main
data directory.
OpenTTD uses its own directory to store its required 3rd party base set files (see section
4.1 "Required 3rd party files") and non-compulsory extension and configuration files. See
below for their proper place within this OpenTTD main data directory.
The main OpenTTD directories can be found in various locations, depending on
your operating system:
The main OpenTTD directories can be found in various locations, depending on your operating
system:
1. The current working directory (from where you started OpenTTD)
For non-Windows operating systems OpenTTD will not scan for files in this
directory if it is your personal directory, i.e. '~/', or when it is the
root directory, i.e. '/'.
directory if it is your personal directory, i.e. "~/", or when it is the
root directory, i.e. "/".
2. Your personal directory
Windows: C:\My Documents\OpenTTD (95, 98, ME)
C:\Documents and Settings\<username>\My Documents\OpenTTD (2000, XP)
@@ -293,13 +278,13 @@ your operating system:
5. The installation directory (Linux only)
Linux: /usr/share/games/openttd
6. The application bundle (Mac OSX only)
It includes the OpenTTD files (grf+lng) and it will work as long as they
are not touched
It includes the OpenTTD files (grf+lng) and it will work as long as they aren't
touched
Different types of data or extensions go into different subdirectories of the
chosen main OpenTTD directory:
Different types of data or extensions go into different subdirectories of the chosen main
OpenTTD directory:
Config File: (no subdirectory)
Screenshots: screenshot
Screenshots: (no subdirectory)
Base Graphics: baseset (or a subdirectory thereof)
Sound Sets: baseset (or a subdirectory thereof)
NewGRFs: newgrf (or a subdirectory thereof)
@@ -313,24 +298,21 @@ chosen main OpenTTD directory:
Automatic Savegames: save/autosave
Scenarios: scenario
The (automatically created) directory content_download is for OpenTTD's internal
use and no files should be added to it or its subdirectories manually.
The (automatically created) directory content_download is for OpenTTD's internal use and
no files should be added to it or its subdirectories manually.
Notes:
- Linux in the previous list means .deb, but most paths should be similar for
others.
- Linux in the previous list means .deb, but most paths should be similar for others.
- The previous search order is also used for NewGRFs and openttd.cfg.
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3,
5 order.
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3, 5 order.
- Savegames will be relative to the config file only if there is no save/
directory in paths with higher priority than the config file path, but
autosaves and screenshots will always be relative to the config file.
The preferred setup:
Place 3rd party files in shared directory (or in personal directory if you do
not have write access on shared directory) and have your openttd.cfg config
file in personal directory (where the game will then also place savegames and
screenshots).
Place 3rd party files in shared directory (or in personal directory if you don't
have write access on shared directory) and have your openttd.cfg config file in
personal directory (where the game will then also place savegames and screenshots).
4.3) Portable installations (portable media)
---- ---------------------------------------
@@ -352,10 +334,12 @@ makes it easy to bundle files belonging to the same script, NewGRF or base
set. Music sets are the only exception as they cannot be stored in a tar
file due to being played by external applications.
OpenTTD sees each tar archive as the 'root' of its search path. This means that
having a file with the same path in two different tar files means that one
cannot be opened, after all only one file will be found first. As such it is
advisable to put an uniquely named folder in the root of the tar and put all the
OpenTTD sees each tar archive as the 'root' of its search path. This means
that having a file with the same path in two different tar files means that
one cannot be opened, after all only one file will be found first. This is
done to make it possible to have the large 32bpp zoomed graphics in a separate
file to the (relatively small) unzoomed 8bpp NewGRF. As such it is advisable
to put an uniquely named folder in the root of the tar and put all the
content in that folder. For example, all downloaded content has a path that
concatenates the name of the content and the version, which makes the path
unique. For custom tar files it is advised to do this as well.
@@ -421,7 +405,7 @@ OpenTTD in debug mode.
6.0) Configuration file
---- ------------------
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
.INI format. It is 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.
When you cannot 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
@@ -445,24 +429,24 @@ Windows:
Please read the Makefile for more information.
Solaris, FreeBSD, OpenBSD:
Use 'gmake', but do a './configure' before the first build.
Use "gmake", but do a "./configure" before the first build.
Linux/Unix:
OpenTTD can be built with GNU 'make'. On non-GNU systems it is called 'gmake'.
However, for the first build one has to do a './configure' first.
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.
MacOS X:
Use 'make' or Xcode (which will then call make for you)
Use "make" or Xcode (which will then call make for you)
This will give you a binary for your CPU type (PPC/Intel)
However, for the first build one has to do a './configure' first.
To make a universal binary type './configure --enabled-universal'
instead of './configure'.
However, for the first build one has to do a "./configure" first.
To make a universal binary type "./configure --enabled-universal"
instead of "./configure".
BeOS:
Use 'make', but do a './configure' before the first build.
Use "make", but do a "./configure" before the first build.
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
OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
libpng and freetype2 developer files.
@@ -474,7 +458,7 @@ OS/2:
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'
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
@@ -505,7 +489,7 @@ To recompile the extra graphics needed to play with the original Transport
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
GRFCodec can be found at: http://www.openttd.org/download-grfcodec
The compilation of these extra graphics does generally not happen, unless
you remove the graphics file using 'make maintainer-clean'.
you remove the graphics file using "make maintainer-clean".
7.2) Supported compilers
---- -------------------
@@ -517,8 +501,6 @@ The following compilers are known to compile OpenTTD:
Versions 4.4 - 4.6 give bogus warnings about freeing non-heap objects.
Versions 4.5 and later give invalid warnings when lto is enabled.
- Intel C++ Compiler (ICC) 12.0.
- Clang/LLVM 2.9 - 3.0
Version 2.9 gives bogus warnings about code nonconformity.
The following compilers are known not to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2003 and earlier.
@@ -528,7 +510,7 @@ The following compilers are known not to compile OpenTTD:
Version 10.0 and earlier fail a configure check and fail with recent system
headers.
Version 10.1 fails to compile station_gui.cpp.
Version 11.1 fails with an internal error when compiling network.cpp.
Version 11.1 fails with internal error when compiling network.cpp.
- Clang/LLVM 2.8 and earlier.
- (Open) Watcom.
@@ -553,7 +535,7 @@ someone else may have already started translating to the same language.
8.1) Translation
---- -----------
So, now that you have 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
(found in the SVN repository under /src/lang) and translate.
@@ -587,17 +569,17 @@ Any missing strings are replaced with the English strings. Note that it looks
for english.txt in the lang subdirectory, which is where your language file
should also be.
That is all! You should now be able to select the language in the game options.
That's all! You should now be able to select the language in the game options.
9.0) Troubleshooting
---- ---------------
To see all startup options available to you, start OpenTTD with the
'./openttd -h' option. This might help you tweak some of the settings.
"./openttd -h" option. This might help you tweak some of the settings.
If the game is acting strange and you feel adventurous you can try the
'-d [[<name>=]<level>]' flag, where the higher levels will give you more
debugging output. The 'name' variable can help you to display only some type of
"-d [[<name>]=[<level>]" flag, where the higher levels will give you more
debugging output. The "name" variable can help you to display only some type of
debugging messages. This is mostly undocumented so best is to look in the
source code file debug.c for the various debugging types. For more information
look at http://wiki.openttd.org/index.php/Command_line.
@@ -620,17 +602,17 @@ and add a suitable font for the small, medium and / or large font, e.g.:
small_font = "Tahoma"
medium_font = "Tahoma"
large_font = "Tahoma"
You should use a font name like 'Tahoma' or a path to the desired font.
You should use a font name like "Tahoma" or a path to the desired font.
Any NewGRF file used in a game is stored inside the savegame and will refuse
to load if you do not have that NewGRF file available. A list of missing files
to load if you don't have that NewGRF file available. A list of missing files
can be viewed in the NewGRF window accessible from the file load dialogue window.
You can try to obtain the missing files from that NewGRF dialogue or - if they
are not available online - you can search manually through our forum's graphics
development section (http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler
(http://grfcrawler.tt-forums.net/). Put the NewGRF files in OpenTTD's newgrf folder
(see section 4.2 'OpenTTD directories') and rescan the list of available NewGRFs.
(see section 4.2 "OpenTTD directories") and rescan the list of available NewGRFs.
Once you have all missing files, you are set to go.
@@ -650,7 +632,6 @@ The OpenTTD team (in alphabetical order):
Zdeněk Sojka (SmatZ) - Bug finder and fixer
José Soler (Terkhen) - General coding
Thijs Marinussen (Yexo) - AI Framework
Leif Linse (Zuu) - AI/Game Script
Inactive Developers:
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
@@ -666,7 +647,7 @@ Retired Developers:
Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
Patric Stout (TrueBrain) - Programmer (0.3 - pre0.7), sys op (active)
Thanks to:
Josef Drexler - For his great work on TTDPatch.
@@ -684,7 +665,6 @@ Thanks to:
George - Canal graphics
Andrew Parkhouse (andythenorth) - River graphics
David Dallaston (Pikka) - Tram tracks
Marcin Grzegorczyk - Foundations for tracks on slopes,
All Translators - For their support to make OpenTTD a truly international game
Bug Reporters - Thanks for all bug reports
Chris Sawyer - For an amazing game!

View File

@@ -4,7 +4,6 @@ animated_tile.cpp
articulated_vehicles.cpp
autoreplace.cpp
bmp.cpp
cargomonitor.cpp
cargopacket.cpp
cargotype.cpp
cheat.cpp
@@ -25,7 +24,6 @@ engine.cpp
fileio.cpp
fios.cpp
fontcache.cpp
base_consist.cpp
gamelog.cpp
genworld.cpp
gfx.cpp
@@ -72,10 +70,8 @@ spritecache.cpp
station.cpp
strgen/strgen_base.cpp
string.cpp
stringfilter.cpp
strings.cpp
subsidy.cpp
textbuf.cpp
texteff.cpp
tgp.cpp
tile_map.cpp
@@ -125,7 +121,6 @@ base_station_base.h
bmp.h
bridge.h
cargo_type.h
cargomonitor.h
cargopacket.h
cargotype.h
cheat_func.h
@@ -173,7 +168,6 @@ fileio_func.h
fileio_type.h
fios.h
fontcache.h
base_consist.h
gamelog.h
gamelog_internal.h
genworld.h
@@ -278,7 +272,6 @@ sdl.h
sound/sdl_s.h
video/sdl_v.h
settings_func.h
settings_gui.h
settings_internal.h
settings_type.h
ship.h
@@ -304,7 +297,6 @@ stdafx.h
strgen/strgen.h
string_func.h
string_type.h
stringfilter_type.h
strings_func.h
strings_type.h
subsidy_base.h
@@ -313,10 +305,7 @@ subsidy_type.h
tar_type.h
terraform_gui.h
textbuf_gui.h
textbuf_type.h
texteff.hpp
textfile_gui.h
textfile_type.h
tgp.h
tile_cmd.h
tile_type.h
@@ -447,7 +436,6 @@ station_gui.cpp
statusbar_gui.cpp
subsidy_gui.cpp
terraform_gui.cpp
textfile_gui.cpp
timetable_gui.cpp
toolbar_gui.cpp
town_gui.cpp
@@ -550,7 +538,6 @@ saveload/ai_sl.cpp
saveload/airport_sl.cpp
saveload/animated_tile_sl.cpp
saveload/autoreplace_sl.cpp
saveload/cargomonitor_sl.cpp
saveload/cargopacket_sl.cpp
saveload/cheat_sl.cpp
saveload/company_sl.cpp
@@ -735,7 +722,6 @@ script/api/script_bridge.hpp
script/api/script_bridgelist.hpp
script/api/script_cargo.hpp
script/api/script_cargolist.hpp
script/api/script_cargomonitor.hpp
script/api/script_company.hpp
script/api/script_companymode.hpp
script/api/script_controller.hpp
@@ -799,7 +785,6 @@ script/api/script_bridge.cpp
script/api/script_bridgelist.cpp
script/api/script_cargo.cpp
script/api/script_cargolist.cpp
script/api/script_cargomonitor.cpp
script/api/script_company.cpp
script/api/script_companymode.cpp
script/api/script_controller.cpp
@@ -883,6 +868,10 @@ video/video_driver.hpp
# Sprite loaders
spriteloader/grf.cpp
spriteloader/grf.hpp
#if PNG
spriteloader/png.cpp
spriteloader/png.hpp
#end
spriteloader/spriteloader.hpp
# NewGRF

View File

@@ -210,22 +210,16 @@ static SQInteger base_suspend(HSQUIRRELVM v)
static SQInteger base_array(HSQUIRRELVM v)
{
SQArray *a;
SQInteger nInitialSize = tointeger(stack_get(v,2));
SQInteger ret = 1;
if (nInitialSize < 0) {
v->Raise_Error(_SC("can't create/resize array with/to size %d"), nInitialSize);
nInitialSize = 0;
ret = -1;
}
SQObject &size = stack_get(v,2);
if(sq_gettop(v) > 2) {
a = SQArray::Create(_ss(v),0);
a->Resize(nInitialSize,stack_get(v,3));
a->Resize(tointeger(size),stack_get(v,3));
}
else {
a = SQArray::Create(_ss(v),nInitialSize);
a = SQArray::Create(_ss(v),tointeger(size));
}
v->Push(a);
return ret;
return 1;
}
static SQInteger base_type(HSQUIRRELVM v)
@@ -544,10 +538,6 @@ bool _hsort_sift_down(HSQUIRRELVM v,SQArray *arr, SQInteger root, SQInteger bott
if(!_sort_compare(v,arr->_values[root],arr->_values[maxChild],func,ret))
return false;
if (ret < 0) {
if (root == maxChild) {
v->Raise_Error(_SC("inconsistent compare function"));
return false; // We'd be swapping ourselve. The compare function is incorrect
}
_Swap(arr->_values[root],arr->_values[maxChild]);
root = maxChild;
}

View File

@@ -200,10 +200,6 @@ inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->
#define PUSH_CALLINFO(v,nci){ \
if(v->_callsstacksize == v->_alloccallsstacksize) { \
if (v->_callsstacksize > 65535) {\
v->Raise_Error(_SC("stack overflow"));\
return false;\
}\
v->GrowCallStack(); \
} \
v->ci = &v->_callsstack[v->_callsstacksize]; \

View File

@@ -14,7 +14,6 @@
#include "../script/api/script_event_types.hpp"
#include "../core/string_compare_type.hpp"
#include "ai_scanner.hpp"
#include <map>
/** A list that maps AI names to their AIInfo object. */
@@ -68,30 +67,13 @@ public:
static void Stop(CompanyID company);
/**
* Suspend the AI and then pause execution of the script. The script
* will not be resumed from its suspended state until the script has
* been unpaused.
* @param company The company for which the AI should be paused.
* Suspend an AI for the reminder of the current tick. If the AI is
* in a state when it cannot be suspended, it will continue to run
* until it can be suspended.
* @param company The company for which the AI should be suspended.
* @pre Company::IsValidAiID(company)
*/
static void Pause(CompanyID company);
/**
* Resume execution of the AI. This function will not actually execute
* the script, but set a flag so that the script is executed my the usual
* mechanism that executes the script.
* @param company The company for which the AI should be unpaused.
* @pre Company::IsValidAiID(company)
*/
static void Unpause(CompanyID company);
/**
* Checks if the AI is paused.
* @param company The company for which to check if the AI is paused.
* @pre Company::IsValidAiID(company)
* @return true if the AI is paused, otherwise false.
*/
static bool IsPaused(CompanyID company);
static void Suspend(CompanyID company);
/**
* Kill any and all AIs we manage.
@@ -158,12 +140,6 @@ public:
* found it is removed from the config.
*/
static void Rescan();
/** Gets the ScriptScanner instance that is used to find AIs */
static AIScannerInfo *GetScannerInfo();
/** Gets the ScriptScanner instance that is used to find AI Libraries */
static AIScannerLibrary *GetScannerLibrary();
#if defined(ENABLE_NETWORK)
/** Wrapper function for AIScanner::HasAI */
static bool HasAI(const struct ContentInfo *ci, bool md5sum);

View File

@@ -28,8 +28,7 @@ ScriptConfigItem _start_date_config = {
AI::START_NEXT_DEVIATION,
30,
SCRIPTCONFIG_NONE,
NULL,
false
NULL
};
/* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source)
@@ -80,13 +79,13 @@ int AIConfig::GetSetting(const char *name) const
{
if (this->info == NULL) {
SettingValueList::const_iterator it = this->settings.find(name);
if (it == this->settings.end()) {
if (it == this->settings.end() || GetGameSettings().difficulty.diff_level != 3) {
assert(strcmp("start_date", name) == 0);
switch (GetGameSettings().script.settings_profile) {
case SP_EASY: return AI::START_NEXT_EASY;
case SP_MEDIUM: return AI::START_NEXT_MEDIUM;
case SP_HARD: return AI::START_NEXT_HARD;
case SP_CUSTOM: return AI::START_NEXT_MEDIUM;
switch (GetGameSettings().difficulty.diff_level) {
case 0: return AI::START_NEXT_EASY;
case 1: return AI::START_NEXT_MEDIUM;
case 2: return AI::START_NEXT_HARD;
case 3: return AI::START_NEXT_MEDIUM;
default: NOT_REACHED();
}
}

View File

@@ -39,7 +39,7 @@
/* Clients shouldn't start AIs */
if (_networking && !_network_server) return;
AIConfig *config = AIConfig::GetConfig(company, AIConfig::SSS_FORCE_GAME);
AIConfig *config = AIConfig::GetConfig(company);
AIInfo *info = config->GetInfo();
if (info == NULL || (rerandomise_ai && config->IsRandom())) {
info = AI::scanner_info->SelectRandomAI();
@@ -112,37 +112,16 @@
DeleteWindowById(WC_AI_SETTINGS, company);
}
/* static */ void AI::Pause(CompanyID company)
/* static */ void AI::Suspend(CompanyID company)
{
/* The reason why dedicated servers are forbidden to execute this
* command is not because it is unsafe, but because there is no way
* for the server owner to unpause the script again. */
if (_network_dedicated) return;
if (_networking && !_network_server) return;
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
Company::Get(company)->ai_instance->Pause();
Company::Get(company)->ai_instance->Suspend();
cur_company.Restore();
}
/* static */ void AI::Unpause(CompanyID company)
{
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
Company::Get(company)->ai_instance->Unpause();
cur_company.Restore();
}
/* static */ bool AI::IsPaused(CompanyID company)
{
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
bool paused = Company::Get(company)->ai_instance->IsPaused();
cur_company.Restore();
return paused;
}
/* static */ void AI::KillAll()
{
/* It might happen there are no companies .. than we have nothing to loop */
@@ -304,7 +283,7 @@
{
/* Find the first company which doesn't exist yet */
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
if (!Company::IsValidID(c)) return AIConfig::GetConfig(c, AIConfig::SSS_FORCE_GAME)->GetSetting("start_date");
if (!Company::IsValidID(c)) return AIConfig::GetConfig(c)->GetSetting("start_date");
}
/* Currently no AI can be started, check again in a year. */
@@ -373,14 +352,3 @@
}
#endif /* defined(ENABLE_NETWORK) */
/* static */ AIScannerInfo *AI::GetScannerInfo()
{
return AI::scanner_info;
}
/* static */ AIScannerLibrary *AI::GetScannerLibrary()
{
return AI::scanner_library;
}

View File

@@ -12,9 +12,8 @@
#include "../stdafx.h"
#include "../table/sprites.h"
#include "../error.h"
#include "../settings_gui.h"
#include "../gui.h"
#include "../querystring_gui.h"
#include "../stringfilter_type.h"
#include "../company_base.h"
#include "../company_gui.h"
#include "../strings_func.h"
@@ -24,10 +23,6 @@
#include "../network/network.h"
#include "../settings_func.h"
#include "../network/network_content.h"
#include "../textfile_gui.h"
#include "../widgets/dropdown_type.h"
#include "../widgets/dropdown_func.h"
#include "../hotkeys.h"
#include "ai.hpp"
#include "../script/api/script_log.hpp"
@@ -122,13 +117,13 @@ struct AIListWindow : public Window {
int y = this->GetWidget<NWidgetBase>(WID_AIL_LIST)->pos_y;
/* First AI in the list is hardcoded to random */
if (this->vscroll->IsVisible(0)) {
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_LEFT, y + WD_MATRIX_TOP, this->slot == OWNER_DEITY ? STR_AI_CONFIG_NONE : STR_AI_CONFIG_RANDOM_AI, this->selected == -1 ? TC_WHITE : TC_ORANGE);
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_LEFT, y + WD_MATRIX_TOP, this->slot == OWNER_DEITY ? STR_AI_CONFIG_NONE : STR_AI_CONFIG_RANDOM_AI, this->selected == -1 ? TC_WHITE : TC_BLACK);
y += this->line_height;
}
ScriptInfoList::const_iterator it = this->info_list->begin();
for (int i = 1; it != this->info_list->end(); i++, it++) {
if (this->vscroll->IsVisible(i)) {
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, (*it).second->GetName(), (this->selected == i - 1) ? TC_WHITE : TC_ORANGE);
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, (*it).second->GetName(), (this->selected == i - 1) ? TC_WHITE : TC_BLACK);
y += this->line_height;
}
}
@@ -155,7 +150,7 @@ struct AIListWindow : public Window {
y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
}
SetDParamStr(0, selected_info->GetDescription());
DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, r.bottom - WD_FRAMERECT_BOTTOM, STR_JUST_RAW_STRING, TC_WHITE);
DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, r.bottom - WD_FRAMERECT_BOTTOM, STR_JUST_RAW_STRING, TC_BLACK);
}
break;
}
@@ -260,7 +255,7 @@ static const NWidgetPart _nested_ai_list_widgets[] = {
static const WindowDesc _ai_list_desc(
WDP_CENTER, 200, 234,
WC_AI_LIST, WC_NONE,
0,
WDF_UNCLICK_BUTTONS,
_nested_ai_list_widgets, lengthof(_nested_ai_list_widgets)
);
@@ -282,8 +277,6 @@ struct AISettingsWindow : public Window {
ScriptConfig *ai_config; ///< The configuration we're modifying.
int clicked_button; ///< The button we clicked.
bool clicked_increase; ///< Whether we clicked the increase or decrease button.
bool clicked_dropdown; ///< Whether the dropdown is open.
bool closing_dropdown; ///< True, if the dropdown list is currently closing.
int timeout; ///< Timeout for unclicking the button.
int clicked_row; ///< The clicked row of settings.
int line_height; ///< Height of a row in the matrix widget.
@@ -299,8 +292,6 @@ struct AISettingsWindow : public Window {
AISettingsWindow(const WindowDesc *desc, CompanyID slot) : Window(),
slot(slot),
clicked_button(-1),
clicked_dropdown(false),
closing_dropdown(false),
timeout(0)
{
this->ai_config = GetConfig(slot);
@@ -363,13 +354,12 @@ struct AISettingsWindow : public Window {
for (; !this->vscroll->IsVisible(i); i++) it++;
bool rtl = _current_text_dir == TD_RTL;
uint buttons_left = rtl ? r.right - SETTING_BUTTON_WIDTH - 3 : r.left + 4;
uint text_left = r.left + (rtl ? WD_FRAMERECT_LEFT : SETTING_BUTTON_WIDTH + 8);
uint text_right = r.right - (rtl ? SETTING_BUTTON_WIDTH + 8 : WD_FRAMERECT_RIGHT);
uint buttons_left = rtl ? r.right - 23 : r.left + 4;
uint text_left = r.left + (rtl ? WD_FRAMERECT_LEFT : 28);
uint text_right = r.right - (rtl ? 28 : WD_FRAMERECT_RIGHT);
int y = r.top;
int button_y_offset = (this->line_height - SETTING_BUTTON_HEIGHT) / 2;
for (; this->vscroll->IsVisible(i) && it != visible_settings.end(); i++, it++) {
const ScriptConfigItem &config_item = **it;
int current_value = config->GetSetting((config_item).name);
@@ -394,14 +384,10 @@ struct AISettingsWindow : public Window {
}
if ((config_item.flags & SCRIPTCONFIG_BOOLEAN) != 0) {
DrawBoolButton(buttons_left, y + button_y_offset, current_value != 0, editable);
DrawBoolButton(buttons_left, y + 2, current_value != 0, editable);
SetDParam(idx++, current_value == 0 ? STR_CONFIG_SETTING_OFF : STR_CONFIG_SETTING_ON);
} else {
if (config_item.complete_labels) {
DrawDropDownButton(buttons_left, y + button_y_offset, COLOUR_YELLOW, this->clicked_row == i && clicked_dropdown, editable);
} else {
DrawArrowButtons(buttons_left, y + button_y_offset, COLOUR_YELLOW, (this->clicked_button == i) ? 1 + (this->clicked_increase != rtl) : 0, editable && current_value > config_item.min_value, editable && current_value < config_item.max_value);
}
DrawArrowButtons(buttons_left, y + 2, COLOUR_YELLOW, (this->clicked_button == i) ? 1 + (this->clicked_increase != rtl) : 0, editable && current_value > config_item.min_value, editable && current_value < config_item.max_value);
if (config_item.labels != NULL && config_item.labels->Contains(current_value)) {
SetDParam(idx++, STR_JUST_RAW_STRING);
SetDParamStr(idx++, config_item.labels->Find(current_value)->second);
@@ -416,13 +402,19 @@ struct AISettingsWindow : public Window {
}
}
virtual void OnPaint()
/**
* Check whether we modified the difficulty level or not.
*/
void CheckDifficultyLevel()
{
if (this->closing_dropdown) {
this->closing_dropdown = false;
this->clicked_dropdown = false;
if (_game_mode == GM_MENU) {
if (_settings_newgame.difficulty.diff_level != 3) {
_settings_newgame.difficulty.diff_level = 3;
ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, WL_WARNING);
}
} else if (_settings_game.difficulty.diff_level != 3) {
IConsoleSetSetting("difficulty.diff_level", 3);
}
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
@@ -438,55 +430,18 @@ struct AISettingsWindow : public Window {
const ScriptConfigItem config_item = **it;
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return;
if (this->clicked_row != num) {
DeleteChildWindows(WC_QUERY_STRING);
HideDropDownMenu(this);
this->clicked_row = num;
this->clicked_dropdown = false;
}
bool bool_item = (config_item.flags & SCRIPTCONFIG_BOOLEAN) != 0;
int x = pt.x - wid->pos_x;
if (_current_text_dir == TD_RTL) x = wid->current_x - 1 - x;
if (_current_text_dir == TD_RTL) x = wid->current_x - x;
x -= 4;
/* One of the arrows is clicked (or green/red rect in case of bool value) */
int old_val = this->ai_config->GetSetting(config_item.name);
if (!bool_item && IsInsideMM(x, 0, SETTING_BUTTON_WIDTH) && config_item.complete_labels) {
if (this->clicked_dropdown) {
/* unclick the dropdown */
HideDropDownMenu(this);
this->clicked_dropdown = false;
this->closing_dropdown = false;
} else {
const NWidgetBase *wid = this->GetWidget<NWidgetBase>(WID_AIS_BACKGROUND);
int rel_y = (pt.y - (int)wid->pos_y) % this->line_height;
Rect wi_rect;
wi_rect.left = pt.x - (_current_text_dir == TD_RTL ? SETTING_BUTTON_WIDTH - 1 - x : x);
wi_rect.right = wi_rect.left + SETTING_BUTTON_WIDTH - 1;
wi_rect.top = pt.y - rel_y + (this->line_height - SETTING_BUTTON_HEIGHT) / 2;
wi_rect.bottom = wi_rect.top + SETTING_BUTTON_HEIGHT - 1;
/* For dropdowns we also have to check the y position thoroughly, the mouse may not above the just opening dropdown */
if (pt.y >= wi_rect.top && pt.y <= wi_rect.bottom) {
this->clicked_dropdown = true;
this->closing_dropdown = false;
DropDownList *list = new DropDownList();
for (int i = config_item.min_value; i <= config_item.max_value; i++) {
list->push_back(new DropDownListCharStringItem(config_item.labels->Find(i)->second, i, false));
}
ShowDropDownListAt(this, list, old_val, -1, wi_rect, COLOUR_ORANGE, true);
}
}
} else if (IsInsideMM(x, 0, SETTING_BUTTON_WIDTH)) {
int new_val = old_val;
if (IsInsideMM(x, 0, 21)) {
int new_val = this->ai_config->GetSetting(config_item.name);
int old_val = new_val;
if (bool_item) {
new_val = !new_val;
} else if (x >= SETTING_BUTTON_WIDTH / 2) {
} else if (x >= 10) {
/* Increase button clicked */
new_val += config_item.step_size;
if (new_val > config_item.max_value) new_val = config_item.max_value;
@@ -502,10 +457,13 @@ struct AISettingsWindow : public Window {
this->ai_config->SetSetting(config_item.name, new_val);
this->clicked_button = num;
this->timeout = 5;
this->CheckDifficultyLevel();
}
} else if (!bool_item && !config_item.complete_labels) {
} else if (!bool_item) {
/* Display a query box so users can enter a custom value. */
SetDParam(0, old_val);
this->clicked_row = num;
SetDParam(0, this->ai_config->GetSetting(config_item.name));
ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, this, CS_NUMERAL, QSF_NONE);
}
this->SetDirty();
@@ -533,27 +491,7 @@ struct AISettingsWindow : public Window {
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return;
int32 value = atoi(str);
this->ai_config->SetSetting((*it).name, value);
this->SetDirty();
}
virtual void OnDropdownSelect(int widget, int index)
{
assert(this->clicked_dropdown);
ScriptConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin();
for (int i = 0; i < this->clicked_row; i++) it++;
if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return;
this->ai_config->SetSetting((*it).name, index);
this->SetDirty();
}
virtual void OnDropdownClose(Point pt, int widget, int index, bool instant_close)
{
/* We cannot raise the dropdown button just yet. OnClick needs some hint, whether
* the same dropdown button was clicked again, and then not open the dropdown again.
* So, we only remember that it was closed, and process it on the next OnPaint, which is
* after OnClick. */
assert(this->clicked_dropdown);
this->closing_dropdown = true;
this->CheckDifficultyLevel();
this->SetDirty();
}
@@ -579,7 +517,11 @@ struct AISettingsWindow : public Window {
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{
this->RebuildVisibleSettings();
if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) {
delete this;
} else {
this->RebuildVisibleSettings();
}
}
};
@@ -606,7 +548,7 @@ static const NWidgetPart _nested_ai_settings_widgets[] = {
static const WindowDesc _ai_settings_desc(
WDP_CENTER, 500, 208,
WC_AI_SETTINGS, WC_NONE,
0,
WDF_UNCLICK_BUTTONS,
_nested_ai_settings_widgets, lengthof(_nested_ai_settings_widgets)
);
@@ -621,38 +563,6 @@ static void ShowAISettingsWindow(CompanyID slot)
new AISettingsWindow(&_ai_settings_desc, slot);
}
/** Window for displaying the textfile of a AI. */
struct ScriptTextfileWindow : public TextfileWindow {
CompanyID slot; ///< View the textfile of this CompanyID slot.
ScriptTextfileWindow(TextfileType file_type, CompanyID slot) : TextfileWindow(file_type), slot(slot)
{
const char *textfile = GetConfig(slot)->GetTextfile(file_type, slot);
this->LoadTextfile(textfile, (slot == OWNER_DEITY) ? GAME_DIR : AI_DIR);
}
/* virtual */ void SetStringParameters(int widget) const
{
if (widget == WID_TF_CAPTION) {
SetDParam(0, (slot == OWNER_DEITY) ? STR_CONTENT_TYPE_GAME_SCRIPT : STR_CONTENT_TYPE_AI);
SetDParamStr(1, GetConfig(slot)->GetName());
}
}
};
/**
* Open the AI version of the textfile window.
* @param file_type The type of textfile to display.
* @param slot The slot the Script is using.
*/
void ShowScriptTextfileWindow(TextfileType file_type, CompanyID slot)
{
DeleteWindowByClass(WC_TEXTFILE);
new ScriptTextfileWindow(file_type, slot);
}
/** Widgets for the configure AI window. */
static const NWidgetPart _nested_ai_config_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -686,11 +596,6 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONFIGURE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CONFIGURE, STR_AI_CONFIG_CONFIGURE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CLOSE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONTENT_DOWNLOAD), SetFill(1, 0), SetMinimalSize(279, 12), SetPadding(0, 7, 9, 7), SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
EndContainer(),
@@ -700,7 +605,7 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
static const WindowDesc _ai_config_desc(
WDP_CENTER, 0, 0,
WC_GAME_OPTIONS, WC_NONE,
0,
WDF_UNCLICK_BUTTONS,
_nested_ai_config_widgets, lengthof(_nested_ai_config_widgets)
);
@@ -827,13 +732,6 @@ struct AIConfigWindow : public Window {
virtual void OnClick(Point pt, int widget, int click_count)
{
if (widget >= WID_AIC_TEXTFILE && widget < WID_AIC_TEXTFILE + TFT_END) {
if (this->selected_slot == INVALID_COMPANY || GetConfig(this->selected_slot) == NULL) return;
ShowScriptTextfileWindow((TextfileType)(widget - WID_AIC_TEXTFILE), this->selected_slot);
return;
}
switch (widget) {
case WID_AIC_DECREASE:
case WID_AIC_INCREASE: {
@@ -924,10 +822,6 @@ struct AIConfigWindow : public Window {
this->SetWidgetDisabledState(WID_AIC_CONFIGURE, this->selected_slot == INVALID_COMPANY || GetConfig(this->selected_slot)->GetConfigList()->size() == 0);
this->SetWidgetDisabledState(WID_AIC_MOVE_UP, this->selected_slot == OWNER_DEITY || this->selected_slot == INVALID_COMPANY || !IsEditable((CompanyID)(this->selected_slot - 1)));
this->SetWidgetDisabledState(WID_AIC_MOVE_DOWN, this->selected_slot == OWNER_DEITY || this->selected_slot == INVALID_COMPANY || !IsEditable((CompanyID)(this->selected_slot + 1)));
for (TextfileType tft = TFT_BEGIN; tft < TFT_END; tft++) {
this->SetWidgetDisabledState(WID_AIC_TEXTFILE + tft, this->selected_slot == INVALID_COMPANY || (GetConfig(this->selected_slot)->GetTextfile(tft, this->selected_slot) == NULL));
}
}
};
@@ -938,31 +832,10 @@ void ShowAIConfigWindow()
new AIConfigWindow();
}
/**
* Set the widget colour of a button based on the
* state of the script. (dead or alive)
* @param button the button to update.
* @param dead true if the script is dead, otherwise false.
* @param paused true if the script is paused, otherwise false.
* @return true if the colour was changed and the window need to be marked as dirty.
*/
static bool SetScriptButtonColour(NWidgetCore &button, bool dead, bool paused)
{
/* Dead scripts are indicated with red background and
* paused scripts are indicated with yellow background. */
Colours colour = dead ? COLOUR_RED :
(paused ? COLOUR_YELLOW : COLOUR_GREY);
if (button.colour != colour) {
button.colour = colour;
return true;
}
return false;
}
/**
* Window with everything an AI prints via ScriptLog.
*/
struct AIDebugWindow : public Window {
struct AIDebugWindow : public QueryStringBaseWindow {
static const int top_offset; ///< Offset of the text at the top of the WID_AID_LOG_PANEL.
static const int bottom_offset; ///< Offset of the text at the bottom of the WID_AID_LOG_PANEL.
@@ -975,8 +848,6 @@ struct AIDebugWindow : public Window {
bool show_break_box; ///< Whether the break/debug box is visible.
static bool break_check_enabled; ///< Stop an AI when it prints a matching string
static char break_string[MAX_BREAK_STR_STRING_LENGTH]; ///< The string to match to the AI output
QueryString break_editbox; ///< Break editbox
static StringFilter break_string_filter; ///< Log filter for break.
static bool case_sensitive_break_check; ///< Is the matching done case-sensitive
int highlight_row; ///< The output row that matches the given string, or -1
Scrollbar *vscroll; ///< Cache of the vertical scrollbar.
@@ -992,7 +863,7 @@ struct AIDebugWindow : public Window {
* @param desc The description of the window.
* @param number The window number (actually unused).
*/
AIDebugWindow(const WindowDesc *desc, WindowNumber number) : break_editbox(MAX_BREAK_STR_STRING_LENGTH)
AIDebugWindow(const WindowDesc *desc, WindowNumber number) : QueryStringBaseWindow(MAX_BREAK_STR_STRING_LENGTH)
{
this->CreateNestedTree(desc);
this->vscroll = this->GetScrollbar(WID_AID_SCROLLBAR);
@@ -1013,19 +884,17 @@ struct AIDebugWindow : public Window {
this->last_vscroll_pos = 0;
this->autoscroll = true;
this->highlight_row = -1;
this->querystrings[WID_AID_BREAK_STR_EDIT_BOX] = &this->break_editbox;
InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, MAX_BREAK_STR_STRING_LENGTH);
/* Restore the break string value from static variable */
this->break_editbox.text.Assign(this->break_string);
strecpy(this->edit_str_buf, this->break_string, this->edit_str_buf + MAX_BREAK_STR_STRING_LENGTH);
UpdateTextBufferSize(&this->text);
/* Restore button state from static class variables */
if (ai_debug_company == OWNER_DEITY) {
this->LowerWidget(WID_AID_SCRIPT_GAME);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
} else if (ai_debug_company != INVALID_COMPANY) {
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
}
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
@@ -1061,14 +930,6 @@ struct AIDebugWindow : public Window {
break;
}
}
/* If no AI is available, see if there is a game script. */
if (ai_debug_company == INVALID_COMPANY && Game::GetInstance() != NULL) {
/* Lower the widget corresponding to the game script. */
this->LowerWidget(WID_AID_SCRIPT_GAME);
ai_debug_company = OWNER_DEITY;
}
}
/* Update "Reload AI" and "AI settings" buttons */
@@ -1081,6 +942,8 @@ struct AIDebugWindow : public Window {
if (this->IsShaded()) return; // Don't draw anything when the window is shaded.
if (this->show_break_box) this->DrawEditBox(WID_AID_BREAK_STR_EDIT_BOX);
/* Paint the company icons */
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + WID_AID_COMPANY_BUTTON_START);
@@ -1094,12 +957,13 @@ struct AIDebugWindow : public Window {
dirty = true;
}
/* Mark dead/paused AIs by setting the background colour. */
bool dead = valid && Company::Get(i)->ai_instance->IsDead();
bool paused = valid && Company::Get(i)->ai_instance->IsPaused();
/* Re-paint if the button was updated.
* (note that it is intentional that SetScriptButtonColour is always called) */
dirty = SetScriptButtonColour(*button, dead, paused) || dirty;
Colours colour = dead ? COLOUR_RED : COLOUR_GREY;
if (button->colour != colour) {
/* Mark dead AIs by red background */
button->colour = colour;
dirty = true;
}
/* Do we need a repaint? */
if (dirty) this->SetDirty();
@@ -1110,16 +974,6 @@ struct AIDebugWindow : public Window {
DrawCompanyIcon(i, button->pos_x + button->current_x / 2 - 7 + offset, this->GetWidget<NWidgetBase>(WID_AID_COMPANY_BUTTON_START + i)->pos_y + 2 + offset);
}
/* Set button colour for Game Script. */
GameInstance *game = Game::GetInstance();
bool dead = game != NULL && game->IsDead();
bool paused = game != NULL && game->IsPaused();
NWidgetCore *button = this->GetWidget<NWidgetCore>(WID_AID_SCRIPT_GAME);
if (SetScriptButtonColour(*button, dead, paused)) {
/* Re-paint if the button was updated. */
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
}
/* If there are no active companies, don't display anything else. */
if (ai_debug_company == INVALID_COMPANY) return;
@@ -1232,13 +1086,10 @@ struct AIDebugWindow : public Window {
if (ai_debug_company == OWNER_DEITY) {
this->LowerWidget(WID_AID_SCRIPT_GAME);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
} else {
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
}
this->highlight_row = -1; // The highlight of one AI make little sense for another AI.
this->autoscroll = true;
this->last_vscroll_pos = this->vscroll->GetPosition();
this->SetDirty();
@@ -1248,12 +1099,12 @@ struct AIDebugWindow : public Window {
virtual void OnClick(Point pt, int widget, int click_count)
{
/* Also called for hotkeys, so check for disabledness */
if (this->IsWidgetDisabled(widget)) return;
/* Check which button is clicked */
if (IsInsideMM(widget, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END + 1)) {
ChangeToAI((CompanyID)(widget - WID_AID_COMPANY_BUTTON_START));
/* Is it no on disable? */
if (!this->IsWidgetDisabled(widget)) {
ChangeToAI((CompanyID)(widget - WID_AID_COMPANY_BUTTON_START));
}
}
switch (widget) {
@@ -1281,70 +1132,39 @@ struct AIDebugWindow : public Window {
case WID_AID_MATCH_CASE_BTN:
this->case_sensitive_break_check = !this->case_sensitive_break_check;
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
this->SetWidgetDirty(WID_AID_MATCH_CASE_BTN);
break;
case WID_AID_CONTINUE_BTN:
/* Unpause current AI / game script and mark the corresponding script button dirty. */
if (ai_debug_company == OWNER_DEITY) {
Game::Unpause();
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
} else {
AI::Unpause(ai_debug_company);
this->SetWidgetDirty(WID_AID_COMPANY_BUTTON_START + ai_debug_company);
}
/* If the last AI/Game Script is unpaused, unpause the game too. */
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_PAUSED_NORMAL) {
bool all_unpaused = !Game::IsPaused();
if (all_unpaused) {
Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai && AI::IsPaused(c->index)) {
all_unpaused = false;
break;
}
}
if (all_unpaused) {
/* All scripts have been unpaused => unpause the game. */
DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE);
}
}
}
this->highlight_row = -1;
this->SetWidgetDirty(WID_AID_LOG_PANEL);
/* Unpause */
DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE);
this->DisableWidget(WID_AID_CONTINUE_BTN);
this->RaiseWidget(WID_AID_CONTINUE_BTN); // Disabled widgets don't raise themself
break;
}
}
virtual void OnTimeout()
{
this->RaiseWidget(WID_AID_RELOAD_TOGGLE);
this->RaiseWidget(WID_AID_SETTINGS);
this->SetDirty();
}
virtual void OnMouseLoop()
{
this->HandleEditBox(WID_AID_BREAK_STR_EDIT_BOX);
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
{
EventState state = ES_NOT_HANDLED;
int num = CheckHotkeyMatch(aidebug_hotkeys, keycode, this);
if (num != -1) {
if (this->show_break_box && num == WID_AID_BREAK_STR_EDIT_BOX) {
this->SetFocusedWidget(WID_AID_BREAK_STR_EDIT_BOX);
SetFocusedWindow(this);
state = ES_HANDLED;
} else if (this->show_break_box || num < WID_AID_BREAK_STRING_WIDGETS) {
this->OnClick(Point(), num, 1);
state = ES_HANDLED;
}
if (this->HandleEditBoxKey(WID_AID_BREAK_STR_EDIT_BOX, key, keycode, state) != HEBR_NOT_FOCUSED) {
/* Save the current string to static member so it can be restored next time the window is opened */
strecpy(this->break_string, this->edit_str_buf, lastof(this->break_string));
}
return state;
}
virtual void OnEditboxChanged(int wid)
{
if (wid == WID_AID_BREAK_STR_EDIT_BOX) {
/* Save the current string to static member so it can be restored next time the window is opened. */
strecpy(this->break_string, this->break_editbox.text.buf, lastof(this->break_string));
break_string_filter.SetFilterTerm(this->break_string);
}
}
/**
* Some data on this window has become invalid.
* @param data Information about the changed data.
@@ -1354,35 +1174,39 @@ struct AIDebugWindow : public Window {
{
if (data == -1 || ai_debug_company == data) this->SetDirty();
if (gui_scope && data == -2) {
/* The continue button should be disabled when the game is unpaused and
* it was previously paused by the break string ( = a line in the log
* was highlighted )*/
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_UNPAUSED && this->highlight_row != -1) {
this->DisableWidget(WID_AID_CONTINUE_BTN);
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
this->SetWidgetDirty(WID_AID_LOG_PANEL);
this->highlight_row = -1;
}
}
/* If the log message is related to the active company tab, check the break string.
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
if (ai_debug_company != OWNER_DEITY && !gui_scope && data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
/* Get the log instance of the active company */
ScriptLog::LogData *log = this->GetLogPointer();
if (log != NULL) {
this->break_string_filter.ResetState();
this->break_string_filter.AddLine(log->lines[log->pos]);
if (this->break_string_filter.GetState()) {
/* Pause execution of script. */
if (ai_debug_company == OWNER_DEITY) {
Game::Pause();
} else {
AI::Pause(ai_debug_company);
}
if (log != NULL && case_sensitive_break_check?
strstr(log->lines[log->pos], this->edit_str_buf) != 0 :
strcasestr(log->lines[log->pos], this->edit_str_buf) != 0) {
/* Pause the game. */
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_UNPAUSED) {
DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
}
/* Make it possible to click on the continue button */
this->EnableWidget(WID_AID_CONTINUE_BTN);
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
/* Highlight row that matched */
this->highlight_row = log->pos;
AI::Suspend(ai_debug_company);
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_UNPAUSED) {
DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
}
/* Make it possible to click on the continue button */
this->EnableWidget(WID_AID_CONTINUE_BTN);
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
/* Highlight row that matched */
this->highlight_row = log->pos;
}
}
}
@@ -1391,8 +1215,6 @@ struct AIDebugWindow : public Window {
{
this->vscroll->SetCapacityFromWidget(this, WID_AID_LOG_PANEL);
}
static Hotkey<AIDebugWindow> aidebug_hotkeys[];
};
const int AIDebugWindow::top_offset = WD_FRAMERECT_TOP + 2;
@@ -1401,7 +1223,6 @@ CompanyID AIDebugWindow::ai_debug_company = INVALID_COMPANY;
char AIDebugWindow::break_string[MAX_BREAK_STR_STRING_LENGTH] = "";
bool AIDebugWindow::break_check_enabled = true;
bool AIDebugWindow::case_sensitive_break_check = false;
StringFilter AIDebugWindow::break_string_filter(&AIDebugWindow::case_sensitive_break_check);
/** Make a number of rows with buttons for each company for the AI debug window. */
NWidgetBase *MakeCompanyButtonRowsAIDebug(int *biggest_index)
@@ -1409,33 +1230,6 @@ NWidgetBase *MakeCompanyButtonRowsAIDebug(int *biggest_index)
return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP);
}
Hotkey<AIDebugWindow> AIDebugWindow::aidebug_hotkeys[] = {
Hotkey<AIDebugWindow>('1', "company_1", WID_AID_COMPANY_BUTTON_START),
Hotkey<AIDebugWindow>('2', "company_2", WID_AID_COMPANY_BUTTON_START + 1),
Hotkey<AIDebugWindow>('3', "company_3", WID_AID_COMPANY_BUTTON_START + 2),
Hotkey<AIDebugWindow>('4', "company_4", WID_AID_COMPANY_BUTTON_START + 3),
Hotkey<AIDebugWindow>('5', "company_5", WID_AID_COMPANY_BUTTON_START + 4),
Hotkey<AIDebugWindow>('6', "company_6", WID_AID_COMPANY_BUTTON_START + 5),
Hotkey<AIDebugWindow>('7', "company_7", WID_AID_COMPANY_BUTTON_START + 6),
Hotkey<AIDebugWindow>('8', "company_8", WID_AID_COMPANY_BUTTON_START + 7),
Hotkey<AIDebugWindow>('9', "company_9", WID_AID_COMPANY_BUTTON_START + 8),
Hotkey<AIDebugWindow>((uint16)0, "company_10", WID_AID_COMPANY_BUTTON_START + 9),
Hotkey<AIDebugWindow>((uint16)0, "company_11", WID_AID_COMPANY_BUTTON_START + 10),
Hotkey<AIDebugWindow>((uint16)0, "company_12", WID_AID_COMPANY_BUTTON_START + 11),
Hotkey<AIDebugWindow>((uint16)0, "company_13", WID_AID_COMPANY_BUTTON_START + 12),
Hotkey<AIDebugWindow>((uint16)0, "company_14", WID_AID_COMPANY_BUTTON_START + 13),
Hotkey<AIDebugWindow>((uint16)0, "company_15", WID_AID_COMPANY_BUTTON_START + 14),
Hotkey<AIDebugWindow>('S', "settings", WID_AID_SETTINGS),
Hotkey<AIDebugWindow>('0', "game_script", WID_AID_SCRIPT_GAME),
Hotkey<AIDebugWindow>((uint16)0, "reload", WID_AID_RELOAD_TOGGLE),
Hotkey<AIDebugWindow>('B', "break_toggle", WID_AID_BREAK_STR_ON_OFF_BTN),
Hotkey<AIDebugWindow>('F', "break_string", WID_AID_BREAK_STR_EDIT_BOX),
Hotkey<AIDebugWindow>('C', "match_case", WID_AID_MATCH_CASE_BTN),
Hotkey<AIDebugWindow>(WKC_RETURN, "continue", WID_AID_CONTINUE_BTN),
HOTKEY_LIST_END(AIDebugWindow)
};
Hotkey<AIDebugWindow> *_aidebug_hotkeys = AIDebugWindow::aidebug_hotkeys;
/** Widgets for the AI debug window. */
static const NWidgetPart _nested_ai_debug_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -1448,7 +1242,7 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
NWidgetFunction(MakeCompanyButtonRowsAIDebug), SetPadding(0, 2, 1, 2),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_AID_SCRIPT_GAME), SetMinimalSize(100, 20), SetResize(1, 0), SetDataTip(STR_AI_GAME_SCRIPT, STR_AI_GAME_SCRIPT_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_AID_SCRIPT_GAME), SetMinimalSize(100, 20), SetResize(1, 0), SetDataTip(STR_AI_GAME_SCRIPT, STR_AI_GAME_SCRIPT_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_AID_NAME_TEXT), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_AI_DEBUG_NAME_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_AID_SETTINGS), SetMinimalSize(100, 20), SetDataTip(STR_AI_DEBUG_SETTINGS, STR_AI_DEBUG_SETTINGS_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_AID_RELOAD_TOGGLE), SetMinimalSize(100, 20), SetDataTip(STR_AI_DEBUG_RELOAD, STR_AI_DEBUG_RELOAD_TOOLTIP),
@@ -1465,10 +1259,10 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_LABEL, COLOUR_GREY), SetPadding(2, 2, 2, 4), SetDataTip(STR_AI_DEBUG_BREAK_ON_LABEL, 0x0),
NWidget(WWT_EDITBOX, COLOUR_GREY, WID_AID_BREAK_STR_EDIT_BOX), SetFill(1, 1), SetResize(1, 0), SetPadding(2, 2, 2, 2), SetDataTip(STR_AI_DEBUG_BREAK_STR_OSKTITLE, STR_AI_DEBUG_BREAK_STR_TOOLTIP),
NWidget(WWT_EDITBOX, COLOUR_WHITE, WID_AID_BREAK_STR_EDIT_BOX), SetFill(1, 1), SetResize(1, 0), SetPadding(2, 2, 2, 2), SetDataTip(STR_AI_DEBUG_BREAK_STR_OSKTITLE, STR_AI_DEBUG_BREAK_STR_TOOLTIP),
EndContainer(),
EndContainer(),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_AID_MATCH_CASE_BTN), SetMinimalSize(100, 0), SetFill(0, 1), SetDataTip(STR_AI_DEBUG_MATCH_CASE, STR_AI_DEBUG_MATCH_CASE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_AID_MATCH_CASE_BTN), SetMinimalSize(100, 0), SetFill(0, 1), SetDataTip(STR_AI_DEBUG_MATCH_CASE, STR_AI_DEBUG_MATCH_CASE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_AID_CONTINUE_BTN), SetMinimalSize(100, 0), SetFill(0, 1), SetDataTip(STR_AI_DEBUG_CONTINUE, STR_AI_DEBUG_CONTINUE_TOOLTIP),
EndContainer(),
EndContainer(),
@@ -1492,30 +1286,15 @@ static const WindowDesc _ai_debug_desc(
* Open the AI debug window and select the given company.
* @param show_company Display debug information about this AI company.
*/
Window *ShowAIDebugWindow(CompanyID show_company)
void ShowAIDebugWindow(CompanyID show_company)
{
if (!_networking || _network_server) {
AIDebugWindow *w = (AIDebugWindow *)BringWindowToFrontById(WC_AI_DEBUG, 0);
if (w == NULL) w = new AIDebugWindow(&_ai_debug_desc, 0);
if (show_company != INVALID_COMPANY) w->ChangeToAI(show_company);
return w;
} else {
ShowErrorMessage(STR_ERROR_AI_DEBUG_SERVER_ONLY, INVALID_STRING_ID, WL_INFO);
}
return NULL;
}
/**
* Handler for global AI debug window hotkeys.
*/
EventState AIDebugGlobalHotkeys(uint16 key, uint16 keycode)
{
int num = CheckHotkeyMatch<AIDebugWindow>(_aidebug_hotkeys, keycode, NULL, true);
if (num == -1) return ES_NOT_HANDLED;
Window *w = ShowAIDebugWindow(INVALID_COMPANY);
if (w == NULL) return ES_NOT_HANDLED;
return w->OnKeyPress(key, keycode);
}
/**

View File

@@ -14,7 +14,7 @@
#include "../company_type.h"
Window* ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY);
void ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY);
void ShowAIConfigWindow();
void ShowAIDebugWindowIfAIError();
void InitializeAIGui();

View File

@@ -23,7 +23,7 @@
*/
static bool CheckAPIVersion(const char *api_version)
{
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0;
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0;
}
#if defined(WIN32)

View File

@@ -81,6 +81,7 @@
#include "../company_base.h"
#include "../company_func.h"
#include "../fileio_func.h"
AIInstance::AIInstance() :
ScriptInstance("AI")
@@ -127,16 +128,13 @@ void AIInstance::RegisterAPI()
SQAIEventCompanyInTrouble_Register(this->engine);
SQAIEventCompanyMerger_Register(this->engine);
SQAIEventCompanyNew_Register(this->engine);
SQAIEventCompanyTown_Register(this->engine);
SQAIEventController_Register(this->engine);
SQAIEventDisasterZeppelinerCleared_Register(this->engine);
SQAIEventDisasterZeppelinerCrashed_Register(this->engine);
SQAIEventEngineAvailable_Register(this->engine);
SQAIEventEnginePreview_Register(this->engine);
SQAIEventExclusiveTransportRights_Register(this->engine);
SQAIEventIndustryClose_Register(this->engine);
SQAIEventIndustryOpen_Register(this->engine);
SQAIEventRoadReconstruction_Register(this->engine);
SQAIEventStationFirstVehicle_Register(this->engine);
SQAIEventSubsidyAwarded_Register(this->engine);
SQAIEventSubsidyExpired_Register(this->engine);
@@ -193,7 +191,29 @@ void AIInstance::RegisterAPI()
SQAIWaypointList_Register(this->engine);
SQAIWaypointList_Vehicle_Register(this->engine);
if (!this->LoadCompatibilityScripts(this->versionAPI, AI_DIR)) this->Died();
if (!this->LoadCompatibilityScripts(this->versionAPI)) this->Died();
}
bool AIInstance::LoadCompatibilityScripts(const char *api_version)
{
char script_name[32];
seprintf(script_name, lastof(script_name), "compat_%s.nut", api_version);
char buf[MAX_PATH];
Searchpath sp;
FOR_ALL_SEARCHPATHS(sp) {
FioAppendDirectory(buf, MAX_PATH, sp, AI_DIR);
ttd_strlcat(buf, script_name, MAX_PATH);
if (!FileExists(buf)) continue;
if (this->engine->LoadScript(buf)) return true;
ScriptLog::Error("Failed to load API compatibility script");
DEBUG(script, 0, "Error compiling / running API compatibility script: %s", buf);
return false;
}
ScriptLog::Warning("API compatibility script not found");
return true;
}
void AIInstance::Died()
@@ -202,7 +222,7 @@ void AIInstance::Died()
ShowAIDebugWindow(_current_company);
const AIInfo *info = AIConfig::GetConfig(_current_company, AIConfig::SSS_FORCE_GAME)->GetInfo();
const AIInfo *info = AIConfig::GetConfig(_current_company)->GetInfo();
if (info != NULL) {
ShowErrorMessage(STR_ERROR_AI_PLEASE_REPORT_CRASH, INVALID_STRING_ID, WL_WARNING);

View File

@@ -29,10 +29,17 @@ public:
/* virtual */ ScriptInfo *FindLibrary(const char *library, int version);
private:
const char *versionAPI; ///< Current API used by this script.
/* virtual */ void RegisterAPI();
/* virtual */ void Died();
/* virtual */ CommandCallback *GetDoCommandCallback();
/* virtual */ void LoadDummyScript();
/**
* Load squirrel scripts to emulate an older API.
*/
bool LoadCompatibilityScripts(const char *api_version);
};
#endif /* AI_INSTANCE_HPP */

View File

@@ -32,7 +32,7 @@ enum VehicleAirFlags {
void HandleAircraftEnterHangar(Aircraft *v);
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type);
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, EngineImageType image_type);
void UpdateAirplanesOnNewStation(const Station *st);
void UpdateAircraftCache(Aircraft *v, bool update_range = false);
@@ -76,15 +76,8 @@ struct Aircraft FINAL : public SpecializedVehicle<Aircraft, VEH_AIRCRAFT> {
int GetDisplaySpeed() const { return this->cur_speed; }
int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed; }
int GetSpeedOldUnits() const { return this->vcache.cached_max_speed * 10 / 128; }
int GetCurrentMaxSpeed() const { return this->GetSpeedOldUnits(); }
Money GetRunningCost() const;
bool IsInDepot() const
{
assert(this->IsPrimaryVehicle());
return (this->vehstatus & VS_HIDDEN) != 0 && IsHangarTile(this->tile);
}
bool IsInDepot() const { return (this->vehstatus & VS_HIDDEN) != 0 && IsHangarTile(this->tile); }
bool Tick();
void OnNewDay();
uint Crash(bool flooded = false);

View File

@@ -202,22 +202,17 @@ void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID en
}
/**
* Get the size of the sprite of an aircraft sprite heading west (used for lists).
* @param engine The engine to get the sprite from.
* @param[out] width The width of the sprite.
* @param[out] height The height of the sprite.
* @param[out] xoffs Number of pixels to shift the sprite to the right.
* @param[out] yoffs Number of pixels to shift the sprite downwards.
* @param image_type Context the sprite is used in.
* Get the size of the sprite of an aircraft sprite heading west (used for lists)
* @param engine The engine to get the sprite from
* @param width The width of the sprite
* @param height The height of the sprite
*/
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, EngineImageType image_type)
{
const Sprite *spr = GetSprite(GetAircraftIcon(engine, image_type), ST_NORMAL);
width = UnScaleByZoom(spr->width, ZOOM_LVL_GUI);
height = UnScaleByZoom(spr->height, ZOOM_LVL_GUI);
xoffs = UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI);
yoffs = UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI);
}
/**
@@ -370,7 +365,7 @@ bool Aircraft::FindClosestDepot(TileIndex *location, DestinationID *destination,
static void CheckIfAircraftNeedsService(Aircraft *v)
{
if (Company::Get(v->owner)->settings.vehicle.servint_aircraft == 0 || !v->NeedsAutomaticServicing()) return;
if (v->IsChainInDepot()) {
if (v->IsInDepot()) {
VehicleServiceInDepot(v);
return;
}
@@ -1168,10 +1163,13 @@ static void CrashAirplane(Aircraft *v)
AI::NewEvent(v->owner, new ScriptEventVehicleCrashed(v->index, v->tile, st == NULL ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
Game::NewEvent(new ScriptEventVehicleCrashed(v->index, v->tile, st == NULL ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
AddVehicleNewsItem(newsitem, NT_ACCIDENT, v->index, st != NULL ? st->index : INVALID_STATION);
AddVehicleNewsItem(newsitem,
NS_ACCIDENT,
v->index,
st != NULL ? st->index : INVALID_STATION);
ModifyStationRatingAround(v->tile, v->owner, -160, 30);
if (_settings_client.sound.disaster) SndPlayVehicleFx(SND_12_EXPLOSION, v);
SndPlayVehicleFx(SND_12_EXPLOSION, v);
}
/**
@@ -1224,7 +1222,7 @@ static void AircraftEntersTerminal(Aircraft *v)
/* show newsitem of celebrating citizens */
AddVehicleNewsItem(
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL,
(v->owner == _local_company) ? NT_ARRIVAL_COMPANY : NT_ARRIVAL_OTHER,
(v->owner == _local_company) ? NS_ARRIVAL_COMPANY : NS_ARRIVAL_OTHER,
v->index,
st->index
);
@@ -1463,8 +1461,8 @@ static void AircraftEventHandler_Flying(Aircraft *v, const AirportFTAClass *apc)
{
Station *st = Station::Get(v->targetairport);
/* Runway busy, not allowed to use this airstation or closed, circle. */
if (CanVehicleUseStation(v, st) && (st->owner == OWNER_NONE || st->owner == v->owner) && !(st->airport.flags & AIRPORT_CLOSED_block)) {
/* runway busy or not allowed to use this airstation, circle */
if (CanVehicleUseStation(v, st) && (st->owner == OWNER_NONE || st->owner == v->owner)) {
/* {32,FLYING,NOTHING_block,37}, {32,LANDING,N,33}, {32,HELILANDING,N,41},
* if it is an airplane, look for LANDING, for helicopter HELILANDING
* it is possible to choose from multiple landing runways, so loop until a free one is found */
@@ -1864,7 +1862,7 @@ static void AircraftHandleDestTooFar(Aircraft *v, bool too_far)
if (v->owner == _local_company) {
/* Post a news message. */
SetDParam(0, v->index);
AddVehicleAdviceNewsItem(STR_NEWS_AIRCRAFT_DEST_TOO_FAR, v->index);
AddVehicleNewsItem(STR_NEWS_AIRCRAFT_DEST_TOO_FAR, NS_ADVICE, v->index);
}
}
return;
@@ -1896,7 +1894,7 @@ static bool AircraftEventHandler(Aircraft *v, int loop)
if (v->current_order.IsType(OT_LOADING) || v->current_order.IsType(OT_LEAVESTATION)) return true;
if (v->state >= ENDTAKEOFF && v->state <= HELIENDLANDING) {
if (v->state == FLYING) {
/* If we are flying, unconditionally clear the 'dest too far' state. */
AircraftHandleDestTooFar(v, false);
} else if (v->acache.cached_max_range_sqr != 0) {

View File

@@ -122,8 +122,7 @@ static const uint64
OUT_WAY_block2 = 1ULL << 31,
/* end of new blocks */
NOTHING_block = 1ULL << 30,
AIRPORT_CLOSED_block = 1ULL << 63; ///< Dummy block for indicating a closed airport.
NOTHING_block = 1ULL << 30;
/** A single location on an airport where aircraft can move to. */
struct AirportMovingData {

View File

@@ -43,7 +43,7 @@ void CcBuildAirport(const CommandCost &result, TileIndex tile, uint32 p1, uint32
{
if (result.Failed()) return;
if (_settings_client.sound.confirm) SndPlayTileFx(SND_1F_SPLAT, tile);
SndPlayTileFx(SND_1F_SPLAT, tile);
if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
}
@@ -57,7 +57,7 @@ static void PlaceAirport(TileIndex tile)
uint32 p2 = _ctrl_pressed;
SB(p2, 16, 16, INVALID_STATION); // no station to join
uint32 p1 = AirportClass::Get(_selected_airport_class)->GetSpec(_selected_airport_index)->GetIndex();
uint32 p1 = AirportClass::Get(_selected_airport_class, _selected_airport_index)->GetIndex();
p1 |= _selected_airport_layout << 8;
CommandContainer cmdcont = { tile, p1, p2, CMD_BUILD_AIRPORT | CMD_MSG(STR_ERROR_CAN_T_BUILD_AIRPORT_HERE), CcBuildAirport, "" };
ShowSelectStationIfNeeded(cmdcont, TileArea(tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE));
@@ -207,8 +207,8 @@ class BuildAirportWindow : public PickerWindowBase {
{
DropDownList *list = new DropDownList();
for (uint i = 0; i < AirportClass::GetClassCount(); i++) {
list->push_back(new DropDownListStringItem(AirportClass::Get((AirportClassID)i)->name, i, false));
for (uint i = 0; i < AirportClass::GetCount(); i++) {
list->push_back(new DropDownListStringItem(AirportClass::GetName((AirportClassID)i), i, false));
}
return list;
@@ -229,7 +229,7 @@ public:
this->SetWidgetLoweredState(WID_AP_BTN_DOHILIGHT, _settings_client.gui.station_show_coverage);
this->OnInvalidateData();
this->vscroll->SetCount(AirportClass::Get(_selected_airport_class)->GetSpecCount());
this->vscroll->SetCount(AirportClass::GetCount(_selected_airport_class));
this->SelectFirstAvailableAirport(true);
}
@@ -242,13 +242,13 @@ public:
{
switch (widget) {
case WID_AP_CLASS_DROPDOWN:
SetDParam(0, AirportClass::Get(_selected_airport_class)->name);
SetDParam(0, AirportClass::GetName(_selected_airport_class));
break;
case WID_AP_LAYOUT_NUM:
SetDParam(0, STR_EMPTY);
if (_selected_airport_index != -1) {
const AirportSpec *as = AirportClass::Get(_selected_airport_class)->GetSpec(_selected_airport_index);
const AirportSpec *as = AirportClass::Get(_selected_airport_class, _selected_airport_index);
StringID string = GetAirportTextCallback(as, _selected_airport_layout, CBID_AIRPORT_LAYOUT_NAME);
if (string != STR_UNDEFINED) {
SetDParam(0, string);
@@ -268,8 +268,8 @@ public:
switch (widget) {
case WID_AP_CLASS_DROPDOWN: {
Dimension d = {0, 0};
for (uint i = 0; i < AirportClass::GetClassCount(); i++) {
SetDParam(0, AirportClass::Get((AirportClassID)i)->name);
for (uint i = 0; i < AirportClass::GetCount(); i++) {
SetDParam(0, AirportClass::GetName((AirportClassID)i));
d = maxdim(d, GetStringBoundingBox(STR_BLACK_STRING));
}
d.width += padding.width;
@@ -332,9 +332,8 @@ public:
switch (widget) {
case WID_AP_AIRPORT_LIST: {
int y = r.top;
AirportClass *apclass = AirportClass::Get(_selected_airport_class);
for (uint i = this->vscroll->GetPosition(); this->vscroll->IsVisible(i) && i < apclass->GetSpecCount(); i++) {
const AirportSpec *as = apclass->GetSpec(i);
for (uint i = this->vscroll->GetPosition(); this->vscroll->IsVisible(i) && i < AirportClass::GetCount(_selected_airport_class); i++) {
const AirportSpec *as = AirportClass::Get(_selected_airport_class, i);
if (!as->IsAvailable()) {
GfxFillRect(r.left + 1, y + 1, r.right - 1, y + this->line_height - 2, PC_BLACK, FILLRECT_CHECKER);
}
@@ -353,7 +352,7 @@ public:
case WID_AP_EXTRA_TEXT:
if (_selected_airport_index != -1) {
const AirportSpec *as = AirportClass::Get(_selected_airport_class)->GetSpec(_selected_airport_index);
const AirportSpec *as = AirportClass::Get(_selected_airport_class, _selected_airport_index);
StringID string = GetAirportTextCallback(as, _selected_airport_layout, CBID_AIRPORT_ADDITIONAL_TEXT);
if (string != STR_UNDEFINED) {
SetDParam(0, string);
@@ -375,7 +374,7 @@ public:
int bottom = panel_nwi->pos_y + panel_nwi->current_y;
if (_selected_airport_index != -1) {
const AirportSpec *as = AirportClass::Get(_selected_airport_class)->GetSpec(_selected_airport_index);
const AirportSpec *as = AirportClass::Get(_selected_airport_class, _selected_airport_index);
int rad = _settings_game.station.modified_catchment ? as->catchment : (uint)CA_UNMODIFIED;
/* only show the station (airport) noise, if the noise option is activated */
@@ -413,7 +412,7 @@ public:
this->DisableWidget(WID_AP_LAYOUT_DECREASE);
this->DisableWidget(WID_AP_LAYOUT_INCREASE);
} else {
const AirportSpec *as = AirportClass::Get(_selected_airport_class)->GetSpec(_selected_airport_index);
const AirportSpec *as = AirportClass::Get(_selected_airport_class, _selected_airport_index);
int w = as->size_x;
int h = as->size_y;
Direction rotation = as->rotation[_selected_airport_layout];
@@ -440,7 +439,7 @@ public:
case WID_AP_AIRPORT_LIST: {
int num_clicked = this->vscroll->GetPosition() + (pt.y - this->nested_array[widget]->pos_y) / this->line_height;
if (num_clicked >= this->vscroll->GetCount()) break;
const AirportSpec *as = AirportClass::Get(_selected_airport_class)->GetSpec(num_clicked);
const AirportSpec *as = AirportClass::Get(_selected_airport_class, num_clicked);
if (as->IsAvailable()) this->SelectOtherAirport(num_clicked);
break;
}
@@ -450,7 +449,7 @@ public:
this->SetWidgetLoweredState(WID_AP_BTN_DONTHILIGHT, !_settings_client.gui.station_show_coverage);
this->SetWidgetLoweredState(WID_AP_BTN_DOHILIGHT, _settings_client.gui.station_show_coverage);
this->SetDirty();
if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP);
SndPlayFx(SND_15_BEEP);
this->UpdateSelectSize();
break;
@@ -476,9 +475,8 @@ public:
void SelectFirstAvailableAirport(bool change_class)
{
/* First try to select an airport in the selected class. */
AirportClass *sel_apclass = AirportClass::Get(_selected_airport_class);
for (uint i = 0; i < sel_apclass->GetSpecCount(); i++) {
const AirportSpec *as = sel_apclass->GetSpec(i);
for (uint i = 0; i < AirportClass::GetCount(_selected_airport_class); i++) {
const AirportSpec *as = AirportClass::Get(_selected_airport_class, i);
if (as->IsAvailable()) {
this->SelectOtherAirport(i);
return;
@@ -488,9 +486,8 @@ public:
/* If that fails, select the first available airport
* from a random class. */
for (AirportClassID j = APC_BEGIN; j < APC_MAX; j++) {
AirportClass *apclass = AirportClass::Get(j);
for (uint i = 0; i < apclass->GetSpecCount(); i++) {
const AirportSpec *as = apclass->GetSpec(i);
for (uint i = 0; i < AirportClass::GetCount(j); i++) {
const AirportSpec *as = AirportClass::Get(j, i);
if (as->IsAvailable()) {
_selected_airport_class = j;
this->SelectOtherAirport(i);
@@ -507,7 +504,7 @@ public:
{
assert(widget == WID_AP_CLASS_DROPDOWN);
_selected_airport_class = (AirportClassID)index;
this->vscroll->SetCount(AirportClass::Get(_selected_airport_class)->GetSpecCount());
this->vscroll->SetCount(AirportClass::GetCount(_selected_airport_class));
this->SelectFirstAvailableAirport(false);
}
@@ -557,7 +554,7 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
static const WindowDesc _build_airport_desc(
WDP_AUTO, 0, 0,
WC_BUILD_STATION, WC_BUILD_TOOLBAR,
WDF_CONSTRUCTION,
WDF_CONSTRUCTION | WDF_UNCLICK_BUTTONS,
_nested_build_airport_widgets, lengthof(_nested_build_airport_widgets)
);

View File

@@ -54,16 +54,6 @@ static EngineID GetNextArticulatedPart(uint index, EngineID front_type, Vehicle
return GetNewEngineID(front_engine->GetGRF(), front_engine->type, callback);
}
/**
* Does a NewGRF report that this should be an articulated vehicle?
* @param engine_type The engine to check.
* @return True iff the articulated engine callback flag is set.
*/
bool IsArticulatedEngine(EngineID engine_type)
{
return HasBit(EngInfo(engine_type)->callback_mask, CBM_VEHICLE_ARTIC_ENGINE);
}
/**
* Count the number of articulated parts of an engine.
* @param engine_type The engine to get the number of parts of.
@@ -119,13 +109,13 @@ static inline uint16 GetVehicleDefaultCapacity(EngineID engine, CargoID *cargo_t
*/
static inline uint32 GetAvailableVehicleCargoTypes(EngineID engine, bool include_initial_cargo_type)
{
const Engine *e = Engine::Get(engine);
if (!e->CanCarryCargo()) return 0;
uint32 cargoes = 0;
CargoID initial_cargo_type;
uint32 cargoes = e->info.refit_mask;
if (include_initial_cargo_type) {
SetBit(cargoes, e->GetDefaultCargoType());
if (GetVehicleDefaultCapacity(engine, &initial_cargo_type) > 0) {
const EngineInfo *ei = EngInfo(engine);
cargoes = ei->refit_mask;
if (include_initial_cargo_type && initial_cargo_type < NUM_CARGO) SetBit(cargoes, initial_cargo_type);
}
return cargoes;
@@ -250,7 +240,7 @@ bool IsArticulatedVehicleCarryingDifferentCargoes(const Vehicle *v, CargoID *car
CargoID first_cargo = CT_INVALID;
do {
if (v->cargo_type != CT_INVALID && v->GetEngine()->CanCarryCargo()) {
if (v->cargo_cap > 0 && v->cargo_type != CT_INVALID) {
if (first_cargo == CT_INVALID) first_cargo = v->cargo_type;
if (first_cargo != v->cargo_type) {
if (cargo_type != NULL) *cargo_type = CT_INVALID;

View File

@@ -23,7 +23,6 @@ uint32 GetUnionOfArticulatedRefitMasks(EngineID engine, bool include_initial_car
uint32 GetIntersectionOfArticulatedRefitMasks(EngineID engine, bool include_initial_cargo_type);
bool IsArticulatedVehicleCarryingDifferentCargoes(const Vehicle *v, CargoID *cargo_type);
bool IsArticulatedVehicleRefittable(EngineID engine);
bool IsArticulatedEngine(EngineID engine_type);
void CheckConsistencyOfArticulatedVehicle(const Vehicle *v);

View File

@@ -57,18 +57,16 @@ void RemoveAllEngineReplacement(EngineRenewList *erl)
* @param erl The renewlist to search in.
* @param engine Engine type to be replaced.
* @param group The group related to this replacement.
* @param[out] replace_when_old Set to true if the replacement should be done when old.
* @return The engine type to replace with, or INVALID_ENGINE if no
* replacement is in the list.
*/
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group, bool *replace_when_old)
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group)
{
const EngineRenew *er = GetEngineReplacement(erl, engine, group);
if (er == NULL && (group == DEFAULT_GROUP || (Group::IsValidID(group) && !Group::Get(group)->replace_protection))) {
/* We didn't find anything useful in the vehicle's own group so we will try ALL_GROUP */
er = GetEngineReplacement(erl, engine, ALL_GROUP);
}
if (replace_when_old != NULL) *replace_when_old = er == NULL ? false : er->replace_when_old;
return er == NULL ? INVALID_ENGINE : er->to;
}
@@ -78,11 +76,10 @@ EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group,
* @param old_engine The original engine type.
* @param new_engine The replacement engine type.
* @param group The group related to this replacement.
* @param replace_when_old Replace when old or always?
* @param flags The calling command flags.
* @return 0 on success, CMD_ERROR on failure.
*/
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, bool replace_when_old, DoCommandFlag flags)
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, DoCommandFlag flags)
{
/* Check if the old vehicle is already in the list */
EngineRenew *er = GetEngineReplacement(*erl, old_engine, group);
@@ -96,7 +93,6 @@ CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, Engi
if (flags & DC_EXEC) {
er = new EngineRenew(old_engine, new_engine);
er->group_id = group;
er->replace_when_old = replace_when_old;
/* Insert before the first element */
er->next = (EngineRenew *)(*erl);

View File

@@ -37,7 +37,6 @@ struct EngineRenew : EngineRenewPool::PoolItem<&_enginerenew_pool> {
EngineID to;
EngineRenew *next;
GroupID group_id;
bool replace_when_old; ///< Do replacement only when vehicle is old.
EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to) {}
~EngineRenew() {}

View File

@@ -206,7 +206,7 @@ static CargoID GetNewCargoTypeForReplace(Vehicle *v, EngineID engine_type, bool
* now we will figure out what cargo the train is carrying and refit to fit this */
for (v = v->First(); v != NULL; v = v->Next()) {
if (!v->GetEngine()->CanCarryCargo()) continue;
if (v->cargo_cap == 0) continue;
/* Now we found a cargo type being carried on the train and we will see if it is possible to carry to this one */
if (HasBit(available_cargo_types, v->cargo_type)) return v->cargo_type;
}
@@ -225,11 +225,10 @@ static CargoID GetNewCargoTypeForReplace(Vehicle *v, EngineID engine_type, bool
* Get the EngineID of the replacement for a vehicle
* @param v The vehicle to find a replacement for
* @param c The vehicle's owner (it's faster to forward the pointer than refinding it)
* @param always_replace Always replace, even if not old.
* @param [out] e the EngineID of the replacement. INVALID_ENGINE if no replacement is found
* @return Error if the engine to build is not available
*/
static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, bool always_replace, EngineID &e)
static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, EngineID &e)
{
assert(v->type != VEH_TRAIN || !v->IsArticulatedPart());
@@ -240,9 +239,7 @@ static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, bool alw
return CommandCost();
}
bool replace_when_old;
e = EngineReplacementForCompany(c, v->engine_type, v->group_id, &replace_when_old);
if (!always_replace && replace_when_old && !v->NeedsAutorenewing(c, false)) e = INVALID_ENGINE;
e = EngineReplacementForCompany(c, v->engine_type, v->group_id);
/* Autoreplace, if engine is available */
if (e != INVALID_ENGINE && IsEngineBuildable(e, v->type, _current_company)) {
@@ -274,7 +271,7 @@ static CommandCost BuildReplacementVehicle(Vehicle *old_veh, Vehicle **new_vehic
/* Shall the vehicle be replaced? */
const Company *c = Company::Get(_current_company);
EngineID e;
CommandCost cost = GetNewEngineType(old_veh, c, true, e);
CommandCost cost = GetNewEngineType(old_veh, c, e);
if (cost.Failed()) return cost;
if (e == INVALID_ENGINE) return CommandCost(); // neither autoreplace is set, nor autorenew is triggered
@@ -357,6 +354,11 @@ static CommandCost CopyHeadSpecificThings(Vehicle *old_head, Vehicle *new_head,
/* Last do those things which do never fail (resp. we do not care about), but which are not undo-able */
if (cost.Succeeded() && old_head != new_head && (flags & DC_EXEC) != 0) {
/* Copy vehicle name */
if (old_head->name != NULL) {
DoCommand(0, new_head->index, 0, DC_EXEC | DC_AUTOREPLACE, CMD_RENAME_VEHICLE, old_head->name);
}
/* Copy other things which cannot be copied by a command and which shall not stay resetted from the build vehicle command */
new_head->CopyVehicleConfigAndStatistics(old_head);
@@ -660,7 +662,7 @@ CommandCost CmdAutoreplaceVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1
CommandCost ret = CheckOwnership(v->owner);
if (ret.Failed()) return ret;
if (!v->IsChainInDepot()) return CMD_ERROR;
if (!v->IsInDepot()) return CMD_ERROR;
if (v->vehstatus & VS_CRASHED) return CMD_ERROR;
bool free_wagon = false;
@@ -681,7 +683,7 @@ CommandCost CmdAutoreplaceVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1
bool any_replacements = false;
while (w != NULL) {
EngineID e;
CommandCost cost = GetNewEngineType(w, c, false, e);
CommandCost cost = GetNewEngineType(w, c, e);
if (cost.Failed()) return cost;
any_replacements |= (e != INVALID_ENGINE);
w = (!free_wagon && w->type == VEH_TRAIN ? Train::From(w)->GetNextUnit() : NULL);
@@ -697,7 +699,7 @@ CommandCost CmdAutoreplaceVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1
if (!was_stopped) cost.AddCost(CmdStartStopVehicle(v, true));
if (cost.Failed()) return cost;
assert(free_wagon || v->IsStoppedInDepot());
assert(v->IsStoppedInDepot());
/* We have to construct the new vehicle chain to test whether it is valid.
* Vehicle construction needs random bits, so we have to save the random seeds
@@ -734,7 +736,6 @@ CommandCost CmdAutoreplaceVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1
* @param tile unused
* @param flags operation to perform
* @param p1 packed data
* - bit 0 = replace when engine gets old?
* - bits 16-31 = engine group
* @param p2 packed data
* - bits 0-15 = old engine type
@@ -759,15 +760,12 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
if (!Engine::IsValidID(new_engine_type)) return CMD_ERROR;
if (!CheckAutoreplaceValidity(old_engine_type, new_engine_type, _current_company)) return CMD_ERROR;
cost = AddEngineReplacementForCompany(c, old_engine_type, new_engine_type, id_g, HasBit(p1, 0), flags);
cost = AddEngineReplacementForCompany(c, old_engine_type, new_engine_type, id_g, flags);
} else {
cost = RemoveEngineReplacementForCompany(c, old_engine_type, id_g, flags);
}
if (flags & DC_EXEC) {
GroupStatistics::UpdateAutoreplace(_current_company);
SetWindowClassesDirty(GetWindowClassForVehicleType(Engine::Get(old_engine_type)->type));
}
if (flags & DC_EXEC) GroupStatistics::UpdateAutoreplace(_current_company);
if ((flags & DC_EXEC) && IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
return cost;

View File

@@ -16,8 +16,8 @@
#include "company_base.h"
void RemoveAllEngineReplacement(EngineRenewList *erl);
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group, bool *replace_when_old = NULL);
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, bool replace_when_old, DoCommandFlag flags);
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group);
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, DoCommandFlag flags);
CommandCost RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, GroupID group, DoCommandFlag flags);
/**
@@ -34,13 +34,12 @@ static inline void RemoveAllEngineReplacementForCompany(Company *c)
* @param c company.
* @param engine Engine type.
* @param group The group related to this replacement.
* @param[out] replace_when_old Set to true if the replacement should be done when old.
* @return The engine type to replace with, or INVALID_ENGINE if no
* replacement is in the list.
*/
static inline EngineID EngineReplacementForCompany(const Company *c, EngineID engine, GroupID group, bool *replace_when_old = NULL)
static inline EngineID EngineReplacementForCompany(const Company *c, EngineID engine, GroupID group)
{
return EngineReplacement(c->engine_renew_list, engine, group, replace_when_old);
return EngineReplacement(c->engine_renew_list, engine, group);
}
/**
@@ -55,33 +54,18 @@ static inline bool EngineHasReplacementForCompany(const Company *c, EngineID eng
return EngineReplacementForCompany(c, engine, group) != INVALID_ENGINE;
}
/**
* Check if a company has a replacement set up for the given engine when it gets old.
* @param c Company.
* @param engine Engine type to be replaced.
* @param group The group related to this replacement.
* @return True if a replacement when old was set up, false otherwise.
*/
static inline bool EngineHasReplacementWhenOldForCompany(const Company *c, EngineID engine, GroupID group)
{
bool replace_when_old;
EngineReplacement(c->engine_renew_list, engine, group, &replace_when_old);
return replace_when_old;
}
/**
* Add an engine replacement for the company.
* @param c Company.
* @param old_engine The original engine type.
* @param new_engine The replacement engine type.
* @param group The group related to this replacement.
* @param replace_when_old Replace when old or always?
* @param flags The calling command flags.
* @return 0 on success, CMD_ERROR on failure.
*/
static inline CommandCost AddEngineReplacementForCompany(Company *c, EngineID old_engine, EngineID new_engine, GroupID group, bool replace_when_old, DoCommandFlag flags)
static inline CommandCost AddEngineReplacementForCompany(Company *c, EngineID old_engine, EngineID new_engine, GroupID group, DoCommandFlag flags)
{
return AddEngineReplacement(&c->engine_renew_list, old_engine, new_engine, group, replace_when_old, flags);
return AddEngineReplacement(&c->engine_renew_list, old_engine, new_engine, group, flags);
}
/**

View File

@@ -24,7 +24,6 @@
#include "settings_func.h"
#include "core/geometry_func.hpp"
#include "rail_gui.h"
#include "widgets/dropdown_func.h"
#include "widgets/autoreplace_widget.h"
@@ -34,7 +33,7 @@ void DrawEngineList(VehicleType type, int x, int r, int y, const GUIEngineList *
static int CDECL EngineNumberSorter(const EngineID *a, const EngineID *b)
{
int r = Engine::Get(*a)->list_position - Engine::Get(*b)->list_position;
int r = ListPositionOfEngine(*a) - ListPositionOfEngine(*b);
return r;
}
@@ -50,7 +49,7 @@ static int CDECL EngineNumberSorter(const EngineID *a, const EngineID *b)
*/
void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g)
{
if (GetGroupNumEngines(_local_company, id_g, e) == 0 || GetGroupNumEngines(_local_company, ALL_GROUP, e) == 0) {
if (GetGroupNumEngines(_local_company, id_g, e) || GetGroupNumEngines(_local_company, ALL_GROUP, e) == 0) {
/* We don't have any of this engine type.
* Either we just sold the last one, we build a new one or we stopped replacing it.
* In all cases, we need to update the left list */
@@ -68,12 +67,6 @@ void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type)
InvalidateWindowClassesData(WC_BUILD_VEHICLE); // The build windows needs updating as well
}
static const StringID _start_replace_dropdown[] = {
STR_REPLACE_VEHICLES_NOW,
STR_REPLACE_VEHICLES_WHEN_OLD,
INVALID_STRING_ID
};
/**
* Window for the autoreplacing of vehicles.
*/
@@ -177,18 +170,6 @@ class ReplaceVehicleWindow : public Window {
this->reset_sel_engine = false;
}
/**
* Handle click on the start replace button.
* @param replace_when_old Replace now or only when old?
*/
void ReplaceClick_StartReplace(bool replace_when_old)
{
EngineID veh_from = this->sel_engine[0];
EngineID veh_to = this->sel_engine[1];
DoCommandP(0, (replace_when_old ? 1 : 0) | (this->sel_group << 16), veh_from + (veh_to << 16), CMD_SET_AUTOREPLACE);
this->SetDirty();
}
public:
ReplaceVehicleWindow(const WindowDesc *desc, VehicleType vehicletype, GroupID id_g) : Window()
{
@@ -289,17 +270,6 @@ public:
*size = maxdim(*size, d);
break;
}
case WID_RV_START_REPLACE: {
Dimension d = GetStringBoundingBox(STR_REPLACE_VEHICLES_START);
for (int i = 0; _start_replace_dropdown[i] != INVALID_STRING_ID; i++) {
d = maxdim(d, GetStringBoundingBox(_start_replace_dropdown[i]));
}
d.width += padding.width;
d.height += padding.height;
*size = maxdim(*size, d);
break;
}
}
}
@@ -308,20 +278,6 @@ public:
switch (widget) {
case WID_RV_CAPTION:
SetDParam(0, STR_REPLACE_VEHICLE_TRAIN + this->window_number);
switch (this->sel_group) {
case ALL_GROUP:
SetDParam(1, STR_GROUP_ALL_TRAINS + this->window_number);
break;
case DEFAULT_GROUP:
SetDParam(1, STR_GROUP_DEFAULT_TRAINS + this->window_number);
break;
default:
SetDParam(1, STR_GROUP_NAME);
SetDParam(2, sel_group);
break;
}
break;
case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: {
@@ -345,10 +301,8 @@ public:
if (!EngineHasReplacementForCompany(c, this->sel_engine[0], this->sel_group)) {
SetDParam(0, STR_REPLACE_NOT_REPLACING);
} else {
bool when_old = false;
EngineID e = EngineReplacementForCompany(c, this->sel_engine[0], this->sel_group, &when_old);
SetDParam(0, when_old ? STR_REPLACE_REPLACING_WHEN_OLD : STR_ENGINE_NAME);
SetDParam(1, e);
SetDParam(0, STR_ENGINE_NAME);
SetDParam(1, EngineReplacementForCompany(c, this->sel_engine[0], this->sel_group));
}
} else {
SetDParam(0, STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED);
@@ -380,11 +334,13 @@ public:
/* Disable the "Start Replacing" button if:
* Either engines list is empty
* or The selected replacement engine has a replacement (to prevent loops). */
* or The selected replacement engine has a replacement (to prevent loops)
* or The right engines list (new replacement) has the existing replacement vehicle selected */
this->SetWidgetDisabledState(WID_RV_START_REPLACE,
this->sel_engine[0] == INVALID_ENGINE ||
this->sel_engine[1] == INVALID_ENGINE ||
EngineReplacementForCompany(c, this->sel_engine[1], this->sel_group) != INVALID_ENGINE);
EngineReplacementForCompany(c, this->sel_engine[1], this->sel_group) != INVALID_ENGINE ||
EngineReplacementForCompany(c, this->sel_engine[0], this->sel_group) == this->sel_engine[1]);
/* Disable the "Stop Replacing" button if:
* The left engines list (existing vehicle) is empty
@@ -393,6 +349,9 @@ public:
this->sel_engine[0] == INVALID_ENGINE ||
!EngineHasReplacementForCompany(c, this->sel_engine[0], this->sel_group));
/* now the actual drawing of the window itself takes place */
SetDParam(0, STR_REPLACE_VEHICLE_TRAIN + this->window_number);
if (this->window_number == VEH_TRAIN) {
/* sets the colour of that art thing */
this->GetWidget<NWidgetCore>(WID_RV_TRAIN_FLUFF_LEFT)->colour = _company_colours[_local_company];
@@ -442,13 +401,10 @@ public:
break;
case WID_RV_START_REPLACE: { // Start replacing
if (this->GetWidget<NWidgetLeaf>(widget)->ButtonHit(pt)) {
this->HandleButtonClick(WID_RV_START_REPLACE);
ReplaceClick_StartReplace(false);
} else {
bool replacment_when_old = EngineHasReplacementWhenOldForCompany(Company::Get(_local_company), this->sel_engine[0], this->sel_group);
ShowDropDownMenu(this, _start_replace_dropdown, replacment_when_old ? 1 : 0, WID_RV_START_REPLACE, !this->replace_engines ? 1 << 1 : 0, 0);
}
EngineID veh_from = this->sel_engine[0];
EngineID veh_to = this->sel_engine[1];
DoCommandP(0, this->sel_group << 16, veh_from + (veh_to << 16), CMD_SET_AUTOREPLACE);
this->SetDirty();
break;
}
@@ -485,26 +441,17 @@ public:
virtual void OnDropdownSelect(int widget, int index)
{
switch (widget) {
case WID_RV_TRAIN_RAILTYPE_DROPDOWN: {
RailType temp = (RailType)index;
if (temp == sel_railtype) return; // we didn't select a new one. No need to change anything
sel_railtype = temp;
/* Reset scrollbar positions */
this->vscroll[0]->SetPosition(0);
this->vscroll[1]->SetPosition(0);
/* Rebuild the lists */
this->engines[0].ForceRebuild();
this->engines[1].ForceRebuild();
this->reset_sel_engine = true;
this->SetDirty();
break;
}
case WID_RV_START_REPLACE:
this->ReplaceClick_StartReplace(index != 0);
break;
}
RailType temp = (RailType)index;
if (temp == sel_railtype) return; // we didn't select a new one. No need to change anything
sel_railtype = temp;
/* Reset scrollbar positions */
this->vscroll[0]->SetPosition(0);
this->vscroll[1]->SetPosition(0);
/* Rebuild the lists */
this->engines[0].ForceRebuild();
this->engines[1].ForceRebuild();
this->reset_sel_engine = true;
this->SetDirty();
}
virtual void OnResize()
@@ -546,11 +493,11 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_RV_RIGHT_SCROLLBAR),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_LEFT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_LEFT_DETAILS), SetMinimalSize(228, 102), SetResize(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(228, 102), SetResize(1, 0), EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_PUSHBUTTON_DROPDOWN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_INFO_TAB), SetMinimalSize(167, 12), SetDataTip(0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB), SetResize(1, 0),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_STOP_REPLACE), SetMinimalSize(150, 12), SetDataTip(STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON),
@@ -566,9 +513,9 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
};
static const WindowDesc _replace_rail_vehicle_desc(
WDP_AUTO, 500, 140,
WDP_AUTO, 456, 140,
WC_REPLACE_VEHICLE, WC_NONE,
WDF_CONSTRUCTION,
WDF_UNCLICK_BUTTONS | WDF_CONSTRUCTION,
_nested_replace_rail_vehicle_widgets, lengthof(_nested_replace_rail_vehicle_widgets)
);
@@ -590,7 +537,7 @@ static const NWidgetPart _nested_replace_vehicle_widgets[] = {
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(228, 92), SetResize(1, 0), EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_PUSHBUTTON_DROPDOWN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_INFO_TAB), SetMinimalSize(167, 12), SetDataTip(0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB), SetResize(1, 0), EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_STOP_REPLACE), SetMinimalSize(138, 12), SetDataTip(STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
@@ -600,7 +547,7 @@ static const NWidgetPart _nested_replace_vehicle_widgets[] = {
static const WindowDesc _replace_vehicle_desc(
WDP_AUTO, 456, 118,
WC_REPLACE_VEHICLE, WC_NONE,
WDF_CONSTRUCTION,
WDF_UNCLICK_BUTTONS | WDF_CONSTRUCTION,
_nested_replace_vehicle_widgets, lengthof(_nested_replace_vehicle_widgets)
);

View File

@@ -1,44 +0,0 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file base_consist.cpp Properties for front vehicles/consists. */
#include "stdafx.h"
#include "base_consist.h"
#include "vehicle_base.h"
BaseConsist::~BaseConsist()
{
free(this->name);
}
/**
* Copy properties of other BaseConsist.
* @param src Source for copying
*/
void BaseConsist::CopyConsistPropertiesFrom(const BaseConsist *src)
{
if (this == src) return;
free(this->name);
this->name = src->name != NULL ? strdup(src->name) : NULL;
this->current_order_time = src->current_order_time;
this->lateness_counter = src->lateness_counter;
this->timetable_start = src->timetable_start;
this->service_interval = src->service_interval;
this->cur_real_order_index = src->cur_real_order_index;
this->cur_implicit_order_index = src->cur_implicit_order_index;
if (HasBit(src->vehicle_flags, VF_TIMETABLE_STARTED)) SetBit(this->vehicle_flags, VF_TIMETABLE_STARTED);
if (HasBit(src->vehicle_flags, VF_AUTOFILL_TIMETABLE)) SetBit(this->vehicle_flags, VF_AUTOFILL_TIMETABLE);
if (HasBit(src->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME)) SetBit(this->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME);
}

View File

@@ -1,40 +0,0 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file base_consist.h Properties for front vehicles/consists. */
#ifndef BASE_CONSIST_H
#define BASE_CONSIST_H
#include "order_type.h"
#include "date_type.h"
/** Various front vehicle properties that are preserved when autoreplacing, using order-backup or switching front engines within a consist. */
struct BaseConsist {
char *name; ///< Name of vehicle
/* Used for timetabling. */
uint32 current_order_time; ///< How many ticks have passed since this order started.
int32 lateness_counter; ///< How many ticks late (or early if negative) this vehicle is.
Date timetable_start; ///< When the vehicle is supposed to start the timetable.
Date service_interval; ///< The interval for (automatic) servicing; either in days or %.
VehicleOrderID cur_real_order_index;///< The index to the current real (non-implicit) order
VehicleOrderID cur_implicit_order_index;///< The index to the current implicit order
byte vehicle_flags; ///< Used for gradual loading and other miscellaneous things (@see VehicleFlags enum)
BaseConsist() : name(NULL) {}
virtual ~BaseConsist();
void CopyConsistPropertiesFrom(const BaseConsist *src);
};
#endif /* BASE_CONSIST_H */

View File

@@ -15,8 +15,6 @@
#include "fileio_func.h"
#include "core/smallmap_type.hpp"
#include "gfx_type.h"
#include "textfile_type.h"
#include "textfile_gui.h"
/* Forward declare these; can't do 'struct X' in functions as older GCCs barf on that */
struct IniFile;
@@ -35,7 +33,7 @@ struct MD5File {
uint8 hash[16]; ///< md5 sum of the file
const char *missing_warning; ///< warning when this file is missing
ChecksumResult CheckMD5(Subdirectory subdir, size_t max_size) const;
ChecksumResult CheckMD5(Subdirectory subdir) const;
};
/**
@@ -131,36 +129,6 @@ struct BaseSet {
/* Then fall back */
return this->description.Begin()->second;
}
/**
* Calculate and check the MD5 hash of the supplied file.
* @param file The file get the hash of.
* @param subdir The sub directory to get the files from.
* @return
* - #CR_MATCH if the MD5 hash matches
* - #CR_MISMATCH if the MD5 does not match
* - #CR_NO_FILE if the file misses
*/
static MD5File::ChecksumResult CheckMD5(const MD5File *file, Subdirectory subdir)
{
return file->CheckMD5(subdir, SIZE_MAX);
}
/**
* Search a textfile file next to this base media.
* @param type The type of the textfile to search for.
* @return The filename for the textfile, \c NULL otherwise.
*/
const char *GetTextfile(TextfileType type) const
{
for (uint i = 0; i < NUM_FILES; i++) {
const char *textfile = ::GetTextfile(type, BASESET_DIR, this->files[i].filename);
if (textfile != NULL) {
return textfile;
}
}
return NULL;
}
};
/**
@@ -201,8 +169,6 @@ public:
return num + fs.Scan(GetExtension(), BASESET_DIR, Tbase_set::SEARCH_IN_TARS);
}
static Tbase_set *GetAvailableSets();
static bool SetSet(const char *name);
static char *GetSetsList(char *p, const char *last);
static int GetNumSets();
@@ -219,15 +185,6 @@ public:
static bool HasSet(const ContentInfo *ci, bool md5sum);
};
/**
* Check whether there's a base set matching some information.
* @param ci The content info to compare it to.
* @param md5sum Should the MD5 checksum be tested as well?
* @param s The list with sets.
* @return The filename of the first file of the base set, or \c NULL if there is no match.
*/
template <class Tbase_set>
const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s);
/** Types of graphics in the base graphics set */
enum GraphicsFileType {
@@ -252,8 +209,6 @@ struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, true> {
BlitterType blitter; ///< Blitter of this graphics set
bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);
static MD5File::ChecksumResult CheckMD5(const MD5File *file, Subdirectory subdir);
};
/** All data/functions related with replacing the base graphics. */

View File

@@ -7,10 +7,7 @@
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @file base_media_func.h Generic function implementations for base data (graphics, sounds).
* @note You should _never_ include this file due to the SET_TYPE define.
*/
/** @file base_media_func.h Generic function implementations for base data (graphics, sounds). */
#include "base_media_base.h"
#include "debug.h"
@@ -134,7 +131,7 @@ bool BaseSet<T, Tnum_files, Tsearch_in_tars>::FillSetDetails(IniFile *ini, const
file->missing_warning = strdup(item->value);
}
switch (T::CheckMD5(file, BASESET_DIR)) {
switch (file->CheckMD5(BASESET_DIR)) {
case MD5File::CR_MATCH:
this->valid_files++;
/* FALL THROUGH */
@@ -277,13 +274,19 @@ template <class Tbase_set>
#if defined(ENABLE_NETWORK)
#include "network/network_content.h"
template <class Tbase_set> const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s)
/**
* Check whether there's a base set matching some information.
* @param ci The content info to compare it to.
* @param md5sum Should the MD5 checksum be tested as well?
* @param s The list with sets.
*/
template <class Tbase_set> bool HasBaseSet(const ContentInfo *ci, bool md5sum, const Tbase_set *s)
{
for (; s != NULL; s = s->next) {
if (s->GetNumMissing() != 0) continue;
if (s->shortname != ci->unique_id) continue;
if (!md5sum) return s->files[0].filename;
if (!md5sum) return true;
byte md5[16];
memset(md5, 0, sizeof(md5));
@@ -292,26 +295,21 @@ template <class Tbase_set> const char *TryGetBaseSetFile(const ContentInfo *ci,
md5[j] ^= s->files[i].hash[j];
}
}
if (memcmp(md5, ci->md5sum, sizeof(md5)) == 0) return s->files[0].filename;
if (memcmp(md5, ci->md5sum, sizeof(md5)) == 0) return true;
}
return NULL;
return false;
}
template <class Tbase_set>
/* static */ bool BaseMedia<Tbase_set>::HasSet(const ContentInfo *ci, bool md5sum)
{
return (TryGetBaseSetFile(ci, md5sum, BaseMedia<Tbase_set>::available_sets) != NULL) ||
(TryGetBaseSetFile(ci, md5sum, BaseMedia<Tbase_set>::duplicate_sets) != NULL);
return HasBaseSet(ci, md5sum, BaseMedia<Tbase_set>::available_sets) ||
HasBaseSet(ci, md5sum, BaseMedia<Tbase_set>::duplicate_sets);
}
#else
template <class Tbase_set>
const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s)
{
return NULL;
}
template <class Tbase_set>
/* static */ bool BaseMedia<Tbase_set>::HasSet(const ContentInfo *ci, bool md5sum)
{
@@ -376,16 +374,6 @@ template <class Tbase_set>
return BaseMedia<Tbase_set>::used_set;
}
/**
* Return the available sets.
* @return The available sets.
*/
template <class Tbase_set>
/* static */ Tbase_set *BaseMedia<Tbase_set>::GetAvailableSets()
{
return BaseMedia<Tbase_set>::available_sets;
}
/**
* Force instantiation of methods so we don't get linker errors.
* @param repl_type the type of the BaseMedia to instantiate
@@ -402,7 +390,5 @@ template <class Tbase_set>
template int repl_type::GetIndexOfUsedSet(); \
template const set_type *repl_type::GetSet(int index); \
template const set_type *repl_type::GetUsedSet(); \
template bool repl_type::DetermineBestSet(); \
template set_type *repl_type::GetAvailableSets(); \
template const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const set_type *s);
template bool repl_type::DetermineBestSet();

View File

@@ -31,13 +31,13 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
src_n = (const uint16 *)((const byte *)src_n + *(const uint32 *)src_n);
}
Colour *dst = (Colour *)bp->dst + bp->top * bp->pitch + bp->left;
uint32 *dst = (uint32 *)bp->dst + bp->top * bp->pitch + bp->left;
uint16 *anim = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left;
const byte *remap = bp->remap; // store so we don't have to access it via bp everytime
for (int y = 0; y < bp->height; y++) {
Colour *dst_ln = dst + bp->pitch;
uint32 *dst_ln = dst + bp->pitch;
uint16 *anim_ln = anim + this->anim_buf_width;
const Colour *src_px_ln = (const Colour *)((const byte *)src_px + *(const uint32 *)src_px);
@@ -46,7 +46,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
const uint16 *src_n_ln = (const uint16 *)((const byte *)src_n + *(const uint32 *)src_n);
src_n += 2;
Colour *dst_end = dst + bp->skip_left;
uint32 *dst_end = dst + bp->skip_left;
uint n;
@@ -219,7 +219,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height,
return;
}
Colour *udst = (Colour *)dst;
uint32 *udst = (uint32 *)dst;
uint16 *anim;
anim = this->anim_buf + ((uint32 *)dst - (uint32 *)_screen.dst_ptr);
@@ -256,7 +256,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height,
void Blitter_32bppAnim::SetPixel(void *video, int x, int y, uint8 colour)
{
*((Colour *)video + x + y * _screen.pitch) = LookupColourInPalette(colour);
*((uint32 *)video + x + y * _screen.pitch) = LookupColourInPalette(colour);
/* Set the colour in the anim-buffer too, if we are rendering to the screen */
if (_screen_disable_anim) return;
@@ -271,13 +271,13 @@ void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colou
return;
}
Colour colour32 = LookupColourInPalette(colour);
uint32 colour32 = LookupColourInPalette(colour);
uint16 *anim_line;
anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf;
do {
Colour *dst = (Colour *)video;
uint32 *dst = (uint32 *)video;
uint16 *anim = anim_line;
for (int i = width; i > 0; i--) {
@@ -296,13 +296,13 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width,
{
assert(!_screen_disable_anim);
assert(video >= _screen.dst_ptr && video <= (uint32 *)_screen.dst_ptr + _screen.width + _screen.height * _screen.pitch);
Colour *dst = (Colour *)video;
uint32 *dst = (uint32 *)video;
const uint32 *usrc = (const uint32 *)src;
uint16 *anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf;
for (; height > 0; height--) {
/* We need to keep those for palette animation. */
Colour *dst_pal = dst;
uint32 *dst_pal = dst;
uint16 *anim_pal = anim_line;
memcpy(dst, usrc, width * sizeof(uint32));
@@ -417,12 +417,13 @@ void Blitter_32bppAnim::PaletteAnimate(const Palette &palette)
this->palette = palette;
/* If first_dirty is 0, it is for 8bpp indication to send the new
* palette. However, only the animation colours might possibly change.
* Especially when going between toyland and non-toyland. */
assert(this->palette.first_dirty == PALETTE_ANIM_START || this->palette.first_dirty == 0);
* palette. As we dont do that for 32bpp, ignore that request
* completely */
if (this->palette.first_dirty == 0) return;
assert(this->palette.first_dirty == PALETTE_ANIM_START);
const uint16 *anim = this->anim_buf;
Colour *dst = (Colour *)_screen.dst_ptr;
uint32 *dst = (uint32 *)_screen.dst_ptr;
/* Let's walk the anim buffer and try to find the pixels */
for (int y = this->anim_buf_height; y != 0 ; y--) {

View File

@@ -47,9 +47,9 @@ public:
/**
* Look up the colour in the current palette.
*/
inline Colour LookupColourInPalette(uint index)
inline uint32 LookupColourInPalette(uint index)
{
return this->palette.palette[index];
return this->palette.palette[index].data;
}
template <BlitterMode mode> void Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom);

View File

@@ -19,15 +19,15 @@ void *Blitter_32bppBase::MoveTo(void *video, int x, int y)
void Blitter_32bppBase::SetPixel(void *video, int x, int y, uint8 colour)
{
*((Colour *)video + x + y * _screen.pitch) = LookupColourInPalette(colour);
*((uint32 *)video + x + y * _screen.pitch) = LookupColourInPalette(colour);
}
void Blitter_32bppBase::DrawRect(void *video, int width, int height, uint8 colour)
{
Colour colour32 = LookupColourInPalette(colour);
uint32 colour32 = LookupColourInPalette(colour);
do {
Colour *dst = (Colour *)video;
uint32 *dst = (uint32 *)video;
for (int i = width; i > 0; i--) {
*dst = colour32;
dst++;

View File

@@ -33,25 +33,33 @@ public:
/* virtual */ Blitter::PaletteAnimation UsePaletteAnimation();
/* virtual */ int GetBytesPerPixel() { return 4; }
/**
* Compose a colour based on RGB values.
*/
static inline uint32 ComposeColour(uint a, uint r, uint g, uint b)
{
return (((a) << 24) & 0xFF000000) | (((r) << 16) & 0x00FF0000) | (((g) << 8) & 0x0000FF00) | ((b) & 0x000000FF);
}
/**
* Look up the colour in the current palette.
*/
static inline Colour LookupColourInPalette(uint index)
static inline uint32 LookupColourInPalette(uint index)
{
return _cur_palette.palette[index];
return _cur_palette.palette[index].data;
}
/**
* Compose a colour based on RGBA values and the current pixel value.
*/
static inline Colour ComposeColourRGBANoCheck(uint r, uint g, uint b, uint a, Colour current)
static inline uint32 ComposeColourRGBANoCheck(uint r, uint g, uint b, uint a, uint32 current)
{
uint cr = current.r;
uint cg = current.g;
uint cb = current.b;
uint cr = GB(current, 16, 8);
uint cg = GB(current, 8, 8);
uint cb = GB(current, 0, 8);
/* The 256 is wrong, it should be 255, but 256 is much faster... */
return Colour(
return ComposeColour(0xFF,
((int)(r - cr) * a) / 256 + cr,
((int)(g - cg) * a) / 256 + cg,
((int)(b - cb) * a) / 256 + cb);
@@ -61,10 +69,10 @@ public:
* Compose a colour based on RGBA values and the current pixel value.
* Handles fully transparent and solid pixels in a special (faster) way.
*/
static inline Colour ComposeColourRGBA(uint r, uint g, uint b, uint a, Colour current)
static inline uint32 ComposeColourRGBA(uint r, uint g, uint b, uint a, uint32 current)
{
if (a == 0) return current;
if (a >= 255) return Colour(r, g, b);
if (a >= 255) return ComposeColour(0xFF, r, g, b);
return ComposeColourRGBANoCheck(r, g, b, a, current);
}
@@ -72,11 +80,11 @@ public:
/**
* Compose a colour based on Pixel value, alpha value, and the current pixel value.
*/
static inline Colour ComposeColourPANoCheck(Colour colour, uint a, Colour current)
static inline uint32 ComposeColourPANoCheck(uint32 colour, uint a, uint32 current)
{
uint r = colour.r;
uint g = colour.g;
uint b = colour.b;
uint r = GB(colour, 16, 8);
uint g = GB(colour, 8, 8);
uint b = GB(colour, 0, 8);
return ComposeColourRGBANoCheck(r, g, b, a, current);
}
@@ -85,13 +93,10 @@ public:
* Compose a colour based on Pixel value, alpha value, and the current pixel value.
* Handles fully transparent and solid pixels in a special (faster) way.
*/
static inline Colour ComposeColourPA(Colour colour, uint a, Colour current)
static inline uint32 ComposeColourPA(uint32 colour, uint a, uint32 current)
{
if (a == 0) return current;
if (a >= 255) {
colour.a = 255;
return colour;
}
if (a >= 255) return (colour | 0xFF000000);
return ComposeColourPANoCheck(colour, a, current);
}
@@ -103,13 +108,13 @@ public:
* @param denom denominator, makes colour darker.
* @return the new colour for the screen.
*/
static inline Colour MakeTransparent(Colour colour, uint nom, uint denom = 256)
static inline uint32 MakeTransparent(uint32 colour, uint nom, uint denom = 256)
{
uint r = colour.r;
uint g = colour.g;
uint b = colour.b;
uint r = GB(colour, 16, 8);
uint g = GB(colour, 8, 8);
uint b = GB(colour, 0, 8);
return Colour(r * nom / denom, g * nom / denom, b * nom / denom);
return ComposeColour(0xFF, r * nom / denom, g * nom / denom, b * nom / denom);
}
/**
@@ -117,46 +122,45 @@ public:
* @param colour the colour to make grey.
* @return the new colour, now grey.
*/
static inline Colour MakeGrey(Colour colour)
static inline uint32 MakeGrey(uint32 colour)
{
uint r = colour.r;
uint g = colour.g;
uint b = colour.b;
uint r = GB(colour, 16, 8);
uint g = GB(colour, 8, 8);
uint b = GB(colour, 0, 8);
/* To avoid doubles and stuff, multiple it with a total of 65536 (16bits), then
* divide by it to normalize the value to a byte again. See heightmap.cpp for
* information about the formula. */
uint grey = ((r * 19595) + (g * 38470) + (b * 7471)) / 65536;
colour = ((r * 19595) + (g * 38470) + (b * 7471)) / 65536;
return Colour(grey, grey, grey);
return ComposeColour(0xFF, colour, colour, colour);
}
static const int DEFAULT_BRIGHTNESS = 128;
static const int DEFAULT_BRIGHTNESS = 64;
static inline Colour AdjustBrightness(Colour colour, uint8 brightness)
static inline uint32 AdjustBrightness(uint32 colour, uint8 brightness)
{
/* Shortcut for normal brightness */
if (brightness == DEFAULT_BRIGHTNESS) return colour;
uint16 ob = 0;
uint16 r = colour.r * brightness / DEFAULT_BRIGHTNESS;
uint16 g = colour.g * brightness / DEFAULT_BRIGHTNESS;
uint16 b = colour.b * brightness / DEFAULT_BRIGHTNESS;
uint16 r = GB(colour, 16, 8) * brightness / DEFAULT_BRIGHTNESS;
uint16 g = GB(colour, 8, 8) * brightness / DEFAULT_BRIGHTNESS;
uint16 b = GB(colour, 0, 8) * brightness / DEFAULT_BRIGHTNESS;
/* Sum overbright */
if (r > 255) ob += r - 255;
if (g > 255) ob += g - 255;
if (b > 255) ob += b - 255;
if (ob == 0) return Colour(r, g, b, colour.a);
if (ob == 0) return ComposeColour(GB(colour, 24, 8), r, g, b);
/* Reduce overbright strength */
ob /= 2;
return Colour(
return ComposeColour(GB(colour, 24, 8),
r >= 255 ? 255 : min(r + ob * (255 - r) / 256, 255),
g >= 255 ? 255 : min(g + ob * (255 - g) / 256, 255),
b >= 255 ? 255 : min(b + ob * (255 - b) / 256, 255),
colour.a);
b >= 255 ? 255 : min(b + ob * (255 - b) / 256, 255));
}
};

View File

@@ -44,14 +44,14 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
}
/* skip lines in dst */
Colour *dst = (Colour *)bp->dst + bp->top * bp->pitch + bp->left;
uint32 *dst = (uint32 *)bp->dst + bp->top * bp->pitch + bp->left;
/* store so we don't have to access it via bp everytime (compiler assumes pointer aliasing) */
const byte *remap = bp->remap;
for (int y = 0; y < bp->height; y++) {
/* next dst line begins here */
Colour *dst_ln = dst + bp->pitch;
uint32 *dst_ln = dst + bp->pitch;
/* next src line begins here */
const Colour *src_px_ln = (const Colour *)((const byte *)src_px + *(const uint32 *)src_px);
@@ -62,7 +62,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
src_n += 2;
/* we will end this line when we reach this point */
Colour *dst_end = dst + bp->skip_left;
uint32 *dst_end = dst + bp->skip_left;
/* number of pixels with the same aplha channel class */
uint n;
@@ -207,6 +207,55 @@ void Blitter_32bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode,
}
}
/**
* Resizes the sprite in a very simple way, takes every n-th pixel and every n-th row
*
* @param sprite_src sprite to resize
* @param zoom resizing scale
* @return resized sprite
*/
static const SpriteLoader::Sprite *ResizeSprite(const SpriteLoader::Sprite *sprite_src, ZoomLevel zoom)
{
SpriteLoader::Sprite *sprite = MallocT<SpriteLoader::Sprite>(1);
if (zoom == ZOOM_LVL_NORMAL) {
memcpy(sprite, sprite_src, sizeof(*sprite));
uint size = sprite_src->height * sprite_src->width;
sprite->data = MallocT<SpriteLoader::CommonPixel>(size);
memcpy(sprite->data, sprite_src->data, size * sizeof(SpriteLoader::CommonPixel));
return sprite;
}
sprite->height = UnScaleByZoom(sprite_src->height, zoom);
sprite->width = UnScaleByZoom(sprite_src->width, zoom);
sprite->x_offs = UnScaleByZoom(sprite_src->x_offs, zoom);
sprite->y_offs = UnScaleByZoom(sprite_src->y_offs, zoom);
uint size = sprite->height * sprite->width;
SpriteLoader::CommonPixel *dst = sprite->data = CallocT<SpriteLoader::CommonPixel>(size);
const SpriteLoader::CommonPixel *src = (SpriteLoader::CommonPixel *)sprite_src->data;
const SpriteLoader::CommonPixel *src_end = src + sprite_src->height * sprite_src->width;
uint scaled_1 = ScaleByZoom(1, zoom);
for (uint y = 0; y < sprite->height; y++) {
if (src >= src_end) src = src_end - sprite_src->width;
const SpriteLoader::CommonPixel *src_ln = src + sprite_src->width * scaled_1;
for (uint x = 0; x < sprite->width; x++) {
if (src >= src_ln) src = src_ln - 1;
*dst = *src;
dst++;
src += scaled_1;
}
src = src_ln;
}
return sprite;
}
Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
/* streams of pixels (a, r, g, b channels)
@@ -215,7 +264,7 @@ Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPr
Colour *dst_px_orig[ZOOM_LVL_COUNT];
/* interleaved stream of 'm' channel and 'n' channel
* 'n' is number of following pixels with the same alpha channel class
* 'n' is number if following pixels with the same alpha channel class
* there are 3 classes: 0, 255, others
*
* it has to be stored in one stream so fewer registers are used -
@@ -238,7 +287,7 @@ Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPr
}
for (ZoomLevel z = zoom_min; z <= zoom_max; z++) {
const SpriteLoader::Sprite *src_orig = &sprite[z];
const SpriteLoader::Sprite *src_orig = ResizeSprite(sprite, z);
uint size = src_orig->height * src_orig->width;
@@ -286,10 +335,10 @@ Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPr
*dst_n |= rgb_max << 8;
/* Pre-convert the mapping channel to a RGB value */
Colour colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), rgb_max);
dst_px->r = colour.r;
dst_px->g = colour.g;
dst_px->b = colour.b;
uint32 colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), rgb_max);
dst_px->r = GB(colour, 16, 8);
dst_px->g = GB(colour, 8, 8);
dst_px->b = GB(colour, 0, 8);
} else {
dst_px->r = src->r;
dst_px->g = src->g;
@@ -322,6 +371,9 @@ Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPr
lengths[z][0] = (byte *)dst_px_ln - (byte *)dst_px_orig[z]; // all are aligned to 4B boundary
lengths[z][1] = (byte *)dst_n_ln - (byte *)dst_n_orig[z];
free(src_orig->data);
free(src_orig);
}
uint len = 0; // total length of data
@@ -337,7 +389,6 @@ Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPr
dest_sprite->y_offs = sprite->y_offs;
SpriteData *dst = (SpriteData *)dest_sprite->data;
memset(dst, 0, sizeof(*dst));
for (ZoomLevel z = zoom_min; z <= zoom_max; z++) {
dst->offset[z][0] = z == zoom_min ? 0 : lengths[z - 1][1] + dst->offset[z - 1][1];

View File

@@ -21,11 +21,11 @@ static FBlitter_32bppSimple iFBlitter_32bppSimple;
void Blitter_32bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
{
const Blitter_32bppSimple::Pixel *src, *src_line;
Colour *dst, *dst_line;
uint32 *dst, *dst_line;
/* Find where to start reading in the source sprite */
src_line = (const Blitter_32bppSimple::Pixel *)bp->sprite + (bp->skip_top * bp->sprite_width + bp->skip_left) * ScaleByZoom(1, zoom);
dst_line = (Colour *)bp->dst + bp->top * bp->pitch + bp->left;
dst_line = (uint32 *)bp->dst + bp->top * bp->pitch + bp->left;
for (int y = 0; y < bp->height; y++) {
dst = dst_line;
@@ -66,7 +66,7 @@ void Blitter_32bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoo
void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
{
Colour *udst = (Colour *)dst;
uint32 *udst = (uint32 *)dst;
if (pal == PALETTE_TO_TRANSPARENT) {
do {
@@ -122,10 +122,10 @@ Sprite *Blitter_32bppSimple::Encode(SpriteLoader::Sprite *sprite, AllocatorProc
dst[i].v = rgb_max;
/* Pre-convert the mapping channel to a RGB value */
Colour colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), dst[i].v);
dst[i].r = colour.r;
dst[i].g = colour.g;
dst[i].b = colour.b;
uint colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), dst[i].v);
dst[i].r = GB(colour, 16, 8);
dst[i].g = GB(colour, 8, 8);
dst[i].b = GB(colour, 0, 8);
dst[i].a = src->a;
dst[i].m = src->m;
}

View File

@@ -130,7 +130,7 @@ Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPro
}
for (ZoomLevel i = zoom_min; i <= zoom_max; i++) {
memory += sprite[i].width * sprite[i].height;
memory += UnScaleByZoom(sprite->height, i) * UnScaleByZoom(sprite->width, i);
}
/* We have no idea how much memory we really need, so just guess something */
@@ -141,7 +141,6 @@ Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPro
* and the memory usage is quite low. */
static ReusableBuffer<byte> temp_buffer;
SpriteData *temp_dst = (SpriteData *)temp_buffer.Allocate(memory);
memset(temp_dst, 0, sizeof(*temp_dst));
byte *dst = temp_dst->data;
/* Make the sprites per zoom-level */
@@ -151,8 +150,9 @@ Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPro
temp_dst->offset[i] = offset;
/* cache values, because compiler can't cache it */
int scaled_height = sprite[i].height;
int scaled_width = sprite[i].width;
int scaled_height = UnScaleByZoom(sprite->height, i);
int scaled_width = UnScaleByZoom(sprite->width, i);
int scaled_1 = ScaleByZoom(1, i);
for (int y = 0; y < scaled_height; y++) {
uint trans = 0;
@@ -161,10 +161,18 @@ Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorPro
byte *count_dst = NULL;
/* Store the scaled image */
const SpriteLoader::CommonPixel *src = &sprite[i].data[y * sprite[i].width];
const SpriteLoader::CommonPixel *src = &sprite->data[ScaleByZoom(y, i) * sprite->width];
const SpriteLoader::CommonPixel *src_end = &src[sprite->width];
for (int x = 0; x < scaled_width; x++) {
uint colour = src++->m;
uint colour = 0;
/* Get the colour keeping in mind the zoom-level */
for (int j = 0; j < scaled_1; j++) {
if (src->m != 0) colour = src->m;
/* Because of the scaling it might happen we read outside the buffer. Avoid that. */
if (++src == src_end) break;
}
if (last_colour == 0 || colour == 0 || pixels == 255) {
if (count_dst != NULL) {

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