store the gangzone areas into an iterator and use iter_next
This commit is contained in:
parent
0cf9853cd7
commit
3a38d75a16
@ -81,11 +81,12 @@ enum E_TURF_ZONE_DATA {
|
|||||||
new
|
new
|
||||||
g_gangTurfData [ MAX_TURFS ] [ E_TURF_ZONE_DATA ],
|
g_gangTurfData [ MAX_TURFS ] [ E_TURF_ZONE_DATA ],
|
||||||
Iterator: turfs < MAX_TURFS >,
|
Iterator: turfs < MAX_TURFS >,
|
||||||
|
Iterator: gangzoneturfs < MAX_TURFS >,
|
||||||
|
|
||||||
Float: g_weekAveragePlayers = 0.0,
|
Float: g_weekAveragePlayers = 0.0,
|
||||||
Float: g_weekSecondsElapsed = 0.0,
|
Float: g_weekSecondsElapsed = 0.0,
|
||||||
|
|
||||||
g_gangHardpointRotation = -1, // it will begin at 0 this way
|
g_gangHardpointRotation = -1,
|
||||||
g_gangHardpointTurf = INVALID_GANG_TURF,
|
g_gangHardpointTurf = INVALID_GANG_TURF,
|
||||||
g_gangHardpointPreviousTurf = INVALID_GANG_TURF,
|
g_gangHardpointPreviousTurf = INVALID_GANG_TURF,
|
||||||
g_gangHardpointAttacker = INVALID_GANG_ID,
|
g_gangHardpointAttacker = INVALID_GANG_ID,
|
||||||
@ -109,10 +110,14 @@ stock Float: Turf_GetHardpointPrizePool( Float: max_payout = 500000.0 )
|
|||||||
/* ** Hooks ** */
|
/* ** Hooks ** */
|
||||||
hook OnGameModeInit( )
|
hook OnGameModeInit( )
|
||||||
{
|
{
|
||||||
/* ** Gangzone Allocation ** */
|
// Gangzone Allocation
|
||||||
for ( new i = 0; i < sizeof( g_gangzoneData ); i ++ ) {
|
for ( new i = 0; i < sizeof( g_gangzoneData ); i ++ ) {
|
||||||
Turf_Create( g_gangzoneData[ i ] [ E_MIN_X ], g_gangzoneData[ i ] [ E_MIN_Y ], g_gangzoneData[ i ] [ E_MAX_X ], g_gangzoneData[ i ] [ E_MAX_Y ], INVALID_GANG_ID, COLOR_GANGZONE, .bordersize = GANGZONE_DEFAULT_BORDER_SIZE, .numbersize = GANGZONE_DEFAULT_NUMBER_SIZE );
|
new turfid = Turf_Create( g_gangzoneData[ i ] [ E_MIN_X ], g_gangzoneData[ i ] [ E_MIN_Y ], g_gangzoneData[ i ] [ E_MAX_X ], g_gangzoneData[ i ] [ E_MAX_Y ], INVALID_GANG_ID, COLOR_GANGZONE, .bordersize = GANGZONE_DEFAULT_BORDER_SIZE, .numbersize = GANGZONE_DEFAULT_NUMBER_SIZE );
|
||||||
|
Iter_Add( gangzoneturfs, turfid );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reset Iterator
|
||||||
|
g_gangHardpointRotation = Iter_Last( gangzoneturfs );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,8 +232,15 @@ stock Turf_CreateHardpoint( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// fixed zone rotation
|
// fixed zone rotation
|
||||||
if ( ! ( 0 <= g_gangHardpointRotation ++ < sizeof( g_gangzoneData ) - 1 ) ) {
|
new current_rotation = g_gangHardpointRotation;
|
||||||
g_gangHardpointRotation = 0;
|
|
||||||
|
// reset rotation
|
||||||
|
if ( current_rotation >= Iter_Last( gangzoneturfs ) ) {
|
||||||
|
g_gangHardpointRotation = Iter_First( gangzoneturfs );
|
||||||
|
}
|
||||||
|
// get next in rotation
|
||||||
|
else {
|
||||||
|
g_gangHardpointRotation = Iter_Next( gangzoneturfs, current_rotation );
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate new hardpoint
|
// allocate new hardpoint
|
||||||
@ -310,7 +322,7 @@ hook OnServerGameDayEnd( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// reset hardpoint
|
// reset hardpoint
|
||||||
g_gangHardpointPreviousTurf = g_gangHardpointTurf;
|
g_gangHardpointPreviousTurf = Iter_Prev( gangzoneturfs, g_gangHardpointTurf );
|
||||||
g_gangHardpointTurf = INVALID_GANG_TURF;
|
g_gangHardpointTurf = INVALID_GANG_TURF;
|
||||||
g_weekAveragePlayers = 0.0;
|
g_weekAveragePlayers = 0.0;
|
||||||
g_weekSecondsElapsed = 0.0;
|
g_weekSecondsElapsed = 0.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user