Files
Marco Antonio J. Costaandmajcosta 86ad401186 add newline at end of file where it's lacking
.editorconfig already enforces it but it's getting changed piecemeal in
every commit. just get it done with.

the script:
```

find . -type f -not -path "./.git/*" -not -path "./.vs/*" | while read -r file; do
	isFile=$(file -0 "$file" | cut -d $'\0' -f2)
	case "$isFile" in
		(*text*)
			echo "$file is text"
			if [[ $(tail -c 1 "$file" | wc -l) -ne 1 ]]; then
				echo "" >> "$file"
			fi
			;;
		(*)
			echo "file isn't text"
			;;
	esac
done
```
2024-12-14 19:05:48 -03:00

231 lines
8.3 KiB
C

#ifndef __RENDERWORLD_H
#define __RENDERWORLD_H
// TEMP SELECT STUFF
#define NO_SELECT 0
#define FULL_SELECT 1
#define SELECT_WIDTH 2
#define SELECT_HEIGHT 3
extern BOOLEAN gfDoVideoScroll;
extern BOOLEAN gfDoSubtileScroll;
extern UINT8 gubCurScrollSpeedID;
// RENDERING FLAGS
#define RENDER_FLAG_FULL 0x00000001
#define RENDER_FLAG_SHADOWS 0x00000002
#define RENDER_FLAG_MARKED 0x00000004
#define RENDER_FLAG_SAVEOFF 0x00000008
#define RENDER_FLAG_NOZ 0x00000010
#define RENDER_FLAG_ROOMIDS 0x00000020
#define RENDER_FLAG_CHECKZ 0x00000040
#define RENDER_FLAG_ONLYLAND 0x00000080
#define RENDER_FLAG_ONLYSTRUCT 0x00000100
#define RENDER_FLAG_FOVDEBUG 0x00000200
#define SCROLL_UP 0x00000001
#define SCROLL_DOWN 0x00000002
#define SCROLL_RIGHT 0x00000004
#define SCROLL_LEFT 0x00000008
#define SCROLL_UPLEFT 0x00000020
#define SCROLL_UPRIGHT 0x00000040
#define SCROLL_DOWNLEFT 0x00000080
#define SCROLL_DOWNRIGHT 0x00000200
#define Z_SUBLAYERS 8
#define LAND_Z_LEVEL 0
#define OBJECT_Z_LEVEL 1
#define SHADOW_Z_LEVEL 2
#define MERC_Z_LEVEL 3
#define STRUCT_Z_LEVEL 4
#define ROOF_Z_LEVEL 5
#define ONROOF_Z_LEVEL 6
#define FOG_Z_LEVEL 7
#define TOPMOST_Z_LEVEL 32767
// highest bit value is rendered first!
#define TILES_STATIC_LAND 0x00040000
#define TILES_STATIC_OBJECTS 0x00020000
#define TILES_STATIC_SHADOWS 0x00008000
#define TILES_STATIC_STRUCTURES 0x00004000
#define TILES_STATIC_ROOF 0x00002000
#define TILES_STATIC_ONROOF 0x00001000
#define TILES_STATIC_TOPMOST 0x00000800
// highest bit value is rendered first!
#define TILES_ALL_DYNAMICS 0x00000fff
#define TILES_DYNAMIC_CHECKFOR_INT_TILE 0x00000400
#define TILES_DYNAMIC_LAND 0x00000200
#define TILES_DYNAMIC_OBJECTS 0x00000100
#define TILES_DYNAMIC_SHADOWS 0x00000080
#define TILES_DYNAMIC_STRUCT_MERCS 0x00000040
#define TILES_DYNAMIC_MERCS 0x00000020
#define TILES_DYNAMIC_STRUCTURES 0x00000010
#define TILES_DYNAMIC_ROOF 0x00000008
#define TILES_DYNAMIC_HIGHMERCS 0x00000004
#define TILES_DYNAMIC_ONROOF 0x00000002
#define TILES_DYNAMIC_TOPMOST 0x00000001
// Forward declaration
typedef struct TAG_HVOBJECT *HVOBJECT;
extern BOOLEAN gfRenderScroll;
extern INT16 gsScrollXIncrement;
extern INT16 gsScrollYIncrement;
extern INT32 guiScrollDirection;
extern BOOLEAN gfScrollStart;
extern INT16 gsRenderHeight;
// Distance around mercs to pixelate walls
#define REVEAL_WALLS_RADIUS 3
// GLOBAL VARIABLES
extern INT16 SCROLL_X_STEP;
extern INT16 SCROLL_Y_STEP;
extern INT16 gsVIEWPORT_START_X;
extern INT16 gsVIEWPORT_START_Y;
extern INT16 gsVIEWPORT_WINDOW_START_Y;
extern INT16 gsVIEWPORT_END_Y;
extern INT16 gsVIEWPORT_WINDOW_END_Y;
extern INT16 gsVIEWPORT_END_X;
extern INT16 gsRenderCenterX;
extern INT16 gsRenderCenterY;
extern INT16 gsRenderWorldOffsetX;
extern INT16 gsRenderWorldOffsetY;
// CURRENT VIEWPORT IN WORLD COORDS
extern INT16 gsTopLeftWorldX;
extern INT16 gsTopLeftWorldY;
extern INT16 gsTopRightWorldX;
extern INT16 gsTopRightWorldY;
extern INT16 gsBottomLeftWorldX;
extern INT16 gsBottomLeftWorldY;
extern INT16 gsBottomRightWorldX;
extern INT16 gsBottomRightWorldY;
// WANNE: If we are talking?
// This check is used, to prevent scrolling in small maps (e.g: Rebel Basement) in higher resolution (1024x768) [2007-05-14]
extern BOOLEAN gfDialogControl;
extern SGPRect gSelectRegion;
extern SGPPoint gSelectAnchor;
extern UINT32 fSelectMode;
// GLOBAL COORDINATES
extern INT16 gTopLeftWorldLimitX;
extern INT16 gTopLeftWorldLimitY;
extern INT16 gTopRightWorldLimitX;
extern INT16 gTopRightWorldLimitY;
extern INT16 gBottomLeftWorldLimitX;
extern INT16 gBottomLeftWorldLimitY;
extern INT16 gBottomRightWorldLimitX;
extern INT16 gBottomRightWorldLimitY;
extern INT16 gCenterWorldX;
extern INT16 gCenterWorldY;
extern INT16 gsTLX;
extern INT16 gsTLY;
extern INT16 gsTRX;
extern INT16 gsTRY;
extern INT16 gsBLX;
extern INT16 gsBLY;
extern INT16 gsBRX;
extern INT16 gsBRY;
extern INT16 gsCX;
extern INT16 gsCY;
extern DOUBLE gdScaleX;
extern DOUBLE gdScaleY;
extern BOOLEAN fLandLayerDirty;
extern BOOLEAN gfIgnoreScrollDueToCenterAdjust;
//dnl ch45 051009
#define MAPWIDTH (gsTRX - gsTLX)// World Screen Width
#define MAPHEIGHT (gsBRY - gsTRY)// World Screen Height
// FUNCTIONS
void ScrollWorld( );
void InitRenderParams( UINT8 ubRestrictionID );
void RenderWorld( );
/* This procedure will initialize gsVIEWPORT_xxx variables
* they ware declared with static initializer
* any question? joker
*/
void InitializeViewPort();
void ResetLayerOptimizing(void);
void ResetSpecificLayerOptimizing( UINT32 uiRowFlag );
// Routines of RenderWorld
extern void RenderStaticWorld( );
extern void RenderDynamicWorld( );
void CopyRenderBuffer( );
void SetRenderFlags(UINT32 uiFlags);
UINT32 GetRenderFlags(void);
void ClearRenderFlags(UINT32 uiFlags);
void RenderSetShadows(BOOLEAN fShadows);
extern UINT16 *gpZBuffer;
extern UINT32 gRenderFlags;
extern BOOLEAN gfIgnoreScrolling;
extern BOOLEAN gfScrollInertia;
extern BOOLEAN gfScrollPending;
// Definitions for dirty rectangle uploads
void ReRenderWorld(INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom);
BOOLEAN ConcealWalls(INT16 sX, INT16 sY, INT16 sRadius);
BOOLEAN RevealWalls(INT16 sX, INT16 sY, INT16 sRadius);
void ConcealAllWalls(void);
BOOLEAN ApplyScrolling( INT16 sTempRenderCenterX, INT16 sTempRenderCenterY, BOOLEAN fForceAdjust, BOOLEAN fCheckOnly );
BOOLEAN Blt8BPPDataTo16BPPBufferTransZIncClip( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion);
void RenderStaticWorldRect(INT16, INT16, INT16, INT16, BOOLEAN );
void RenderMarkedWorld(void);
void RenderDynamicMercWorld( void );
void ExamineZBufferRect( INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom);
void InvalidateWorldRedundency(void);
void InvalidateWorldRedundencyRadius(INT16 sX, INT16 sY, INT16 sRadius);
void DirtyWorldRender( );
// These two functions will setup the glow frame script to use then glowing enemy mercs....
void SetMercGlowFast( );
void SetMercGlowNormal( );
void SetRenderCenter( INT16 sNewX, INT16 sNewY );
#ifdef _DEBUG
void RenderFOVDebug( );
#endif
BOOLEAN Zero8BPPDataTo16BPPBufferTransparent( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex );
BOOLEAN Blt8BPPDataTo16BPPBufferTransZIncClipZSameZBurnsThrough( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion, INT16 sZStripIndex );
BOOLEAN Blt8BPPDataTo16BPPBufferTransInvZ( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex );
BOOLEAN Blt8BPPDataTo16BPPBufferTransZTransShadowIncClip(UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion, INT16 sZIndex, UINT16 *p16BPPPalette, BOOLEAN fIgnoreShadows = FALSE);
BOOLEAN Blt8BPPDataTo16BPPBufferTransZTransShadowIncClipAlpha(UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, HVOBJECT hAlphaVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion, INT16 sZIndex, UINT16 *p16BPPPalette, BOOLEAN fIgnoreShadows = FALSE);
BOOLEAN Blt8BPPDataTo16BPPBufferTransZIncObscureClip(UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion);
BOOLEAN Blt8BPPDataTo16BPPBufferTransZTransShadowIncObscureClip(UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion, INT16 sZIndex, UINT16 *p16BPPPalette, BOOLEAN fIgnoreShadows = FALSE);
BOOLEAN Blt8BPPDataTo16BPPBufferTransZTransShadowIncObscureClipAlpha(UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, HVOBJECT hSrcVObject, HVOBJECT hAlphaVObject, INT32 iX, INT32 iY, UINT16 usIndex, SGPRect *clipregion, INT16 sZIndex, UINT16 *p16BPPPalette, BOOLEAN fIgnoreShadows = FALSE);
#endif