mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
****************************************************************************
** Merged Source Code from Development trunk, for the Spring 2011 Release ** **************************************************************************** o Development Trunk (Revision: 4444): https://81.169.133.124/source/ja2/branches/Wanne/JA2%201.13%20MP o This trunk (the official 1.13 source trunk) will only be used for fixing bugs. No new features will be added here. New Features are only included in the Development trunk o !!! After we have fixed a bug here in this trunk, we should MANUALLY merge the bugfix in the development trunk !!! git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4446 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -268,7 +268,7 @@ BOOLEAN FindWindowJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bSta
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
BOOLEAN FindFenceDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection )
|
||||
BOOLEAN FindWallJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection )
|
||||
{
|
||||
INT32 cnt;
|
||||
INT32 sNewGridNo, sOtherSideOfFence;
|
||||
@@ -278,7 +278,7 @@ BOOLEAN FindFenceDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStarting
|
||||
INT8 bMinDirection = 0;
|
||||
|
||||
// IF there is a fence in this gridno, return false!
|
||||
if ( IsLegionFencePresentAtGridno( sGridNo ) )
|
||||
if ( IsLegionWallPresentAtGridno( sGridNo ) )
|
||||
{
|
||||
return( FALSE );
|
||||
}
|
||||
@@ -296,7 +296,7 @@ BOOLEAN FindFenceDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStarting
|
||||
|
||||
|
||||
// Check if we have a fence here
|
||||
if ( IsLegionFencePresentAtGridno( sNewGridNo ) )
|
||||
if ( IsLegionWallPresentAtGridno( sNewGridNo ) )
|
||||
{
|
||||
fFound = TRUE;
|
||||
|
||||
@@ -475,7 +475,7 @@ BOOLEAN FindHeigherLevelFence( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStart
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
BOOLEAN FindLowerLevelFence( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection )
|
||||
BOOLEAN FindLowerLevelWall( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection )
|
||||
{
|
||||
INT32 cnt;
|
||||
INT32 sNewGridNo;
|
||||
|
||||
@@ -142,9 +142,8 @@ public:
|
||||
|
||||
//Legion by JAzz
|
||||
BOOLEAN FindHeigherLevelOkno( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindHeigherLevelFence( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindFenceDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindLowerLevelFence( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindWallJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindLowerLevelWall( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
BOOLEAN FindWindowJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir, INT8 *pbDirection );
|
||||
|
||||
|
||||
|
||||
@@ -101,6 +101,9 @@ void InitRadarScreenCoords( )
|
||||
RADAR_WINDOW_STRAT_Y = (SCREEN_HEIGHT - 107);
|
||||
}
|
||||
|
||||
// WANNE.RADAR: This method is called in the main menu, so the mouse region is initialized too early. We should initialize the mouse region later, when reaching
|
||||
// strategy screen. Take a look at the following methods: CreateMouseRegionForPauseOfClock, RemoveMouseRegionForPauseOfClock
|
||||
// We should do something similiar for the radar screen mouse region creation/removal
|
||||
BOOLEAN InitRadarScreen( )
|
||||
{
|
||||
// CHRISL: Move screen coord setup to it's own function
|
||||
|
||||
@@ -64,8 +64,9 @@ void SetTileRangeRoomNum( SGPRect *pSelectRegion, UINT8 ubRoomNum )
|
||||
|
||||
BOOLEAN InARoom( INT32 sGridNo, UINT8 *pubRoomNo )
|
||||
{
|
||||
if ( gubWorldRoomInfo[ sGridNo ] != NO_ROOM )
|
||||
{
|
||||
// WANNE: Bugzilla #360: Crash when moving via helicopter from museum sector
|
||||
if ( sGridNo >= 0 && gubWorldRoomInfo[ sGridNo ] != NO_ROOM )
|
||||
{
|
||||
if ( pubRoomNo )
|
||||
{
|
||||
*pubRoomNo = gubWorldRoomInfo[ sGridNo ];
|
||||
@@ -79,7 +80,7 @@ BOOLEAN InARoom( INT32 sGridNo, UINT8 *pubRoomNo )
|
||||
|
||||
BOOLEAN InAHiddenRoom( INT32 sGridNo, UINT8 *pubRoomNo )
|
||||
{
|
||||
if ( gubWorldRoomInfo[ sGridNo ] != NO_ROOM )
|
||||
if ( sGridNo >= 0 && gubWorldRoomInfo[ sGridNo ] != NO_ROOM )
|
||||
{
|
||||
if ( (gubWorldRoomHidden[ gubWorldRoomInfo[ sGridNo ] ] ) )
|
||||
{
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D "_CRT_SECURE_NO_DEPRECATE""
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
|
||||
@@ -104,7 +104,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D "_CRT_SECURE_NO_DEPRECATE""
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
|
||||
RuntimeLibrary="0"
|
||||
@@ -165,7 +165,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D "_CRT_SECURE_NO_DEPRECATE""
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
|
||||
RuntimeLibrary="0"
|
||||
@@ -226,7 +226,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D "_CRT_SECURE_NO_DEPRECATE""
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
|
||||
@@ -291,7 +291,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/D "_CRT_SECURE_NO_DEPRECATE""
|
||||
AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
|
||||
|
||||
+35
-229
@@ -70,6 +70,9 @@
|
||||
#include "Simple Render Utils.h"//dnl ch54 111009
|
||||
///ddd
|
||||
#include "gamesettings.h"
|
||||
#include "editscreen.h"
|
||||
#include "Button Defines.h"
|
||||
#include "Editor Taskbar Utils.h"
|
||||
#endif
|
||||
|
||||
#define SET_MOVEMENTCOST( a, b, c, d ) ( ( gubWorldMovementCosts[ a ][ b ][ c ] < d ) ? ( gubWorldMovementCosts[ a ][ b ][ c ] = d ) : 0 );
|
||||
@@ -741,9 +744,6 @@ void CompileWorldTerrainIDs( void )
|
||||
}
|
||||
}
|
||||
|
||||
///dddokno {
|
||||
#pragma optimize("gpt",on)
|
||||
__forceinline
|
||||
BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
|
||||
{
|
||||
|
||||
@@ -781,8 +781,6 @@ BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
///dddokno }
|
||||
|
||||
void CompileTileMovementCosts( INT32 usGridNo )
|
||||
{
|
||||
UINT8 ubTerrainID;
|
||||
@@ -893,229 +891,6 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
}
|
||||
// all other passable structures do not block movement in any way
|
||||
}
|
||||
|
||||
/*
|
||||
//dddokno{ =============================================================
|
||||
else if ( IsNotRestrictedWindow(pStructure) )
|
||||
{
|
||||
// standard door
|
||||
switch( pStructure->ubWallOrientation )
|
||||
{
|
||||
case OUTSIDE_TOP_LEFT:
|
||||
SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_WALL );
|
||||
SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_JUMPABLEWINDOW );
|
||||
SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_WALL );
|
||||
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHEAST, 0, TRAVELCOST_WALL );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_JUMPABLEWINDOW_N );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHWEST, 0, TRAVELCOST_WALL );
|
||||
|
||||
// DO CORNERS
|
||||
SET_MOVEMENTCOST( usGridNo - 1, NORTHWEST, 0, TRAVELCOST_WALL );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, NORTHEAST, 0, TRAVELCOST_WALL );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_WALL );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_WALL );
|
||||
|
||||
break;
|
||||
|
||||
case INSIDE_TOP_LEFT:
|
||||
SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_WALL );
|
||||
SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_JUMPABLEWINDOW );
|
||||
SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_WALL );
|
||||
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_JUMPABLEWINDOW_N );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
// DO CORNERS
|
||||
SET_MOVEMENTCOST( usGridNo - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
break;
|
||||
|
||||
case OUTSIDE_TOP_RIGHT:
|
||||
SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_JUMPABLEWINDOW );
|
||||
SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
|
||||
SET_MOVEMENTCOST( usGridNo + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_JUMPABLEWINDOW_W );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
// DO CORNERS
|
||||
SET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo - WORLD_COLS, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case INSIDE_TOP_RIGHT:
|
||||
SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_JUMPABLEWINDOW );
|
||||
SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
|
||||
SET_MOVEMENTCOST( usGridNo + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, EAST, 0, TRAVELCOST_JUMPABLEWINDOW_W );
|
||||
SET_MOVEMENTCOST( usGridNo + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
// DO CORNERS
|
||||
SET_MOVEMENTCOST( usGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo - WORLD_COLS, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
SET_MOVEMENTCOST( usGridNo + WORLD_COLS, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
break;
|
||||
|
||||
|
||||
//switch( pStructure->ubWallOrientation )
|
||||
//{
|
||||
// case OUTSIDE_TOP_LEFT: //3 \# - êëåòêà âíóòðè ïîìåùåíèÿ, ñòåíà íàðóæó
|
||||
// case INSIDE_TOP_LEFT: //1 -êëåòêà ñíàðóæè ïîìåùåíèÿ \¹ ñòåíà âíóòðü
|
||||
// SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_JUMPABLEWINDOW );
|
||||
// SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_OBSTACLE);
|
||||
// SET_CURRMOVEMENTCOST( EAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( EAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHEAST, TRAVELCOST_OBSTACLE);
|
||||
// SET_CURRMOVEMENTCOST( SOUTH, TRAVELCOST_JUMPABLEWINDOW);
|
||||
// SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// //?
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
//
|
||||
|
||||
|
||||
// break;
|
||||
|
||||
// case OUTSIDE_TOP_RIGHT: //4 #/ //êëåòêà âíóòðè ïîìåùåíèÿ, ñòåíà íàðóæó
|
||||
|
||||
// case INSIDE_TOP_RIGHT:
|
||||
|
||||
// //2 #/
|
||||
// //. ñòåíà ñòîèò íà ïðàâîì íèæí. êðàþ è ñìîòðèò íà ÞÂ
|
||||
// // êëåòêà íàõîäèòñÿ ñíàðóæè ïîìåùåíèÿ, ñòåíà âíóòðè êëåòêè
|
||||
|
||||
|
||||
// SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( EAST, TRAVELCOST_JUMPABLEWINDOW );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTH, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_JUMPABLEWINDOW );
|
||||
// SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// //?
|
||||
// // set values for the tiles EXITED from this location
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// // make sure no obstacle costs exists before changing path cost to 0
|
||||
// if ( gubWorldMovementCosts[ sGridNo + 1 ][ EAST ][ 0 ] < TRAVELCOST_BLOCKED )
|
||||
// {
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo + 1, EAST, 0, TRAVELCOST_NONE );
|
||||
// }
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// if ( gubWorldMovementCosts[ sGridNo - 1 ][ WEST ][ 0 ] < TRAVELCOST_BLOCKED )
|
||||
// {
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo - 1, WEST, 0, TRAVELCOST_NONE );
|
||||
// }
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
|
||||
|
||||
// break;
|
||||
// default:
|
||||
// // corners aren't jumpable
|
||||
// for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
// {
|
||||
// SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_OBSTACLE );
|
||||
// }
|
||||
// break;
|
||||
//}
|
||||
|
||||
|
||||
|
||||
//************************************ñòàðûé ïî÷òè ðàáîòàþùèé êîä. òîêà àè èíîãäà òóïèò ))
|
||||
//if ( (pStructure->fFlags & STRUCTURE_WALLNWINDOW) //&& !(pStructure->fFlags & STRUCTURE_SPECIAL)
|
||||
// && (pStructure->fFlags & STRUCTURE_WALLSTUFF)==0 )
|
||||
//if(pStructure->pDBStructureRef->pDBStructure->bPartnerDelta == NO_PARTNER_STRUCTURE)
|
||||
|
||||
// jumpable!
|
||||
// switch( pStructure->ubWallOrientation )
|
||||
// {
|
||||
// case OUTSIDE_TOP_LEFT:
|
||||
// case INSIDE_TOP_LEFT:
|
||||
// // can be jumped north and south
|
||||
// SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_FENCE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( EAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTH, TRAVELCOST_FENCE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// // set values for the tiles EXITED from this location
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_NONE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + 1, EAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_NONE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - 1, WEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// break;
|
||||
|
||||
// case OUTSIDE_TOP_RIGHT:
|
||||
// case INSIDE_TOP_RIGHT:
|
||||
// // can be jumped east and west
|
||||
// SET_CURRMOVEMENTCOST( NORTH, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( EAST, TRAVELCOST_FENCE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHEAST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTH, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( SOUTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// SET_CURRMOVEMENTCOST( WEST, TRAVELCOST_FENCE );
|
||||
// SET_CURRMOVEMENTCOST( NORTHWEST, TRAVELCOST_OBSTACLE );
|
||||
// // set values for the tiles EXITED from this location
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS, NORTH, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS + 1, NORTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// // make sure no obstacle costs exists before changing path cost to 0
|
||||
// if ( gubWorldMovementCosts[ sGridNo + 1 ][ EAST ][ 0 ] < TRAVELCOST_BLOCKED )
|
||||
// {
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo + 1, EAST, 0, TRAVELCOST_NONE );
|
||||
// }
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS + 1, SOUTHEAST, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS, SOUTH, 0, TRAVELCOST_OBSTACLE );
|
||||
// SET_MOVEMENTCOST( sGridNo + WORLD_COLS - 1, SOUTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// if ( gubWorldMovementCosts[ sGridNo - 1 ][ WEST ][ 0 ] < TRAVELCOST_BLOCKED )
|
||||
// {
|
||||
// FORCE_SET_MOVEMENTCOST( sGridNo - 1, WEST, 0, TRAVELCOST_NONE );
|
||||
// }
|
||||
// SET_MOVEMENTCOST( sGridNo - WORLD_COLS - 1, NORTHWEST, 0, TRAVELCOST_OBSTACLE );
|
||||
// break;
|
||||
|
||||
// //default:
|
||||
// // corners aren't jumpable
|
||||
// for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
// {
|
||||
// SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_OBSTACLE );
|
||||
// }
|
||||
// break;
|
||||
// }//switch
|
||||
//}//}if dddokno==============================================================================
|
||||
*/
|
||||
|
||||
else if (pStructure->fFlags & STRUCTURE_BLOCKSMOVES)
|
||||
{
|
||||
if ( (pStructure->fFlags & STRUCTURE_FENCE) && !(pStructure->fFlags & STRUCTURE_SPECIAL) )
|
||||
@@ -3003,12 +2778,42 @@ BOOLEAN LoadWorld(const STR8 puiFilename, FLOAT* pMajorMapVersion, UINT8* pMinor
|
||||
LOADDATA(&iRowSize, pBuffer, sizeof(INT32));
|
||||
LOADDATA(&iColSize, pBuffer, sizeof(INT32));
|
||||
}
|
||||
|
||||
// Actual world size of the map we loaded!
|
||||
INT32 iWorldSize = iRowSize * iColSize;
|
||||
|
||||
#ifdef JA2EDITOR
|
||||
if(gMapTrn.SetTrnPar(iRowSize, iColSize, iNewMapWorldRows, iNewMapWorldCols))
|
||||
// TODO.MAP: Make a new checkbox "Lock Rows & Cols". If set, load the map like it is now, with the set ROWS and COLS
|
||||
// If not set, load the map with the original rows and cols
|
||||
|
||||
// WANNE: Only resize the map, when the checkbox is set
|
||||
if(gfResizeMapOnLoading && gMapTrn.SetTrnPar(iRowSize, iColSize, iNewMapWorldRows, iNewMapWorldCols))
|
||||
{
|
||||
// We enlarge the map
|
||||
SetWorldSize(iNewMapWorldRows, iNewMapWorldCols);
|
||||
|
||||
// Uncheck "vanilla map saving", because it is not allowed on maps > 160x160
|
||||
UnclickEditorButton(OPTIONS_VANILLA_MODE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Mapsize has not changed
|
||||
SetWorldSize(iRowSize, iColSize);
|
||||
|
||||
// We still have the "normal" map size -> Check "vanilla map saving"
|
||||
if (iRowSize <= OLD_WORLD_ROWS && iRowSize <= OLD_WORLD_COLS)
|
||||
{
|
||||
ClickEditorButton(OPTIONS_VANILLA_MODE);
|
||||
}
|
||||
else
|
||||
{
|
||||
UnclickEditorButton(OPTIONS_VANILLA_MODE);
|
||||
}
|
||||
}
|
||||
|
||||
// Always reset to unchecked!
|
||||
UnclickEditorButton(OPTIONS_RESIZE_MAP_ON_LOADING);
|
||||
|
||||
#else
|
||||
SetWorldSize(iRowSize, iColSize);
|
||||
#endif
|
||||
@@ -4470,6 +4275,7 @@ void MAPTRANSLATION::ResizeTrnCnt(INT32& cnt)
|
||||
|
||||
BOOLEAN MAPTRANSLATION::SetTrnPar(INT32 iFromRows, INT32 iFromCols, INT32 iToRows, INT32 iToCols)
|
||||
{
|
||||
// WANNE: Only enlarging works currently, making the make small does not work
|
||||
if(iFromRows < iToRows && iFromCols < iToCols)
|
||||
{
|
||||
fTrn = TRUE;
|
||||
|
||||
@@ -9,11 +9,6 @@
|
||||
|
||||
#define WORLD_TILE_X 40
|
||||
#define WORLD_TILE_Y 20
|
||||
//#define WORLD_COLS 160
|
||||
//#define WORLD_ROWS 160
|
||||
//#define WORLD_COORD_COLS 1600
|
||||
//#define WORLD_COORD_ROWS 1600
|
||||
//#define WORLD_MAX 25600
|
||||
#define CELL_X_SIZE 10
|
||||
#define CELL_Y_SIZE 10
|
||||
//<SB> variable map size
|
||||
@@ -22,9 +17,7 @@ extern INT32 guiWorldRows;
|
||||
|
||||
#define OLD_WORLD_COLS 160
|
||||
#define OLD_WORLD_ROWS 160
|
||||
#define OLD_WORLD_COORD_COLS 1600
|
||||
#define OLD_WORLD_COORD_ROWS 1600
|
||||
#define OLD_WORLD_MAX 25600
|
||||
#define OLD_WORLD_MAX 25600
|
||||
|
||||
#define WORLD_COLS guiWorldCols
|
||||
#define WORLD_ROWS guiWorldRows
|
||||
|
||||
@@ -117,7 +117,7 @@ void DebugLevelNodePage( void )
|
||||
{
|
||||
gprintf( 0, LINE_HEIGHT * (uiLoop + 1), gzLevelString[uiLoop], guiLNCount[uiLoop] );
|
||||
}
|
||||
gprintf( 0, LINE_HEIGHT * 12, L"%d land nodes in excess of world max (25600)", guiLNCount[1] - WORLD_MAX);
|
||||
gprintf( 0, LINE_HEIGHT * 12, L"%d land nodes in excess of world max", guiLNCount[1] - WORLD_MAX);
|
||||
gprintf( 0, LINE_HEIGHT * 13, L"Total # levelnodes %d, %d bytes each", guiLNCount[0], sizeof( LEVELNODE ) );
|
||||
gprintf( 0, LINE_HEIGHT * 14, L"Total memory for levelnodes %d", guiLNCount[0] * sizeof( LEVELNODE ) );
|
||||
}
|
||||
@@ -3591,9 +3591,10 @@ LEVELNODE * FindLevelNodeBasedOnStructure( INT32 sGridNo, STRUCTURE * pStructure
|
||||
pLevelNode = pLevelNode->pNext;
|
||||
}
|
||||
|
||||
// WANNE: Removed the assertion, because it can happen on custom maps.
|
||||
// It is not a big deal, if the node cannot be found.
|
||||
// Assert here if it cannot be found....
|
||||
AssertMsg( 0, "FindLevelNodeBasedOnStruct failed.");
|
||||
|
||||
//AssertMsg( 0, "FindLevelNodeBasedOnStruct failed.");
|
||||
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user