Untitled diff

Created Diff never expires
269 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
620 lines
332 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
683 lines
#if defined gangzones_included
#if defined gangzones_included
#endinput
#endinput
#endif
#endif
#define gangzones_included
#define gangzones_included


/**************************************/
/**************************************/
// gangzones.inc - v2.2 - Last Updated: 28 April, 2018 - By Gammix & beijind
// gangzones.inc - v2.2 - Last Updated: 28 April, 2018 - By Gammix & beijind
/***************************************/
/***************************************/


#if !defined GANGZONE_DEFAULT_BORDER_SIZE
#if !defined GANGZONE_DEFAULT_BORDER_SIZE
#define GANGZONE_DEFAULT_BORDER_SIZE 2.0
#define GANGZONE_DEFAULT_BORDER_SIZE 2.0
#endif
#endif


#if !defined GANGZONE_DEFAULT_NUMBER_SIZE
#if !defined GANGZONE_DEFAULT_NUMBER_SIZE
#define GANGZONE_DEFAULT_NUMBER_SIZE 1.0
#define GANGZONE_DEFAULT_NUMBER_SIZE 1.0
#endif
#endif


#if !defined GANGZONE_DEFAULT_BORDER_COLOR
#if !defined GANGZONE_DEFAULT_BORDER_COLOR
#define GANGZONE_DEFAULT_BORDER_COLOR 0xAA
#define GANGZONE_DEFAULT_BORDER_COLOR 0xAA
#endif
#endif


#if !defined GANGZONE_DEFAULT_NUMBER_COLOR
#if !defined GANGZONE_DEFAULT_NUMBER_COLOR
#define GANGZONE_DEFAULT_NUMBER_COLOR 0xAA
#define GANGZONE_DEFAULT_NUMBER_COLOR 0xAA
#endif
#endif


static GangZone@MainZone[MAX_GANG_ZONES] = {-1, ...};
#define MAX_GANGZONE_BORDER_SLOTS 4
static GangZone@Border[MAX_GANG_ZONES][4];
#define MAX_GANGZONE_NUMBER_SLOTS 5
static GangZone@Number1[MAX_GANG_ZONES][5];

static GangZone@Number2[MAX_GANG_ZONES][5];
static GangZone@MainZone[MAX_GANG_ZONES] = {INVALID_GANG_ZONE, ...};
static GangZone@Border[MAX_GANG_ZONES][MAX_GANGZONE_BORDER_SLOTS];
static GangZone@Number1[MAX_GANG_ZONES][MAX_GANGZONE_NUMBER_SLOTS];
static GangZone@Number2[MAX_GANG_ZONES][MAX_GANGZONE_NUMBER_SLOTS];

public OnGameModeInit()
{
new i, j;
for(i = 0; i < MAX_GANG_ZONES; ++i) {
for(j = 0; j < MAX_GANGZONE_NUMBER_SLOTS; ++j) {
if(j < MAX_GANGZONE_BORDER_SLOTS) {
GangZone@Border[i][j] = INVALID_GANG_ZONE;
}
GangZone@Number1[i][j] = INVALID_GANG_ZONE;
GangZone@Number2[i][j] = INVALID_GANG_ZONE;
}
}
return CallLocalFunction("GangZone_OnGameModeInit", "");
}
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#define OnGameModeInit GangZone_OnGameModeInit

forward OnGameModeInit();


static GangZone_CreateBorder(dest[], Float:minx, Float:miny, Float:maxx, Float:maxy, Float:bordersize) {
static GangZone_CreateBorder(dest[], Float:minx, Float:miny, Float:maxx, Float:maxy, Float:bordersize) {
dest[0] = GangZoneCreate(minx - bordersize, miny + bordersize, minx + bordersize, maxy - bordersize);
dest[0] = GangZoneCreate(minx - bordersize, miny + bordersize, minx + bordersize, maxy - bordersize);
dest[1] = GangZoneCreate(minx - bordersize, maxy - bordersize, maxx + bordersize, maxy + bordersize);
dest[1] = GangZoneCreate(minx - bordersize, maxy - bordersize, maxx + bordersize, maxy + bordersize);
dest[2] = GangZoneCreate(maxx - bordersize, miny + bordersize, maxx + bordersize, maxy - bordersize);
dest[2] = GangZoneCreate(maxx - bordersize, miny + bordersize, maxx + bordersize, maxy - bordersize);
dest[3] = GangZoneCreate(minx - bordersize, miny - bordersize, maxx + bordersize, miny + bordersize);
dest[3] = GangZoneCreate(minx - bordersize, miny - bordersize, maxx + bordersize, miny + bordersize);


for (new i = 0; i < 4; i++) {
for (new i = 0; i < MAX_GANGZONE_BORDER_SLOTS; i++) {
if (dest[i] == -1) {
if (dest[i] == INVALID_GANG_ZONE) { // If one border failed to create (random out of slots), then destroy all!


for (i = 0; i < 4; i++) {
for (i = 0; i < MAX_GANGZONE_BORDER_SLOTS; i++) {
GangZoneDestroy(dest[i]);
GangZoneDestroy(dest[i]);
dest[i] = -1;
dest[i] = INVALID_GANG_ZONE;
}
}
return 0;
return 0;
}
}
}
}


return 4;
return 4;
}
}


static GangZone_CreateNumber(dest[], number, Float:centpos_x, Float:centpos_y, Float:numbersize) {
static GangZone_CreateNumber(dest[], number, Float:centpos_x, Float:centpos_y, Float:numbersize) {
if (number < '0' || number > '9') {
if (number < '0' || number > '9') {
return 0;
return 0;
}
}


static const Float:LETTER_STROKE = 3.5;
static const Float:LETTER_STROKE = 3.5;
static const Float:LETTER_XSQUASH = 0.7;
static const Float:LETTER_XSQUASH = 0.7;


new ret = 0;
new ret = 0;

switch (number) {
switch (number) {
case '0': {
case '0': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_x = (20.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (20.0 * numbersize * LETTER_XSQUASH);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);


dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Down of 0
dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Down of 0
dest[1] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Up of 0
dest[1] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Up of 0
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y + stroke), (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left of 0
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y + stroke), (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left of 0
dest[3] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Right of 0
dest[3] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Right of 0


ret = 4;
ret = 4;
}
}


case '1': {
case '1': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);


dest[0] = GangZoneCreate((centpos_x - stroke), (centpos_y - distance_y - stroke),(centpos_x + stroke), (centpos_y + distance_y + stroke));
dest[0] = GangZoneCreate((centpos_x - stroke), (centpos_y - distance_y - stroke),(centpos_x + stroke), (centpos_y + distance_y + stroke));


ret = 1;
ret = 1;
}
}


case '2': {
case '2': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[1] = GangZoneCreate((centpos_x + distance_x - (2 * stroke)),(centpos_y + stroke), (centpos_x + distance_x), (centpos_y + distance_y - stroke)); // Right Stick
dest[1] = GangZoneCreate((centpos_x + distance_x - (2 * stroke)),(centpos_y + stroke), (centpos_x + distance_x), (centpos_y + distance_y - stroke)); // Right Stick
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y + stroke), (centpos_x - distance_x + (2 * stroke)),(centpos_y - stroke)); // Left Stick
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y + stroke), (centpos_x - distance_x + (2 * stroke)),(centpos_y - stroke)); // Left Stick
dest[4] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down
dest[4] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down


ret = 5;
ret = 5;
}
}


case '3': {
case '3': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[1] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x + (2 * stroke)),(centpos_y + distance_y + stroke)); // Stick
dest[1] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x + (2 * stroke)),(centpos_y + distance_y + stroke)); // Stick
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down


ret = 4;
ret = 4;
}
}


case '4': {
case '4': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y), (centpos_x - distance_x + (2 * stroke)), (centpos_y + stroke)); // Left
dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y), (centpos_x - distance_x + (2 * stroke)), (centpos_y + stroke)); // Left
dest[1] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke));// Middle
dest[1] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke));// Middle
dest[2] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y), (centpos_x + distance_x + (2 * stroke)), (centpos_y + distance_y)); // Stick
dest[2] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y), (centpos_x + distance_x + (2 * stroke)), (centpos_y + distance_y)); // Stick


ret = 3;
ret = 3;
}
}


case '5': {
case '5': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y + stroke)); // Up
dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y + stroke)); // Up
dest[1] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + stroke), (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left Stick
dest[1] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + stroke), (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left Stick
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + stroke)); // Middle
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + stroke)); // Middle
dest[3] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Right Stick
dest[3] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Right Stick
dest[4] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Down
dest[4] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y + stroke)); // Down


ret = 5;
ret = 5;
}
}


case '6': {
case '6': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[0] = GangZoneCreate((centpos_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[1] = GangZoneCreate((centpos_x - distance_x - (2 * stroke)), (centpos_y + distance_y + stroke), (centpos_x - distance_x), (centpos_y - distance_y - stroke)); // Main Left Stick
dest[1] = GangZoneCreate((centpos_x - distance_x - (2 * stroke)), (centpos_y + distance_y + stroke), (centpos_x - distance_x), (centpos_y - distance_y - stroke)); // Main Left Stick
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[2] = GangZoneCreate((centpos_x - distance_x), (centpos_y - stroke), (centpos_x + distance_x), (centpos_y + stroke)); // Middle
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down
dest[3] = GangZoneCreate((centpos_x - distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down
dest[4] = GangZoneCreate((centpos_x + distance_x - (2 * stroke)), (centpos_y - distance_y + stroke), (centpos_x + distance_x), (centpos_y - stroke)); // Right small stick
dest[4] = GangZoneCreate((centpos_x + distance_x - (2 * stroke)), (centpos_y - distance_y + stroke), (centpos_x + distance_x), (centpos_y - stroke)); // Right small stick


ret = 5;
ret = 5;
}
}


case '7': {
case '7': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (15.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (15.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Stick of 7
dest[0] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y - stroke)); // Stick of 7
dest[1] = GangZoneCreate((centpos_x - distance_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y + stroke)); // Up of 7
dest[1] = GangZoneCreate((centpos_x - distance_x - distance_x), (centpos_y + distance_y - stroke), (centpos_x + distance_x + stroke), (centpos_y + distance_y + stroke)); // Up of 7


ret = 2;
ret = 2;
}
}


case '8': {
case '8': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x - distance_x + stroke), (centpos_y - distance_y - stroke)); // Left stick
dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x - distance_x + stroke), (centpos_y - distance_y - stroke)); // Left stick
dest[1] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y - stroke)); // Right stick
dest[1] = GangZoneCreate((centpos_x + distance_x - stroke), (centpos_y + distance_y + stroke), (centpos_x + distance_x + stroke), (centpos_y - distance_y - stroke)); // Right stick
dest[2] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x - stroke), (centpos_y + distance_y + stroke)); // Up
dest[2] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x - stroke), (centpos_y + distance_y + stroke)); // Up
dest[3] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y - stroke), (centpos_x + distance_x - stroke), (centpos_y + stroke)); // Center
dest[3] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y - stroke), (centpos_x + distance_x - stroke), (centpos_y + stroke)); // Center
dest[4] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x - stroke), (centpos_y - distance_y + stroke)); // Down
dest[4] = GangZoneCreate((centpos_x - distance_x + stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x - stroke), (centpos_y - distance_y + stroke)); // Down


ret = 5;
ret = 5;
}
}


case '9': {
case '9': {
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:stroke = (LETTER_STROKE * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_y = (20.0 * numbersize);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);
new Float:distance_x = (25.0 * numbersize * LETTER_XSQUASH);


dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), centpos_y, (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left Stick
dest[0] = GangZoneCreate((centpos_x - distance_x - stroke), centpos_y, (centpos_x - distance_x + stroke), (centpos_y + distance_y - stroke)); // Left Stick
dest[1] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x + (2 * stroke)), (centpos_y + distance_y + stroke)); // Right Stick
dest[1] = GangZoneCreate((centpos_x + distance_x), (centpos_y - distance_y - stroke), (centpos_x + distance_x + (2 * stroke)), (centpos_y + distance_y + stroke)); // Right Stick
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[2] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y + distance_y - stroke), (centpos_x + distance_x), (centpos_y + distance_y + stroke)); // Up
dest[3] = GangZoneCreate((centpos_x - distance_x + stroke), centpos_y, (centpos_x + distance_x), (centpos_y + stroke + stroke)); // Middle
dest[3] = GangZoneCreate((centpos_x - distance_x + stroke), centpos_y, (centpos_x + distance_x), (centpos_y + stroke + stroke)); // Middle
dest[4] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down
dest[4] = GangZoneCreate((centpos_x - distance_x - stroke), (centpos_y - distance_y - stroke), (centpos_x + distance_x), (centpos_y - distance_y + stroke)); // Down


ret = 5;
ret = 5;
}
}
}
}


for (new i = 0; i < ret; i++) {
for (new i = 0; i < ret; i++) {
if (dest[i] == -1) {
if (dest[i] == INVALID_GANG_ZONE) {
for (i = 0; i < ret; i++) {
for (i = 0; i < ret; i++) {
GangZoneDestroy(dest[i]);
GangZoneDestroy(dest[i]);
dest[i] = -1;
dest[i] = INVALID_GANG_ZONE;
}
}
return 0;
return 0;
}
}
}
}


return ret;
return ret;
}
}


stock GangZone_Create(Float:minx, Float:miny, Float:maxx, Float:maxy, number = -1, Float:bordersize = GANGZONE_DEFAULT_BORDER_SIZE, Float:numbersize = GANGZONE_DEFAULT_NUMBER_SIZE) {
stock GangZone_Create(Float:minx, Float:miny, Float:maxx, Float:maxy, number = -1, Float:bordersize = GANGZONE_DEFAULT_BORDER_SIZE, Float:numbersize = GANGZONE_DEFAULT_NUMBER_SIZE) {
new index = -1;
new index = INVALID_GANG_ZONE;


for (new i = 0; i < MAX_GANG_ZONES; i++) {
for (new i = 0; i < MAX_GANG_ZONES; i++) {
if (GangZone@MainZone[i] == -1) {
if (GangZone@MainZone[i] == INVALID_GANG_ZONE) {
index = i;
index = i;
break;
break;
}
}
}
}


if (index == -1) {
if (index == INVALID_GANG_ZONE) {
return -1;
return INVALID_GANG_ZONE;
}
}


GangZone@MainZone[index] = GangZoneCreate(minx, miny, maxx, maxy);
GangZone@MainZone[index] = GangZoneCreate(minx, miny, maxx, maxy);
if (GangZone@MainZone[index] == -1) {
if (GangZone@MainZone[index] == INVALID_GANG_ZONE) {
return -1;
return INVALID_GANG_ZONE;
}
}


GangZone@Border[index][0] = -1;
GangZone@Border[index][0] = INVALID_GANG_ZONE;
GangZone@Border[index][1] = -1;
GangZone@Border[index][1] = INVALID_GANG_ZONE;
GangZone@Border[index][2] = -1;
GangZone@Border[index][2] = INVALID_GANG_ZONE;
GangZone@Border[index][3] = -1;
GangZone@Border[index][3] = INVALID_GANG_ZONE;


GangZone@Number1[index][0] = -1;
GangZone@Number1[index][0] = INVALID_GANG_ZONE;
GangZone@Number1[index][1] = -1;
GangZone@Number1[index][1] = INVALID_GANG_ZONE;
GangZone@Number1[index][2] = -1;
GangZone@Number1[index][2] = INVALID_GANG_ZONE;
GangZone@Number1[index][3] = -1;
GangZone@Number1[index][3] = INVALID_GANG_ZONE;
GangZone@Number1[index][4] = -1;
GangZone@Number1[index][4] = INVALID_GANG_ZONE;


GangZone@Number2[index][0] = -1;
GangZone@Number2[index][0] = INVALID_GANG_ZONE;
GangZone@Number2[index][1] = -1;
GangZone@Number2[index][1] = INVALID_GANG_ZONE;
GangZone@Number2[index][2] = -1;
GangZone@Number2[index][2] = INVALID_GANG_ZONE;
GangZone@Number2[index][3] = -1;
GangZone@Number2[index][3] = INVALID_GANG_ZONE;
GangZone@Number2[index][4] = -1;
GangZone@Number2[index][4] = INVALID_GANG_ZONE;


if (bordersize != 0.0) {
if (bordersize != 0.0) {
if (GangZone_CreateBorder(GangZone@Border[index], minx, miny, maxx, maxy, bordersize) == 0) {
if (GangZone_CreateBorder(GangZone@Border[index], minx, miny, maxx, maxy, bordersize) == 0) {
GangZoneDestroy(GangZone@MainZone[index]);
GangZoneDestroy(GangZone@MainZone[index]);
GangZone@MainZone[index] = -1;
GangZone@MainZone[index] = INVALID_GANG_ZONE;
return -1;
return INVALID_GANG_ZONE;
}
}
}
}


if (numbersize != 0.0) {
if (numbersize != 0.0) {
if (number == -1) {
if (number == -1) {
number = (index % 100);
number = (index % 100);
}
}


if (number >= 0 && number <= 9) {
if (number >= 0 && number <= 9) {
new Float:centpos_x = ((minx + maxx) / 2);
new Float:centpos_x = ((minx + maxx) / 2);
new Float:centpos_y = ((miny + maxy) / 2);
new Float:centpos_y = ((miny + maxy) / 2);


new chars[2];
new chars[2];
format(chars, sizeof(chars), "%i", number);
format(chars, sizeof(chars), "%i", number);


if (GangZone_CreateNumber(GangZone@Number1[index], chars[0], centpos_x, centpos_y, numbersize) == 0) {
if (GangZone_CreateNumber(GangZone@Number1[index], chars[0], centpos_x, centpos_y, numbersize) == 0) {
GangZoneDestroy(GangZone@MainZone[index]);
GangZoneDestroy(GangZone@MainZone[index]);
GangZone@MainZone[index] = -1;
GangZone@MainZone[index] = INVALID_GANG_ZONE;


GangZoneDestroy(GangZone@Border[index][0]);
for(new i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneDestroy(GangZone@Border[index][1]);
if(GangZone@Border[index][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Border[index][2]);
GangZoneDestroy(GangZone@Border[index][i]);
GangZoneDestroy(GangZone@Border[index][3]);
GangZone@Border[index][i] = INVALID_GANG_ZONE;
return -1;
}
}
return INVALID_GANG_ZONE;
}
}
}
}
else if (number >= 10 && number <= 99) {
else if (number >= 10 && number <= 99) {
const Float:NUMBER_DISTANCE = 25.0;
const Float:NUMBER_DISTANCE = 25.0;


new Float:centpos_x = ((minx + maxx) / 2);
new Float:centpos_x = ((minx + maxx) / 2);
new Float:centpos_y = ((miny + maxy) / 2);
new Float:centpos_y = ((miny + maxy) / 2);


new chars[3];
new chars[3];
format(chars, sizeof(chars), "%i", number);
format(chars, sizeof(chars), "%i", number);


new numZones = GangZone_CreateNumber(GangZone@Number1[index], chars[0], (centpos_x - (NUMBER_DISTANCE * numbersize)), centpos_y, numbersize);
new numZones = GangZone_CreateNumber(GangZone@Number1[index], chars[0], (centpos_x - (NUMBER_DISTANCE * numbersize)), centpos_y, numbersize);
if (numZones == 0) {
if (numZones == 0) {
GangZoneDestroy(GangZone@MainZone[index]);
GangZoneDestroy(GangZone@MainZone[index]);
GangZone@MainZone[index] = -1;
GangZone@MainZone[index] = INVALID_GANG_ZONE;


GangZoneDestroy(GangZone@Border[index][0]);
for(new i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneDestroy(GangZone@Border[index][1]);
if(GangZone@Border[index][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Border[index][2]);
GangZoneDestroy(GangZone@Border[index][i]);
GangZoneDestroy(GangZone@Border[index][3]);
GangZone@Border[index][i] = INVALID_GANG_ZONE;
return -1;
}
}
return INVALID_GANG_ZONE;
}
}


if (GangZone_CreateNumber(GangZone@Number2[index], chars[1], (centpos_x + (NUMBER_DISTANCE * numbersize)), centpos_y, numbersize) == 0) {
if (GangZone_CreateNumber(GangZone@Number2[index], chars[1], (centpos_x + (NUMBER_DISTANCE * numbersize)), centpos_y, numbersize) == 0) {
GangZoneDestroy(GangZone@MainZone[index]);
GangZoneDestroy(GangZone@MainZone[index]);
GangZone@MainZone[index] = -1;
GangZone@MainZone[index] = INVALID_GANG_ZONE;


GangZoneDestroy(GangZone@Border[index][0]);
for(new i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneDestroy(GangZone@Border[index][1]);
if(GangZone@Border[index][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Border[index][2]);
GangZoneDestroy(GangZone@Border[index][i]);
GangZoneDestroy(GangZone@Border[index][3]);
GangZone@Border[index][i] = INVALID_GANG_ZONE;
}
}


for (new i = 0; i < numZones; i++) {
for (new i = 0; i < numZones; i++) {
GangZoneDestroy(GangZone@Number1[index][i]);
if(GangZone@Number1[index][i] != INVALID_GANG_ZONE) {
}
GangZoneDestroy(GangZone@Number1[index][i]);
return -1;
GangZone@Number1[index][i] = INVALID_GANG_ZONE;
}
}
return INVALID_GANG_ZONE;
}
}
}
} else {
else {
GangZoneDestroy(GangZone@MainZone[index]);
GangZoneDestroy(GangZone@MainZone[index]);
GangZone@MainZone[index] = -1;
GangZone@MainZone[index] = INVALID_GANG_ZONE;


GangZoneDestroy(GangZone@Border[index][0]);
for(new i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneDestroy(GangZone@Border[index][1]);
if(GangZone@Border[index][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Border[index][2]);
GangZoneDestroy(GangZone@Border[index][i]);
GangZoneDestroy(GangZone@Border[index][3]);
GangZone@Border[index][i] = INVALID_GANG_ZONE;
return -1;
}
}
return INVALID_GANG_ZONE;
}
}
}
}


return index;
return index;
}
}
#if defined _ALS_GangZoneCreate
#if defined _ALS_GangZoneCreate
#undef GangZoneCreate
#undef GangZoneCreate
#else
#else
#define _ALS_GangZoneCreate
#define _ALS_GangZoneCreate
#endif
#endif
#define GangZoneCreate GangZone_Create
#define GangZoneCreate GangZone_Create


stock GangZone_Destroy(gangzone) {
stock GangZone_Destroy(gangzone) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneDestroy(GangZone@MainZone[gangzone]);
static i;
GangZone@MainZone[gangzone] = -1;

GangZoneDestroy(GangZone@Border[gangzone][0]);
GangZoneDestroy(GangZone@Border[gangzone][1]);
GangZoneDestroy(GangZone@Border[gangzone][2]);
GangZoneDestroy(GangZone@Border[gangzone][3]);


GangZoneDestroy(GangZone@Number1[gangzone][0]);
GangZoneDestroy(GangZone@MainZone[gangzone]);
GangZoneDestroy(GangZone@Number1[gangzone][1]);
GangZone@MainZone[gangzone] = INVALID_GANG_ZONE;
GangZoneDestroy(GangZone@Number1[gangzone][2]);
GangZoneDestroy(GangZone@Number1[gangzone][3]);
GangZoneDestroy(GangZone@Number1[gangzone][4]);


GangZoneDestroy(GangZone@Number2[gangzone][0]);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneDestroy(GangZone@Number2[gangzone][1]);
if(GangZone@Border[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Number2[gangzone][2]);
GangZoneDestroy(GangZone@Border[gangzone][i]);
GangZoneDestroy(GangZone@Number2[gangzone][3]);
GangZone@Border[gangzone][i] = INVALID_GANG_ZONE;
GangZoneDestroy(GangZone@Number2[gangzone][4]);
}
}
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
if(GangZone@Number1[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Number1[gangzone][i]);
GangZone@Number1[gangzone][i] = INVALID_GANG_ZONE;
}
if(GangZone@Number2[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneDestroy(GangZone@Number2[gangzone][i]);
GangZone@Number2[gangzone][i] = INVALID_GANG_ZONE;
}
}


return 1;
return 1;
}
}
#if defined _ALS_GangZoneDestroy
#if defined _ALS_GangZoneDestroy
#undef GangZoneDestroy
#undef GangZoneDestroy
#else
#else
#define _ALS_GangZoneDestroy
#define _ALS_GangZoneDestroy
#endif
#endif
#define GangZoneDestroy GangZone_Destroy
#define GangZoneDestroy GangZone_Destroy


stock GangZone_ShowForPlayer(playerid, gangzone, color, bordercolor = GANGZONE_DEFAULT_BORDER_COLOR, numbercolor = GANGZONE_DEFAULT_NUMBER_COLOR) {
stock GangZone_ShowForPlayer(playerid, gangzone, color, bordercolor = GANGZONE_DEFAULT_BORDER_COLOR, numbercolor = GANGZONE_DEFAULT_NUMBER_COLOR) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneShowForPlayer(playerid, GangZone@MainZone[gangzone], color);
static i;

GangZoneShowForPlayer(playerid, GangZone@Border[gangzone][0], bordercolor);
GangZoneShowForPlayer(playerid, GangZone@Border[gangzone][1], bordercolor);
GangZoneShowForPlayer(playerid, GangZone@Border[gangzone][2], bordercolor);
GangZoneShowForPlayer(playerid, GangZone@Border[gangzone][3], bordercolor);


GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][0], numbercolor);
GangZoneShowForPlayer(playerid, GangZone@MainZone[gangzone], color);
GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][1], numbercolor);
GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][2], numbercolor);
GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][3], numbercolor);
GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][4], numbercolor);


GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][0], numbercolor);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][1], numbercolor);
if(GangZone@Border[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][2], numbercolor);
GangZoneShowForPlayer(playerid, GangZone@Border[gangzone][i], bordercolor);
GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][3], numbercolor);
}
GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][4], numbercolor);
}
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
if(GangZone@Number1[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForPlayer(playerid, GangZone@Number1[gangzone][i], numbercolor);
}
if(GangZone@Number2[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForPlayer(playerid, GangZone@Number2[gangzone][i], numbercolor);
}
}


return 1;
return 1;
}
}
#if defined _ALS_GangZoneShowForPlayer
#if defined _ALS_GangZoneShowForPlayer
#undef GangZoneShowForPlayer
#undef GangZoneShowForPlayer
#else
#else
#define _ALS_GangZoneShowForPlayer
#define _ALS_GangZoneShowForPlayer
#endif
#endif
#define GangZoneShowForPlayer GangZone_ShowForPlayer
#define GangZoneShowForPlayer GangZone_ShowForPlayer


stock GangZone_ShowForAll(gangzone, color, bordercolor = GANGZONE_DEFAULT_BORDER_COLOR, numbercolor = GANGZONE_DEFAULT_NUMBER_COLOR) {
stock GangZone_ShowForAll(gangzone, color, bordercolor = GANGZONE_DEFAULT_BORDER_COLOR, numbercolor = GANGZONE_DEFAULT_NUMBER_COLOR) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneShowForAll(GangZone@MainZone[gangzone], color);
static i;


GangZoneShowForAll(GangZone@Border[gangzone][0], bordercolor);
GangZoneShowForAll(GangZone@MainZone[gangzone], color);
GangZoneShowForAll(GangZone@Border[gangzone][1], bordercolor);
GangZoneShowForAll(GangZone@Border[gangzone][2], bordercolor);
GangZoneShowForAll(GangZone@Border[gangzone][3], bordercolor);


GangZoneShowForAll(GangZone@Number1[gangzone][0], numbercolor);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneShowForAll(GangZone@Number1[gangzone][1], numbercolor);
if(GangZone@Border[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForAll(GangZone@Number1[gangzone][2], numbercolor);
GangZoneShowForAll(GangZone@Border[gangzone][i], bordercolor);
GangZoneShowForAll(GangZone@Number1[gangzone][3], numbercolor);
}
GangZoneShowForAll(GangZone@Number1[gangzone][4], numbercolor);
}


GangZoneShowForAll(GangZone@Number2[gangzone][0], numbercolor);
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneShowForAll(GangZone@Number2[gangzone][1], numbercolor);
if(GangZone@Number1[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForAll(GangZone@Number2[gangzone][2], numbercolor);
GangZoneShowForAll(GangZone@Number1[gangzone][i], numbercolor);
GangZoneShowForAll(GangZone@Number2[gangzone][3], numbercolor);
}
GangZoneShowForAll(GangZone@Number2[gangzone][4], numbercolor);
if(GangZone@Number2[gangzone][i] != INVALID_GANG_ZONE) {
GangZoneShowForAll(GangZone@Number2[gangzone][i], numbercolor);
}
}


return 1;
return 1;
}
}
#if defined _ALS_GangZoneShowForAll
#if defined _ALS_GangZoneShowForAll
#undef GangZoneShowForAll
#undef GangZoneShowForAll
#else
#else
#define _ALS_GangZoneShowForAll
#define _ALS_GangZoneShowForAll
#endif
#endif
#define GangZoneShowForAll GangZone_ShowForAll
#define GangZoneShowForAll GangZone_ShowForAll


stock GangZone_HideForPlayer(playerid, gangzone) {
stock GangZone_HideForPlayer(playerid, gangzone) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneHideForPlayer(playerid, GangZone@MainZone[gangzone]);
static i;

GangZoneHideForPlayer(playerid, GangZone@Border[gangzone][0]);
GangZoneHideForPlayer(playerid, GangZone@Border[gangzone][1]);
GangZoneHideForPlayer(playerid, GangZone@Border[gangzone][2]);
GangZoneHideForPlayer(playerid, GangZone@Border[gangzone][3]);


GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][0]);
GangZoneHideForPlayer(playerid, GangZone@MainZone[gangzone]);
GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][1]);
GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][2]);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][3]);
GangZoneHideForPlayer(playerid, GangZone@Border[gangzone][i]);
GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][4]);
}


GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][0]);
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][1]);
GangZoneHideForPlayer(playerid, GangZone@Number1[gangzone][i]);
GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][2]);
GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][i]);
GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][3]);
}
GangZoneHideForPlayer(playerid, GangZone@Number2[gangzone][4]);


return 1;
return 1;
}
}
#if defined _ALS_GangZoneHideForPlayer
#if defined _ALS_GangZoneHideForPlayer
#undef GangZoneHideForPlayer
#undef GangZoneHideForPlayer
#else
#else
#define _ALS_GangZoneHideForPlayer
#define _ALS_GangZoneHideForPlayer
#endif
#endif
#define GangZoneHideForPlayer GangZone_HideForPlayer
#define GangZoneHideForPlayer GangZone_HideForPlayer


stock GangZone_HideForAll(gangzone) {
stock GangZone_HideForAll(gangzone) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneHideForAll(GangZone@MainZone[gangzone]);
static i;

GangZoneHideForAll(GangZone@Border[gangzone][0]);
GangZoneHideForAll(GangZone@Border[gangzone][1]);
GangZoneHideForAll(GangZone@Border[gangzone][2]);
GangZoneHideForAll(GangZone@Border[gangzone][3]);

GangZoneHideForAll(GangZone@Number1[gangzone][0]);
GangZoneHideForAll(GangZone@Number1[gangzone][1]);
GangZoneHideForAll(GangZone@Number1[gangzone][2]);
GangZoneHideForAll(GangZone@Number1[gangzone][3]);
GangZoneHideForAll(GangZone@Number1[gangzone][4]);


GangZoneHideForAll(GangZone@Number2[gangzone][0]);
GangZoneHideForAll(GangZone@MainZone[gangzone]);
GangZoneHideForAll(GangZone@Number2[gangzone][1]);
GangZoneHideForAll(GangZone@Number2[gangzone][2]);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneHideForAll(GangZone@Number2[gangzone][3]);
GangZoneHideForAll(GangZone@Border[gangzone][i]);
GangZoneHideForAll(GangZone@Number2[gangzone][4]);
}


for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneHideForAll(GangZone@Number1[gangzone][i]);
GangZoneHideForAll(GangZone@Number2[gangzone][i]);
}
return 1;
return 1;
}
}
#if defined _ALS_GangZoneHideForAll
#if defined _ALS_GangZoneHideForAll
#undef GangZoneHideForAll
#undef GangZoneHideForAll
#else
#else
#define _ALS_GangZoneHideForAll
#define _ALS_GangZoneHideForAll
#endif
#endif
#define GangZoneHideForAll GangZone_HideForAll
#define GangZoneHideForAll GangZone_HideForAll


stock GangZone_FlashForPlayer(playerid, gangzone, flashcolor, borderflashcolor = 0x00, numberflashcolor = 0x00) {
stock GangZone_FlashForPlayer(playerid, gangzone, flashcolor, borderflashcolor = 0x00, numberflashcolor = 0x00) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneFlashForPlayer(playerid, GangZone@MainZone[gangzone], flashcolor);
static i;

GangZoneFlashForPlayer(playerid, GangZone@MainZone[gangzone], flashcolor);


if (borderflashcolor != 0x00) {
if (borderflashcolor != 0x00) {
GangZoneFlashForPlayer(playerid, GangZone@Border[gangzone][0], borderflashcolor);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneFlashForPlayer(playerid, GangZone@Border[gangzone][1], borderflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Border[gangzone][i], borderflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Border[gangzone][2], borderflashcolor);
}
GangZoneFlashForPlayer(playerid, GangZone@Border[gangzone][3], borderflashcolor);
}
}


if (numberflashcolor != 0x00) {
if (numberflashcolor != 0x00) {
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][0], numberflashcolor);
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][1], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][i], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][2], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][i], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][3], numberflashcolor);
}
GangZoneFlashForPlayer(playerid, GangZone@Number1[gangzone][4], numberflashcolor);

GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][0], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][1], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][2], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][3], numberflashcolor);
GangZoneFlashForPlayer(playerid, GangZone@Number2[gangzone][4], numberflashcolor);
}
}


return 1;
return 1;
}
}
#if defined _ALS_GangZoneFlashForPlayer
#if defined _ALS_GangZoneFlashForPlayer
#undef GangZoneFlashForPlayer
#undef GangZoneFlashForPlayer
#else
#else
#define _ALS_GangZoneFlashForPlayer
#define _ALS_GangZoneFlashForPlayer
#endif
#endif
#define GangZoneFlashForPlayer GangZone_FlashForPlayer
#define GangZoneFlashForPlayer GangZone_FlashForPlayer


stock GangZone_FlashForAll(gangzone, flashcolor, borderflashcolor = 0x00, numberflashcolor = 0x00) {
stock GangZone_FlashForAll(gangzone, flashcolor, borderflashcolor = 0x00, numberflashcolor = 0x00) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


GangZoneFlashForAll(GangZone@MainZone[gangzone], flashcolor);
static i;

GangZoneFlashForAll(GangZone@MainZone[gangzone], flashcolor);


if (borderflashcolor != 0x00) {
if (borderflashcolor != 0x00) {
GangZoneFlashForAll(GangZone@Border[gangzone][0], borderflashcolor);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneFlashForAll(GangZone@Border[gangzone][1], borderflashcolor);
GangZoneFlashForAll(GangZone@Border[gangzone][i], borderflashcolor);
GangZoneFlashForAll(GangZone@Border[gangzone][2], borderflashcolor);
}
GangZoneFlashForAll(GangZone@Border[gangzone][3], borderflashcolor);
}
}


if (numberflashcolor != 0x00) {
if (numberflashcolor != 0x00) {
GangZoneFlashForAll(GangZone@Number1[gangzone][0], numberflashcolor);
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneFlashForAll(GangZone@Number1[gangzone][1], numberflashcolor);
GangZoneFlashForAll(GangZone@Number1[gangzone][i], numberflashcolor);
GangZoneFlashForAll(GangZone@Number1[gangzone][2], numberflashcolor);
GangZoneFlashForAll(GangZone@Number2[gangzone][i], numberflashcolor);
GangZoneFlashForAll(GangZone@Number1[gangzone][3], numberflashcolor);
}
GangZoneFlashForAll(GangZone@Number1[gangzone][4], numberflashcolor);

GangZoneFlashForAll(GangZone@Number2[gangzone][0], numberflashcolor);
GangZoneFlashForAll(GangZone@Number2[gangzone][1], numberflashcolor);
GangZoneFlashForAll(GangZone@Number2[gangzone][2], numberflashcolor);
GangZoneFlashForAll(GangZone@Number2[gangzone][3], numberflashcolor);
GangZoneFlashForAll(GangZone@Number2[gangzone][4], numberflashcolor);
}
}


return 1;
return 1;
}
}
#if defined _ALS_GangZoneFlashForAll
#if defined _ALS_GangZoneFlashForAll
#undef GangZoneFlashForAll
#undef GangZoneFlashForAll
#else
#else
#define _ALS_GangZoneFlashForAll
#define _ALS_GangZoneFlashForAll
#endif
#endif
#define GangZoneFlashForAll GangZone_FlashForAll
#define GangZoneFlashForAll GangZone_FlashForAll


stock GangZone_StopFlashForPlayer(playerid, gangzone, bool:mainzone = true, bool:border = true, bool:number = true) {
stock GangZone_StopFlashForPlayer(playerid, gangzone, bool:mainzone = true, bool:border = true, bool:number = true) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
return 0;
}
}


if (GangZone@MainZone[gangzone] == -1) {
if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
return 0;
}
}


static i;

if (mainzone) {
if (mainzone) {
GangZoneStopFlashForPlayer(playerid, GangZone@MainZone[gangzone]);
GangZoneStopFlashForPlayer(playerid, GangZone@MainZone[gangzone]);
}
}


if (border) {
if (border) {
GangZoneStopFlashForPlayer(playerid, GangZone@Border[gangzone][0]);
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneStopFlashForPlayer(playerid, GangZone@Border[gangzone][1]);
GangZoneStopFlashForPlayer(playerid, GangZone@Border[gangzone][i]);
GangZoneStopFlashForPlayer(playerid, GangZone@Border[gangzone][2]);
}
GangZoneStopFlashForPlayer(playerid, GangZone@Border[gangzone][3]);
}
}


if (number) {
if (number) {
GangZoneStopF
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneStopFlashForPlayer(playerid, GangZone@Number1[gangzone][i]);
GangZoneStopFlashForPlayer(playerid, GangZone@Number2[gangzone][i]);
}
}

return 1;
}
#if defined _ALS_GangZoneStopFlashForPlayer
#undef GangZoneStopFlashForPlayer
#else
#define _ALS_GangZoneStopFlashForPlayer
#endif
#define GangZoneStopFlashForPlayer GangZone_StopFlashForPlayer

stock GangZone_StopFlashForAll(gangzone, bool:mainzone = true, bool:border = true, bool:number = true) {
if (gangzone < 0 || gangzone >= MAX_GANG_ZONES) {
return 0;
}

if (GangZone@MainZone[gangzone] == INVALID_GANG_ZONE) {
return 0;
}

static i;

if (mainzone) {
GangZoneStopFlashForAll(GangZone@MainZone[gangzone]);
}

if (border) {
for(i = 0; i < MAX_GANGZONE_BORDER_SLOTS; ++i) {
GangZoneStopFlashForAll(GangZone@Border[gangzone][i]);
}
}

if (number) {
for(i = 0; i < MAX_GANGZONE_NUMBER_SLOTS; ++i) {
GangZoneStopFlashForAll(GangZone@Number1[gangzone][i]);
GangZoneStopFlashForAll(GangZone@Number2[gangzone][i]);
}
}

return 1;
}
#if defined _ALS_GangZoneStopFlashForAll
#undef GangZoneStopFlashForAll
#else
#define _ALS_GangZoneStopFlashForAll
#endif
#define GangZoneStopFlashForAll GangZone_StopFlashForAll