123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- //===========================================================================//
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- //===========================================================================//
- // stuff I need all over the place
- #ifndef UTILITIES_H
- #define UTILITIES_H
- #include <gameos.hpp>
- #include <string.h>
- class FitIniFile;
- class StaticInfo
- {
- public:
- void init( FitIniFile& file, char* blockName, long hiResOffsetX = 0, long hiResOffsetY = 0, DWORD neverFlush = 0 );
- void render();
- bool isInside( int mouseX, int mouseY );
- void setLocation( float newX, float newY );
- void move( float deltaX, float deltaY );
- void setNewUVs( float uLeft, float vTop, float uRight, float vBottom );
- float width(){ return location[2].x - location[0].x; }
- float height(){ return location[2].y - location[0].y; }
-
- void getData(unsigned char * buffer);
- void showGUIWindow( bool bShow );
- void setColor( long newColor );
- StaticInfo(){}
- ~StaticInfo();
- unsigned long textureHandle;
- gos_VERTEX location[4];
- long u, v, uWidth, vHeight;
- unsigned long textureWidth; // textures are square
- };
- typedef struct _GUI_RECTd
- {
- long left;
- long top;
- long right;
- long bottom;
- } GUI_RECT;
- void drawEmptyRect( const GUI_RECT& rect, unsigned long leftBorderColor = 0xffffffff,
- unsigned long rightBorderColor = 0xff000000 );
- void drawRect( const GUI_RECT& rect, unsigned long color );
- void drawShadowText( long colorTop, long colorShadow, HGOSFONT3D font,
- long left, long top, bool proportional, const char* text, bool bBold, float scale );
- void drawShadowText( long colorTop, long colorShadow, HGOSFONT3D font,
- long left, long top, bool proportional, const char* text, bool bold, float scale,
- long xOffset, long yOffset);
- void drawShadowText( long colorTop, long colorShadow, HGOSFONT3D font,
- long left, long top, long right, long bottom, bool proportional, const char* text, bool bold, float scale,
- long xOffset, long yOffset);
- long interpolateColor( long color1, long color2, float percent );
- inline long reverseRGB( long oldVal )
- {
- return ( (oldVal & 0xff000000) | ((oldVal & 0xff0000) >> 16) | (oldVal & 0xff00) | ((oldVal & 0xff) << 16) );
- }
- //-------------------------------------------------------
- // Replaces the WINDOWS version because it is a lie!
- // There are cases where windows does NOT append a null.
- // THANKS!
- //
- // Replace with GOS String Resource get when available
- // Replaced. Andy wants us to call everytime. Will try and see if practical.
- extern DWORD gosResourceHandle;
- #if 1
- inline int cLoadString(
- unsigned int uID, // resource identifier
- char* lpBuffer, // pointer to buffer for resource
- int nBufferMax, // size of buffer
- unsigned long handle = gosResourceHandle
- )
- {
- memset(lpBuffer,0,nBufferMax);
- char * tmpBuffer = gos_GetResourceString(handle, uID);
- long stringLength = strlen(tmpBuffer);
- if (stringLength >= nBufferMax)
- STOP(("String too long for buffer. String Id %d, bufferLen %d, StringLen %d",uID,nBufferMax,stringLength));
- memcpy(lpBuffer,tmpBuffer,stringLength);
- return stringLength;
- }
- #else
- inline char * cLoadString (unsigned int uID)
- {
- return gos_GetResourceString(gosResourceHandle, uID);
- }
- #endif
- #endif
|