From 4d0aa5a8cac0a6e4fe1ffc95272d1a0d97804d468070f2d13fdb8bb8a7afb7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 16 Jun 2016 20:37:32 +0000 Subject: [PATCH] Accepting request 402742 from home:michel_mno:branches:games - new gcc6_char_cast.patch proposal for upstream issue https://github.com/the3dfxdude/7kaa/issues/63 OBS-URL: https://build.opensuse.org/request/show/402742 OBS-URL: https://build.opensuse.org/package/show/games/7kaa?expand=0&rev=14 --- 7kaa.changes | 6 + 7kaa.spec | 4 +- gcc6_char_cast.patch | 646 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 655 insertions(+), 1 deletion(-) create mode 100644 gcc6_char_cast.patch diff --git a/7kaa.changes b/7kaa.changes index ae7a558..3e12a8f 100644 --- a/7kaa.changes +++ b/7kaa.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 16 14:03:33 UTC 2016 - normand@linux.vnet.ibm.com + +- new gcc6_char_cast.patch proposal for upstream issue + https://github.com/the3dfxdude/7kaa/issues/63 + ------------------------------------------------------------------- Tue Sep 29 15:06:37 UTC 2015 - opensuse@dstoecker.de diff --git a/7kaa.spec b/7kaa.spec index 12704e2..102bcde 100644 --- a/7kaa.spec +++ b/7kaa.spec @@ -1,7 +1,7 @@ # # spec file for package 7kaa # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,6 +30,7 @@ Source0: http://sourceforge.net/projects/skfans/files/7KAA%20%{version}/% Patch0: %{name}-2.14.5.patch # PATCH-FIX-UPSTREAM - patch buffer overflow due to wrong size assumptions Patch1: %{name}-2.14.5_overflow.patch +Patch2: gcc6_char_cast.patch Source1: %{name}.png Source2: %{name}.desktop %if 0%{?suse_version} @@ -64,6 +65,7 @@ the GPL v2. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build export CXXFLAGS="%{optflags} -fno-strict-aliasing" diff --git a/gcc6_char_cast.patch b/gcc6_char_cast.patch new file mode 100644 index 0000000..8203a66 --- /dev/null +++ b/gcc6_char_cast.patch @@ -0,0 +1,646 @@ +--- + src/client/OBULLET.cpp | 4 + src/client/OGAMMAIN.cpp | 2 + src/client/OUNITAAT.cpp | 12 - + src/client/OUNITATB.cpp | 512 ++++++++++++++++++++++++------------------------ + src/client/OU_MARI.cpp | 6 + 5 files changed, 268 insertions(+), 268 deletions(-) + +Index: 7kaa-2.14.5/src/client/OBULLET.cpp +=================================================================== +--- 7kaa-2.14.5.orig/src/client/OBULLET.cpp ++++ 7kaa-2.14.5/src/client/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: 7kaa-2.14.5/src/client/OGAMMAIN.cpp +=================================================================== +--- 7kaa-2.14.5.orig/src/client/OGAMMAIN.cpp ++++ 7kaa-2.14.5/src/client/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: 7kaa-2.14.5/src/client/OUNITAAT.cpp +=================================================================== +--- 7kaa-2.14.5.orig/src/client/OUNITAAT.cpp ++++ 7kaa-2.14.5/src/client/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: 7kaa-2.14.5/src/client/OUNITATB.cpp +=================================================================== +--- 7kaa-2.14.5.orig/src/client/OUNITATB.cpp ++++ 7kaa-2.14.5/src/client/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: 7kaa-2.14.5/src/client/OU_MARI.cpp +=================================================================== +--- 7kaa-2.14.5.orig/src/client/OU_MARI.cpp ++++ 7kaa-2.14.5/src/client/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;