mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Original Source for 1.13 Mod High Resolution version from 12/06/05
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@21 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
#ifndef __RENDERWORLD_H
|
||||
#define __RENDERWORLD_H
|
||||
|
||||
#include "worlddef.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
|
||||
|
||||
|
||||
|
||||
|
||||
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;
|
||||
|
||||
|
||||
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;
|
||||
|
||||
|
||||
// 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 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 );
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user