diff --git a/.files b/.files
index 6001a57..b6bb1f0 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index 1ca94b7..c9a61dc 100644
--- a/.rev
+++ b/.rev
@@ -104,4 +104,12 @@ Mon Sep 29 21:54:09 UTC 2014 - nemysis@gmx.ch
889360
+
+ 2af182562fde865722d406ed16b660ab
+ 2.15.5
+
+ dimstar_suse
+
+ 974335
+
diff --git a/7kaa-2.15.4p1.tar.xz b/7kaa-2.15.4p1.tar.xz
deleted file mode 120000
index 08c22fe..0000000
--- a/7kaa-2.15.4p1.tar.xz
+++ /dev/null
@@ -1 +0,0 @@
-/ipfs/bafybeict4khfq5xag5bqbzauzmcwm76x2rqrwyrwlsqpdobgitj6cigo6e
\ No newline at end of file
diff --git a/7kaa-2.15.5.tar.xz b/7kaa-2.15.5.tar.xz
new file mode 120000
index 0000000..8d2393c
--- /dev/null
+++ b/7kaa-2.15.5.tar.xz
@@ -0,0 +1 @@
+/ipfs/bafybeiei6u6qxsyzabxxoxs3g4mjk3qo2g6lnp3cz3btihzbbaji2vc55y
\ No newline at end of file
diff --git a/7kaa-no-return-in-nonvoid-function.patch b/7kaa-no-return-in-nonvoid-function.patch
deleted file mode 100644
index 5a94269..0000000
--- a/7kaa-no-return-in-nonvoid-function.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur 7kaa-2.15.4p1/include/OFIRM.h new/include/OFIRM.h
---- 7kaa-2.15.4p1/include/OFIRM.h 2020-07-11 04:47:28.000000000 +0200
-+++ new/include/OFIRM.h 2020-07-13 17:12:35.540867933 +0200
-@@ -322,7 +322,7 @@
- void detect_info_both();
-
- virtual void put_info(int refreshFlag) {;}
-- virtual int detect_info() {;}
-+ virtual int detect_info() {return 0;}
- void sort_worker();
-
- void process_animation();
diff --git a/7kaa.changes b/7kaa.changes
index 5f4037b..bdd53b5 100644
--- a/7kaa.changes
+++ b/7kaa.changes
@@ -1,4 +1,40 @@
-------------------------------------------------------------------
+Sun May 1 10:18:31 UTC 2022 - Ferdinand Thiessen
+
+- Update to 2.15.5
+ * Added Esperanto translation
+ * Added a credits screen
+ * Added support for copying trade routes for trade ships
+ * Added a copy trade route button when hovering the mouse over
+ units in the trade report
+ * Added a request builder button when a building is selected
+ * Improved stability of starting a multiplayer game
+ * Improved AI's handling of combat mission at sea
+ * Improved formatting of the game manual
+ * Improved idle-attack detection when there are many units in the game
+ * Improved the AI's ability to send help to an ally
+ * Improved Fryhtan AI to help an Ordo under attack
+ * Reduced load of crc checking in multiplayer
+ * Reset powered attack type when line-of-sight is broken
+ * Do not cycle powered attack when the target moves,
+ correcting the usage behavior of Egyptian fire arrows
+ * More trade report improvements
+ * Set the default for mobilizing civilians to non-aggressive mode
+ to prevent inadvertently sending them to their death
+ * Corrected building linkage when buildings are densely placed
+ * Corrected AI related bugs
+ * Fixed wrongly applied leadership gain when the leader was not in range
+ * Fixed more crashes
+ * Fixed UI regression in setting auto taxing
+ * Fixed incorrect pathing when unit is in a building or on a ship
+ * Fixed crashes related to bullets
+ * Fixed spy vision of a spy on a ship
+ * Fixed spy vision of a spy assigned to building for construction or repair
+- Drop upstream resolved patches
+ * gcc6_char_cast.patch
+ * 7kaa-no-return-in-nonvoid-function.patch
+
+-------------------------------------------------------------------
Tue Apr 27 22:55:46 UTC 2021 - Ferdinand Thiessen
- Fixed music version requirement (align with music package)
diff --git a/7kaa.spec b/7kaa.spec
index 43bab3c..9c35b96 100644
--- a/7kaa.spec
+++ b/7kaa.spec
@@ -1,7 +1,7 @@
#
# spec file for package 7kaa
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define base_version 2.15
Name: 7kaa
-Version: %{base_version}.4p1
+Version: %{base_version}.5
Release: 0
Summary: Seven Kingdoms: Ancient Adversaries
License: GPL-2.0-only
@@ -27,10 +27,6 @@ URL: https://7kfans.com/
Source0: https://github.com/the3dfxdude/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz
Source1: %{name}.png
Source2: %{name}.desktop
-# PATCH-FIX-UPSTREAM - gcc6_char_cast.patch -- https://github.com/the3dfxdude/7kaa/issues/63
-Patch0: gcc6_char_cast.patch
-# PATCH-FIX-UPSTREAM - 7kaa-no-return-in-nonvoid-function.patch -- gh#the3dfxdude/7kaa#192
-Patch1: 7kaa-no-return-in-nonvoid-function.patch
BuildRequires: curl-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -60,8 +56,6 @@ the GPL v2.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
%build
export CXXFLAGS="%{optflags} -fno-strict-aliasing"
diff --git a/gcc6_char_cast.patch b/gcc6_char_cast.patch
deleted file mode 100644
index d522c10..0000000
--- a/gcc6_char_cast.patch
+++ /dev/null
@@ -1,646 +0,0 @@
----
- src/OBULLET.cpp | 4
- src/OGAMMAIN.cpp | 2
- src/OUNITAAT.cpp | 12 -
- src/OUNITATB.cpp | 512 ++++++++++++++++++++++++------------------------
- src/OU_MARI.cpp | 6
- 5 files changed, 268 insertions(+), 268 deletions(-)
-
-Index: a/src/OBULLET.cpp
-===================================================================
---- a/src/OBULLET.cpp
-+++ b/src/OBULLET.cpp
-@@ -38,9 +38,9 @@ const int SCAN_RANGE = SCAN_RADIUS * 2 +
-
- // from the closet to the far
- static char spiral_x[SCAN_RANGE*SCAN_RANGE] =
-- { 0, 0,-1, 0, 1,-1,-1, 1, 1, 0,-2, 0, 2, -1,-2,-2,-1, 1, 2, 2, 1,-2,-2, 2, 2};
-+ { 0, 0,(char)-1, 0, 1,(char)-1,(char)-1, 1, 1, 0,(char)-2, 0, 2, (char)-1,(char)-2,(char)-2,(char)-1, 1, 2, 2, 1,(char)-2,(char)-2, 2, 2};
- static char spiral_y[SCAN_RANGE*SCAN_RANGE] =
-- { 0,-1, 0, 1, 0,-1, 1, 1,-1,-2, 0, 2, 0, -2,-1, 1, 2, 2, 1,-1,-2,-2, 2, 2,-2};
-+ { 0,(char)-1, 0, 1, 0,(char)-1, 1, 1,(char)-1,(char)-2, 0, 2, 0, (char)-2,(char)-1, 1, 2, 2, 1,(char)-1,(char)-2,(char)-2, 2, 2,(char)-2};
-
- //--------- Begin of function Bullet::Bullet -------//
-
-Index: a/src/OGAMMAIN.cpp
-===================================================================
---- a/src/OGAMMAIN.cpp
-+++ b/src/OGAMMAIN.cpp
-@@ -671,7 +671,7 @@ void Game::multi_player_menu(int lobbied
-
- static char multi_player_option_flag[MULTI_PLAYER_OPTION_COUNT] =
- {
-- -1, 1, 1, -1, 1,
-+ (char)-1, 1, 1, (char)-1, 1,
- };
-
- game_mode = GAME_MULTI_PLAYER;
-Index: a/src/OUNITAAT.cpp
-===================================================================
---- a/src/OUNITAAT.cpp
-+++ b/src/OUNITAAT.cpp
-@@ -1513,8 +1513,8 @@ void UnitArray::arrange_units_in_group(i
- //
- int UnitArray::analyse_surround_location(int targetXLoc, int targetYLoc, int targetWidth, int targetHeight, char mobileType)
- {
-- static char xIncreTable[4] = { 1, 0, -1, 0};
-- static char yIncreTable[4] = { 0, 1, 0, -1};
-+ static char xIncreTable[4] = { 1, 0, (char)-1, 0};
-+ static char yIncreTable[4] = { 0, 1, 0, (char)-1};
-
- err_when(targetWidth<1 || targetWidth>4);
- Location *locPtr;
-@@ -1581,10 +1581,10 @@ void UnitArray::check_nearby_location(in
- #endif
- debug_result_check(analyseResult, targetWidth, targetHeight);
-
-- static char leftXIncreTable[4] = { 1, 0, -1, 0};
-- static char leftYIncreTable[4] = { 0, 1, 0, -1};
-- static char rightXIncreTable[4] = { -1, 0, 1, 0};
-- static char rightYIncreTable[4] = { 0, 1, 0, -1};
-+ static char leftXIncreTable[4] = { 1, 0, (char)-1, 0};
-+ static char leftYIncreTable[4] = { 0, 1, 0, (char)-1};
-+ static char rightXIncreTable[4] = { (char)-1, 0, 1, 0};
-+ static char rightYIncreTable[4] = { 0, 1, 0, (char)-1};
-
- err_when(targetWidth<1 || targetWidth>4);
- Location *locPtr;
-Index: a/src/OUNITATB.cpp
-===================================================================
---- a/src/OUNITATB.cpp
-+++ b/src/OUNITATB.cpp
-@@ -45,294 +45,294 @@
- //------------------------------------------------------------------------------//
-
- static char attack_x_offset11[ATTACK_DIR][8] // target size 1x1
--= { { -1, -1, -1, 0, 0, 1, 1, 1},
-- { -1, 0, -1, 1, -1, 1, 0, 1},
-- { 0, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 0, 0, -1, -1, -1},
-- { 1, 0, 1, -1, 1, -1, 0, -1},
-- { 0, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, 0, 1, 1}};
-+= { { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1},
-+ { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, 0, 1, 1}};
- static char attack_x_offset12[ATTACK_DIR][10] // target size 1x2
--= { { -1, -1, -1, -1, 0, 0, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1},
-- { 0, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1, 1},
-+ { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_x_offset13[ATTACK_DIR][12] // target size 1x3
--= { { -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, 0, 1, 1},
-- { 0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, 0, 1, 1}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1},
-+ { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_x_offset14[ATTACK_DIR][14] // target size 1x4
--= { { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, -1, 1, 0, 1, 1},
-- { 0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, -1, 1, 0, 1, 1}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1},
-+ { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_x_offset21[ATTACK_DIR][10] // target size 2x1
--= { { -1, -1, -1, 0, 0, 1, 1, 2, 2, 2},
-- { -1, 0, -1, 1, -1, 2, 0, 2, 1, 2},
-- { 0, 1, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 1, 2, 0, 2, -1, 1, -1, 0, -1},
-- { 2, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 2, 1, 2, 0, 2, -1, 1, -1, 0, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, 0, -1, 1, -1, 2, 0, 2, 1, 2}};
-+= { { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2}};
- static char attack_x_offset22[ATTACK_DIR][12] // target size 2x2
--= { { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 2, -1, 2, -1, 2, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 2, 0, 2, 1, 2, 2}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2, 2}};
- static char attack_x_offset23[ATTACK_DIR][14] // target size 2x3
--= { { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2, 2},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2, 2},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2, 2}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2, 2},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2}};
- static char attack_x_offset24[ATTACK_DIR][16] // target size 2x4
--= { { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, -1, 2, 0, 2, 1, 2, 2},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, -1, 2, 0, 2, 1, 2, 2}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2}};
- static char attack_x_offset31[ATTACK_DIR][12] // target size 3x1
--= { { -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 3, 2, 3},
-- { 1, 2, 0, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 2, 3, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 3, 2, 3}};
-+= { { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 3, 2, 3},
-+ { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 2, 3, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 3, 2, 3}};
- static char attack_x_offset32[ATTACK_DIR][14] // target size 3x2
--= { { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3},
-- { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3},
-+ { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3}};
- static char attack_x_offset33[ATTACK_DIR][16] // target size 3x3
--= { { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3},
-- { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3, 3}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3},
-+ { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3}};
- static char attack_x_offset34[ATTACK_DIR][18] // target size 3x4
--= { { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3},
-- { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3},
-+ { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3}};
- static char attack_x_offset41[ATTACK_DIR][14] // target size 4x1
--= { { -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 4, 2, 4, 3, 4},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 4, 2, 4, 3, 4}};
-+= { { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 4, 2, 4, 3, 4},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 4, 2, 4, 3, 4}};
- static char attack_x_offset42[ATTACK_DIR][16] // target size 4x2
--= { { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 4, 1, 4, 2, 4, 3, 4},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 4, 1, 4, 2, 4, 3, 4}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 4, 1, 4, 2, 4, 3, 4},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 4, 1, 4, 2, 4, 3, 4}};
- static char attack_x_offset43[ATTACK_DIR][18] // target size 4x3
--= { { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
- static char attack_x_offset44[ATTACK_DIR][20] // target size 4x4
--= { { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 2, 1, 3, 0, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4}};
-+= { { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 2, 1, 3, 0, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4}};
-
- static char attack_y_offset11[ATTACK_DIR][8] // target size 1x1
--= { { 0, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 0, 0, -1, -1, -1},
-- { 1, 0, 1, -1, 1, -1, 0, -1},
-- { 0, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, 0, 1, 1},
-- { -1, -1, -1, 0, 0, 1, 1, 1},
-- { -1, 0, -1, 1, -1, 1, 0, 1}};
-+= { { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, 0, 1, 1},
-+ { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1}};
- static char attack_y_offset12[ATTACK_DIR][10] // target size 1x2
--= { { 0, 1, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 1, 2, 0, 2, -1, 1, -1, 0, -1},
-- { 2, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 2, 1, 2, 0, 2, -1, 1, -1, 0, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, 0, -1, 1, -1, 2, 0, 2, 1, 2},
-- { -1, -1, -1, 0, 0, 1, 1, 2, 2, 2},
-- { -1, 0, -1, 1, -1, 2, 0, 2, 1, 2}};
-+= { { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2},
-+ { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2}};
- static char attack_y_offset13[ATTACK_DIR][12] // target size 1x3
--= { { 1, 2, 0, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 2, 3, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 3, 2, 3},
-- { -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 3, 2, 3}};
-+= { { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 2, 3, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 3, 2, 3},
-+ { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 3, 2, 3}};
- static char attack_y_offset14[ATTACK_DIR][14] // target size 1x4
--= { { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 3, 0, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 4, 2, 4, 3, 4},
-- { -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, 0, 3, 1, 4, 2, 4, 3, 4}};
-+= { { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 3, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 4, 2, 4, 3, 4},
-+ { (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 3, 1, 4, 2, 4, 3, 4}};
- static char attack_y_offset21[ATTACK_DIR][10] // target size 2x1
--= { { 0, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1},
-- { -1, -1, -1, -1, 0, 0, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1}};
-+= { { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1, 1},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_y_offset22[ATTACK_DIR][12] // target size 2x2
--= { { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 2, -1, 2, -1, 2, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 2, 0, 2, 1, 2, 2},
-- { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2}};
-+= { { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, 0, 2, 1, 2, 2},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2}};
- static char attack_y_offset23[ATTACK_DIR][14] // target size 2x3
--= { { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3},
-- { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3}};
-+= { { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3}};
- static char attack_y_offset24[ATTACK_DIR][16] // target size 2x4
--= { { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 4, 1, 4, 2, 4, 3, 4},
-- { -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, 0, 4, 1, 4, 2, 4, 3, 4}};
-+= { { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 4, 1, 4, 2, 4, 3, 4},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 4, 1, 4, 2, 4, 3, 4}};
- static char attack_y_offset31[ATTACK_DIR][12] // target size 3x1
--= { { 0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, 0, 1, 1},
-- { -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, 0, 1, 1}};
-+= { { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_y_offset32[ATTACK_DIR][14] // target size 3x2
--= { { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2, 2},
-- { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2, 2},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, 0, 2, 1, 2, 2}};
-+= { { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2, 2},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2}};
- static char attack_y_offset33[ATTACK_DIR][16] // target size 3x3
--= { { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, 0, 3, 1, 3, 2, 3, 3},
-- { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3}};
-+= { { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3}};
- static char attack_y_offset34[ATTACK_DIR][18] // target size 3x4
--= { { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-- { -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
-+= { { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
- static char attack_y_offset41[ATTACK_DIR][14] // target size 4x1
--= { { 0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 1, 1, 1, 1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 1, 1, 0, 1, -1, 1, -1, 1, -1, 1, -1, 0, -1, -1},
-- { 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, -1, 1, 0, 1, -1},
-- { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 1, 1, 1, 1},
-- { -1, -1, 0, -1, 1, -1, 1, -1, 1, -1, 1, 0, 1, 1}};
-+= { { 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 1, 1, 1, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 1, 1, 0, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, (char)-1},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 1, 1, 1, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 1, (char)-1, 1, (char)-1, 1, 0, 1, 1}};
- static char attack_y_offset42[ATTACK_DIR][16] // target size 4x2
--= { { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 2, 2, 1, 2, 0, 2, -1, 2, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 0, 1, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, -1, 2, 0, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, -1, 2, 0, 2, 1, 2, 2},
-- { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 2, -1, 2, 0, 2, 1, 2, 2}};
-+= { { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 2, 2, 1, 2, 0, 2, (char)-1, 2, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 0, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 2, (char)-1, 2, 0, 2, 1, 2, 2}};
- static char attack_y_offset43[ATTACK_DIR][18] // target size 4x3
--= { { 1, 2, 0, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 2, 0, 1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 3, 3, 2, 3, 1, 3, 0, 3, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 1, 0, 2, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3},
-- { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 3, 0, 3, 1, 3, 2, 3, 3}};
-+= { { 1, 2, 0, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 2, 0, 1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 3, 3, 2, 3, 1, 3, 0, 3, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 1, 0, 2, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 3, 0, 3, 1, 3, 2, 3, 3}};
- static char attack_y_offset44[ATTACK_DIR][20] // target size 4x4
--= { { 1, 2, 0, 3, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, 0, 3, 1, 2},
-- { 4, 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1, -1},
-- { 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1},
-- { 4, 3, 4, 2, 4, 1, 4, 0, 4, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1},
-- { 2, 1, 3, 0, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 4, -1, 3, 0, 2, 1},
-- { -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4},
-- { -1, -1, -1, -1, -1, -1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4},
-- { -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
-+= { { 1, 2, 0, 3, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, 0, 3, 1, 2},
-+ { 4, 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1, (char)-1},
-+ { 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1},
-+ { 4, 3, 4, 2, 4, 1, 4, 0, 4, (char)-1, 4, (char)-1, 3, (char)-1, 2, (char)-1, 1, (char)-1, 0, (char)-1},
-+ { 2, 1, 3, 0, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 4, (char)-1, 3, 0, 2, 1},
-+ { (char)-1, (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4},
-+ { (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4},
-+ { (char)-1, 0, (char)-1, 1, (char)-1, 2, (char)-1, 3, (char)-1, 4, (char)-1, 4, 0, 4, 1, 4, 2, 4, 3, 4}};
-
- //--------- Begin of function UnitArray::get_target_x_offset ---------//
- // return x offset
-Index: a/src/OU_MARI.cpp
-===================================================================
---- a/src/OU_MARI.cpp
-+++ b/src/OU_MARI.cpp
-@@ -552,7 +552,7 @@ int UnitMarine::is_on_coast()
- //--------- Begin of function UnitMarine::extra_move ---------//
- void UnitMarine::extra_move()
- {
-- static char offset[3] = {0, 1, -1};
-+ static char offset[3] = {0, 1, (char)-1};
-
- int curXLoc = next_x_loc();
- int curYLoc = next_y_loc();
-@@ -619,8 +619,8 @@ void UnitMarine::extra_move()
-
- void UnitMarine::process_extra_move()
- {
-- static short vector_x_array[] = { 0, 1, 1, 1, 0, -1, -1, -1}; // default vectors, temporary only
-- static short vector_y_array[] = {-1, -1, 0, 1, 1, 1, 0, -1};
-+ static short vector_x_array[] = { 0, 1, 1, 1, 0, (char)-1, (char)-1, (char)-1}; // default vectors, temporary only
-+ static short vector_y_array[] = {(char)-1, (char)-1, 0, 1, 1, 1, 0, (char)-1};
-
- if(!match_dir()) // process turning
- return;