Translate Korean comments/strings to English; fix UTF-8 encoding across source tree

Korean translation (84 source files, 876 lines):
- Translated all EUC-KR/CP949 Korean developer comments to English across
  84 source files in Gameleap/code/. Zero Korean bytes remain outside the
  intentional font-table headers (D3FFontEdit2/fontedit all.h etc.).
- Comment markers: //상훈 앞/뒤 -> //sanghoon begin/end (Sang-hun's code
  region markers); //상훈짱 begin/end, //상훈.. variants; // 鉉 -> // hyun
  (second developer's markers); // 鉉 - start/end patterns.
- Functional string translations in recscore.cpp (mw4 + mw4print copies):
  body-part return values (왼발/오른발/etc. -> Left Leg/Right Leg/etc.),
  kill-announcer format strings (~30 entries), and the nonmfc.h assert dialog.
- GosView profiler: 킪 -> us (microseconds) in timing display strings.
- Network/socket code (ctcl.cpp, mugsocs.h, ctime.cpp across Launcher/
  MW4Application/MW4GameEd2/AnimScript): state-machine comments, socket
  ID comments, login/session management comments.
- render.hpp CHSH_Device member comments; GUIRadarManager.cpp drawing
  routine comments; hudchat/hudcomp2/huddamage/hudmap/hudweapon/hudtarg
  HUD component comments.
- DXRasterizer.cpp: cleaned residual U+FFFD replacement characters left
  from a prior partial encoding conversion.

UTF-8 encoding cleanup (76+ files):
- Latin-1 single bytes converted to proper UTF-8 multi-byte sequences:
  © (0xA9) in 3dsmax4/Maxscrpt Autodesk/Wainwright copyright headers,
  ® (0xAE) in gosHelp/Remote.cpp, · (0xB7) bullet points in ai command.hpp,
  Û (0xDB) in SafeChain_Test.cpp tool header,
  ß (0xDF) in AnimationSuite version strings (8 files).
- Font lookup tables (D3FFontEdit2/, fontedit/ *.h) intentionally left
  as-is: raw byte values are C array data, not text.

Language DLL:
- Replaced Gameleap/mw4/Language.dll (original Korean binary) and
  MW4/Language.dll with freshly built English version from
  Language - Win32 English config (Language.dsp). Fixes Korean button
  labels in the GameOS exception/crash dialog (??? ??... / ?? / ???
  were showing instead of More Details.../Continue/Exit).
This commit is contained in:
2026-07-18 13:10:31 -05:00
parent eaa5fd3bbe
commit af416960fa
171 changed files with 973 additions and 973 deletions
@@ -1032,19 +1032,19 @@ void __stdcall gos_SetViewport( DWORD LeftX, DWORD TopY, DWORD Width, DWORD Heig
// You can only clear the backbuffer or Z buffer on the FIRST setup viewport (outside the Begin/End Scene
//
//상훈 앞
//sanghoon begin
void __cdecl ClearTargetCameraBackBuffer()
{
D3DRECT rc={0,10,120,112};
wClear(d3dDevice7,1,&rc,D3DCLEAR_TARGET,0xFF00FFFF,0,0);
return ;
}
//상훈 뒤
//sanghoon end
void __stdcall gos_SetupViewport( bool FillZ, float ZBuffer, bool FillBG, DWORD BGColor, float top, float left, float bottom, float right, bool ClearStencil, DWORD StencilValue )
{
//상훈짱...
//원래의 법칙에 어긋나는 행동이기 때문에 ASSERT를 무시한다.
//sanghoon
//This violates the normal rules, so we suppress the ASSERT.
//gosASSERT( !InsideBeginScene || !(FillZ || FillBG) );
//
// Work out size of viewport
@@ -47,11 +47,11 @@ extern DWORD gDisableJoystick;
bool DisablePolling=0;
void CMRestoreEffects( int stick );
// 鉉 - start
// hyun begin
int g_bUseOrgJoy = TRUE;
void (__stdcall *g_pfnRIO_Joy)(DIJOYSTATE& js) = NULL; // Check out Test ..
bool g_bNoWeaponRangeCheck = false;
// 鉉 - end
// hyun end
//
//
// Initialize the DirectInput devices
@@ -479,7 +479,7 @@ extern DWORD EnableDisplayInfo;
if( EnableDisplayInfo==0 ) {
disp:
sprintf(DisplayInfoText, "COIN: %d 코인이래요", g_nCoinCount);
sprintf(DisplayInfoText, "COIN: %d coins", g_nCoinCount);
EnableDisplayInfo = 1;
} else if (EnableDisplayInfo==2) {
if( timeGetTime() < EndDisplayInfoTime+50 ) {
@@ -100,11 +100,11 @@ IDirectDraw7* DDobject = NULL; // Primiary DirectDraw object (for persistant
IDirectDraw7* CurrentDDobject = NULL; // DirectDraw object for rendering (can be the same as DDObject)
IDirectDrawSurface7* ZBufferSurface = NULL; // ZBuffer surface
IDirectDrawSurface7* RefZBufferSurface = NULL; // Referemce rasterizer ZBuffer surface
//
//sanghoon marker
IDirectDrawSurface7* SH_TargetBufferSurface = NULL;
IDirectDrawSurface7* SH_SwirlTexture= NULL;
IDirectDrawSurface7* SH_GameEndTexture= NULL;
//
//sanghoon marker
DDSURFACEDESC2 BackBufferddsd;
//
@@ -167,7 +167,7 @@ float GammaSetting=0.0;
bool UseGammaCorrection=0;
float UserGamma=1.0f;
//¯-begin
//sanghoon begin
bool use_shgui = false;
bool hsh_initialized=false;
bool hsh_mrdev_initialized=false;
@@ -176,7 +176,7 @@ bool hsh_mrdev_initialized=false;
#include "coord.cpp"
//#include "hsh_dxras.cpp"
#include "render.hpp"
//¯-end
//sanghoon end
//
// Value range 0-10,000, default 750 (See DirectX docs)
@@ -1021,11 +1021,11 @@ void EnterFullScreenMode()
//
#ifdef LAB_ONLY
//¯
//sanghoon
wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );
wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
#else
//¯
//sanghoon
wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );
wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
#endif
@@ -1127,11 +1127,11 @@ void EnterFullScreenMode()
}
}
//¯-begin
//sanghoon begin
if(use_shgui){
HSH_EnterFullScreen2();
}
//¯-end
//sanghoon end
//
// Changed modes, create all the surfaces
@@ -1164,7 +1164,7 @@ void EnterFullScreenMode()
// Debugging information
//
SPEW(( GROUP_DIRECTDRAW, "EnterFullScreenMode() Finished" ));
//
//sanghoon
}
@@ -1289,7 +1289,7 @@ void DisplayBackBuffer()
else
{
#if 0
//
//sanghoon marker
extern bool sh_game_started;
static FILE* fp=0;
static recorded_count=0;
@@ -1352,11 +1352,11 @@ extern bool sh_game_started;
pp=(double*)malloc(800*600*2);
}
}
//
//sanghoon marker
#endif
wFlip( FrontBufferSurface,NULL,DDFLIP_DONOTWAIT );//|DDFLIP_INTERVAL2 );
// ħ..
//
//sanghoon marker..
//sanghoon
//wFlip( FrontBufferSurface,NULL,DDFLIP_WAIT );
}
}
@@ -1403,11 +1403,11 @@ extern bool sh_game_started;
//
void DirectDrawRelease()
{
//¯-begin
//sanghoon begin
if(use_shgui){
HSH_DirectDrawRelease2();
}
//¯-end
//sanghoon end
SPEW(( GROUP_DIRECTDRAW, "DirectDrawRelease()" ));
SafeFPU();
@@ -1496,7 +1496,7 @@ void DirectDrawRelease()
wRelease( ZBufferSurface );
ZBufferSurface=0;
}
//
//sanghoon marker
//DirectDrawRelease
if( SH_TargetBufferSurface)
{
@@ -1513,7 +1513,7 @@ void DirectDrawRelease()
wRelease( SH_GameEndTexture );
SH_GameEndTexture=0;
}
//
//sanghoon marker
if( GammaControlInterface )
{
wRelease( GammaControlInterface );
@@ -1593,20 +1593,20 @@ void DirectDrawCreateDDObject()
//
// Create the NULL (primary) DirectDraw object
//
//
//sanghoon marker
/*
wDirectDrawCreateEx( &DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
// wDirectDrawCreateEx( &DeviceArray[Environment.FullScreenDevice].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );
CurrentDDobject=DDobject;
*/
// ҽ..
//sanghoon ..
//wDirectDrawCreateEx(&DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
wDirectDrawCreateEx(NULL, (void**)&DDobject, IID_IDirectDraw7, NULL );
wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );
CurrentDDobject=DDobject;
//
//sanghoon marker
//
//
//
@@ -1630,11 +1630,11 @@ bool SetupMode( bool FullScreen, DWORD Renderer )
BackBufferSurface=0;
ClipperObject=0;
ZBufferSurface=0;
//
//sanghoon marker
SH_TargetBufferSurface = 0;
SH_SwirlTexture=0;
SH_GameEndTexture=0;
//
//sanghoon marker
Maind3dDevice7=0;
d3dDevice7=0;
DDSURFACEDESC2 ddsd;
@@ -1993,7 +1993,7 @@ bool SetupMode( bool FullScreen, DWORD Renderer )
}
wAddAttachedSurface( BackBufferSurface, ZBufferSurface );
//
//sanghoon marker
{
DDSURFACEDESC2 rdesc;
memset(&rdesc,0,sizeof(ddsd));
@@ -2019,7 +2019,7 @@ bool SetupMode( bool FullScreen, DWORD Renderer )
if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_SwirlTexture, NULL ))){
;
//ȭؽ .
//Draw texture content to screen. .
}
rdesc.dwFlags = DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE;
@@ -2031,11 +2031,11 @@ bool SetupMode( bool FullScreen, DWORD Renderer )
if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_GameEndTexture, NULL ))){
;
//ȭؽ .
//Draw texture content to screen. .
}
}
//
//sanghoon marker
//
// Get the Z buffer pixel format (nVidia may always match front bit depth)
//
@@ -2258,7 +2258,7 @@ Failed:
wRelease( ZBufferSurface );
ZBufferSurface=0;
}
//
//sanghoon
//SetupMode
if( SH_TargetBufferSurface)
{
@@ -2275,7 +2275,7 @@ Failed:
wRelease( SH_SwirlTexture );
SH_SwirlTexture=0;
}
//
//sanghoon
if( ClipperObject )
{
if( FrontBufferSurface )
@@ -2578,7 +2578,7 @@ void DirectDrawCreateAllBuffers()
wRelease( ZBufferSurface );
ZBufferSurface=0;
}
//
//sanghoon marker
//DirectDrawCreateAllBuffers
if( SH_TargetBufferSurface)
{
@@ -2595,7 +2595,7 @@ void DirectDrawCreateAllBuffers()
wRelease( SH_SwirlTexture );
SH_SwirlTexture=0;
}
//
//sanghoon marker
if( ClipperObject )
{
if( FrontBufferSurface )
@@ -161,7 +161,7 @@ HRESULT wEndScene( IDirect3DDevice7* d3dDevice7 )
//Original
//if( FAILED(result) )
//상훈
//sanghoon
if( FAILED(result) && result!=DDERR_SURFACELOST)
PAUSE(( "FAILED (0x%x - %s) - EndScene()",result,ErrorNumberToMessage(result)));
@@ -834,11 +834,11 @@ __int64 ProfileRenderEnd( __int64 RenderTime )
}
//상훈짱 begin
//sanghoon begin
#include "render.hpp"
HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pddsTexture);
//상훈짱 end
//sanghoon end
//
@@ -915,8 +915,8 @@ void gos_UpdateDisplay( bool Everything )
ProfileTime( TimeClearViewPort, gos_SetupViewport( 0, 0, 1, 0x303050 , 0.0, 0.0, 1.0, 1.0 ) );
TimeInClearViewPort+=TimeClearViewPort;
}
//상훈짱 begin
//backbuffer에 Background Image를 그린다...
//sanghoon begin
//Draw background image to backbuffer...
if(hsh_initialized){
// 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)
@@ -958,7 +958,7 @@ void gos_UpdateDisplay( bool Everything )
}
//HSH_RenderAux1SmallMech();
//상훈짱 end
//sanghoon end
if (g_pfnCTCL_AfterBeginScene) {
(*g_pfnCTCL_AfterBeginScene)();
}
@@ -1055,7 +1055,7 @@ void gos_UpdateDisplay( bool Everything )
LOG_BLOCK("Gos::UpdateDebugger()");
ProfileTime( TimeDebugger, UpdateDebugger() );
}
//상훈..
//sanghoon
#if 1
extern LPDIRECT3DDEVICE7 d3dDevice7;
static bool preload_GameEndScreem=true;;
@@ -1089,8 +1089,8 @@ void gos_UpdateDisplay( bool Everything )
//
// Flip or Blit the current image onto the display
//
//상훈 앞
//Flip을 한다.
//sanghoon begin
//Perform the Flip.
if(hsh_initialized){
// 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)
switch(g_nTypeOfMFDs) {
@@ -1143,7 +1143,7 @@ void gos_UpdateDisplay( bool Everything )
mr_device.pDDSFront->Flip(0,DDFLIP_DONOTWAIT|DDFLIP_NOVSYNC);
}
//상훈 뒤
//sanghoon end
{
LOG_BLOCK("Gos::DisplayBackBuffer()");
ProfileTime( TimeDisplay, DisplayBackBuffer() );
@@ -44,9 +44,9 @@ extern DWORD gNumLockMode;
extern DWORD gCapLockMode;
extern DWORD gScrollLockMode;
// úè - start
// hyun begin
void (__stdcall *g_pfnRIO_ButtonEvent)(BYTE* by) = NULL;
// úè - end
// hyun end
//
//
@@ -106,14 +106,14 @@ LRESULT CALLBACK GameOSWinProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
switch( uMsg )
{
// úè
// hyun
case WM_USER + 100:
{
// úè - start
// hyun begin
if (g_pfnRIO_ButtonEvent) {
(*g_pfnRIO_ButtonEvent)((BYTE*)&lParam);
}
// úè - end
// hyun end
}
break;
//
@@ -163,13 +163,13 @@ static bool IsValidAlphaPair( DIBSECTION& dib,DIBSECTION& diba)
if(dib.dsBmih.biHeight<0 || diba.dsBmih.biHeight<0)return false;
//픽셀 포맷을 일단 만족하는가?
//Does it satisfy the pixel format requirement?
if(!(bm.bmBitsPixel==24 && bma.bmBitsPixel==8))return false;
//비트맵의 크기가 X,Y모두 2의 지수승인가?
//Are the bitmap dimensions (X,Y) both powers of 2?
if(!(IsTextureDimension(w) && IsTextureDimension(h)))return false;
//RGB와 A비트맵의 크기가 같은가?
//Are RGB and Alpha bitmaps the same size?
if(bma.bmWidth!=w || bma.bmHeight!=h)return NULL;
return true;
@@ -408,7 +408,7 @@ bool __cdecl DrawBitmapToSurface(LPDIRECTDRAWSURFACE7 pddsTexture,int x,int y,co
//8Bit Bitmap으로부터.. Alpha를 가진 텍스쳐를 만든다.
//Create texture with Alpha from 8-bit Bitmap..
static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP hbm )
{
BITMAP bm={0,};
@@ -442,7 +442,7 @@ static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP h
LPDIRECTDRAWSURFACE7 CreateATextureFromFile(LPDIRECTDRAW7 pDD, CHAR* strName )
{
//ClipBoard.에 텍스트 내용을 복사한다...
//Copy text content to Clipboard...
/*
OpenClipboard(hWindow);
HGLOBAL h=GlobalAlloc(GMEM_MOVEABLE,512);
@@ -531,7 +531,7 @@ bool CHSH_Device::InitFirst(int devicenum,DWORD resx,DWORD resy, CHSH_Device* pO
pDD = pOtherHSHD->pDD;
} else {
HRESULT hr;
//1. 해상도 변경.
//1. Resolution change.
wDirectDrawCreateEx( &DeviceArray[devicenum].DeviceGUID , (VOID**) &(pDD), IID_IDirectDraw7, NULL );
pDD->SetCooperativeLevel(hWindow, dwFlags );
hr=pDD->SetDisplayMode( resx, resy, 16, 60, 0 );
@@ -846,10 +846,10 @@ void CHSH_Device::DrawThickFrameList(int framecount,RECT* prc,int t,DWORD dwColo
}
//texture 좌표.. u1,v1,u2,v2
//texture 회전축 tx,ty
//screen 회전축 x,y
//회전각 e
//Texture coordinates.. u1,v1,u2,v2
//Texture rotation axis tx,ty
//Screen rotation axis x,y
//Rotation angle e
void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx,float ty,float x,float y,float e,DWORD color)
{
@@ -858,9 +858,9 @@ void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx
float U2=u2-tx;
float V2=v2-ty;
//(U1,V1),(U2,V1),(U1,V2),(U2,V2)네쌍을 회전변환 시킨다.
//(U1,V1),(U2,V1),(U1,V2),(U2,V2) four pairs are rotation-transformed.
//pt[0][0]....
//거기에.. 각 축에..x,y를 더해준다.
//Add x,y to each axis.
float cose=cosf(e);
float cos_u1=cose*U1;
float cos_u2=cose*U2;
@@ -883,11 +883,11 @@ void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx
pt[3][1] = sin_u2+cos_v2+y;
//HSH_Draw3DTexture2(0,pt,0xFF00FF00,u1, v1/256.0f, u2/256.0f, v2/256.0f);
//거기에다가 모두 x,y를 다시 이동 시킨다.
//Then translate all by x,y again.
DrawTexture(pt,color,u1,v1,u2,v2);
}
//임의로 스케일된다. x1,y1,x2,y2
//Scaled arbitrarily. x1,y1,x2,y2
void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor, float u1,float v1,float u2,float v2)
{
@@ -900,7 +900,7 @@ void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor,
pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX ,v,4,0 );
}
//임의로 스케일된다. x,y,width,height
//Scaled arbitrarily. x,y,width,height
void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, float u1,float v1,float u2,float v2)
{
@@ -914,7 +914,7 @@ void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, fl
}
//스케일 되지 않는....
//Not scaled....
void CHSH_Device::DrawTexture(float x,float y,DWORD dwColor, float u1,float v1,float u2,float v2)
{
D3DTLVERTEX v[4];
@@ -978,11 +978,11 @@ bool CMR_Device::InitFirst()
bool CMR_Device::InitSecond()
{
map_loaded=false;
CHSH_Device::InitSecond(0,0); // no off screen - Target Texture를 그리지 않는다.
CHSH_Device::InitSecond(0,0); // no off screen - do not create Target Texture.
char temppath[MAX_PATH],temppatha[MAX_PATH];
//1. 백그라운드이미지용 Surface
//1. Surface for background image
sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_background.bmp");
pDDSBackground=CreateSurfaceFromFile(pDD,temppath);
@@ -990,12 +990,12 @@ bool CMR_Device::InitSecond()
MessageBeep(0);
}
//2. 범용 텍스쳐
//2. General-purpose texture
sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_texture.bmp");
sprintf(temppatha,"%s\\hsh\\%s",AssetsDirectory1,"mr_texturea.bmp");
pDDSTexture=CreateRGBATextureFromFile(pDD, temppath,temppatha,16);
//3. 맵용 텍스쳐..
//3. Texture for map..
pDDSMapTexture=CreatePixelFormatTexture(pDD,256,256,&DDPF_R5G6B5);
tw=256;
@@ -1008,17 +1008,17 @@ bool CMR_Device::InitSecond()
bool CMR_Device::BeginScene()
{
//Render Target을 설정한다.
//Set the Render Target.
//SetRenderTargetTexture();
//Texture에.. background image를 그린다. 일종의 Clear대신이다..
//Draw background image to Texture. Used as a substitute for Clear..
if(sh_game_started){
//게임이 시작되었을때만 백그라운드를 그린다.
//Draw background only when game has started.
RECT rc={0,0,640,480};
pDDSBack->BltFast(0,0,pDDSBackground,&rc,0);
}else{
//게임이 시작되지 않았으면.. blank를 보여준다.
//If game has not started.. show blank.
pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);
}
@@ -1171,18 +1171,18 @@ bool CRadar_Device::InitSecond()
bool CRadar_Device::BeginScene()
{
//Render Target을 설정한다.
//Set the Render Target.
SetRenderTargetTexture();
//Texture에.. background image를 그린다. 일종의 Clear대신이다..
//Draw background image to Texture. Used as a substitute for Clear..
if(sh_game_started){
//게임이 시작되었을때만 백그라운드를 그린다.
//Draw background only when game has started.
RECT rc={0,0,480,640};
pDDSTarget->BltFast(0,0,pDDSBackground,&rc,0);
if(IsMechShutdown())
{
//지도 영역을 지운다.
//Clear map area.
RECT rc={140,407,340,607};
DDBLTFX fx={0,};
@@ -1192,15 +1192,15 @@ bool CRadar_Device::BeginScene()
pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);
}
}else{
//게임이 시작되지 않았으면.. blank를 보여준다.
//If game has not started.. show blank.
pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);
}
pD3DDevice->BeginScene();
if(sh_game_started && IsMechShutdown()){
//shut down button을 그린다.
//Draw shutdown button.
int state[12]={0,2,0,};
state[3]=recent_state[3];//flush state는.. 최근 값을 가져다 쓴다.
state[11]=recent_state[11];//flush state는.. 최근 값을 가져다 쓴다.
state[3]=recent_state[3];//flush state: use the most recent value.
state[11]=recent_state[11];//flush state: use the most recent value.
if (!g_aaRadarText[0][0])
strcpy(&g_aaRadarText[0][0], g_szRadarJumpjet);
strcpy(&g_aaRadarText[1][0], g_szRadarStartup);
@@ -1294,7 +1294,7 @@ POINTF radar_text_pos[12]={
//state 1:ready
//state 2:activated
//pilot mode에서는 다른 의미를 갖는다.
//Has a different meaning in pilot mode.
bool CRadar_Device::DrawBackText(int state[12])
{
@@ -1394,12 +1394,12 @@ bool CMFD_Device::InitSecond()
{
CHSH_Device::InitSecond(1024,512); // 640 x 480
if(g_f3dtarget){
pDDSMechTexture=CreatePixelFormatTexture(pDD,128,128,&DDPF_R5G6B5);//3D메크 이미지 저장하기 위한 텍스쳐...
pDDSMechTexture=CreatePixelFormatTexture(pDD,128,128,&DDPF_R5G6B5);//Texture for storing 3D mech image...
}else{
// MSL 5.02 Target MFD Image
// pDDSMechTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R5G6B5);//2D메크 이미지 저장하기 위한 텍스쳐...
pDDSMechTexture=CreatePixelFormatTexture(pDD,1024,1024,&DDPF_R5G6B5);//2D메크 이미지 저장하기 위한 텍스쳐...
//모든 메크의 이미지를 저장한다.
// pDDSMechTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R5G6B5);//texture for storing 2D mech image...
pDDSMechTexture=CreatePixelFormatTexture(pDD,1024,1024,&DDPF_R5G6B5);//Texture for storing 2D mech image...
//Store images for all mechs.
for(int mech=0;mech<ARRAYSIZE(mechnames);mech++){
// MSL 5.02 Target MFD Image
// int x=(mech%4)*128;
@@ -1415,8 +1415,8 @@ bool CMFD_Device::InitSecond()
}
//if(pDDSMechTexture==NULL)MessageBeep(0);
//pDDSMechTexture=0;
//pDDSDamageTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R4G4B4A4);//데미지.. 이미지를..
pDDSDamageTexture=0;//Reset할때.. 새로이 만든다... 지금은 굳이 만들 필요 없다.
//pDDSDamageTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R4G4B4A4);//damage image..
pDDSDamageTexture=0;//On Reset: recreated... no need to create now.
// MSL 5.03 Target Damage Display
pDDSTargetTexture=0;
@@ -1491,7 +1491,7 @@ bool CMFD_Device::BeginChannel(DWORD channel)
}
ch=channel;
//Render Target을 설정한다.
//Set the Render Target.
SetRenderTargetTexture();
pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,0,0);
pD3DDevice->BeginScene();
@@ -1562,7 +1562,7 @@ bool CMFD_Device::EndChannel()
//color = 0xFFFFFFFF;
D3DTLVERTEX Vertices[4]; // Vertices for the cube
float w=(float)size_back.cx/2;//<==주의: 이점이 radar와 다른점이다.
float w=(float)size_back.cx/2;//<==NOTE: this differs from radar.
float x1=(ch/3)*w;
float x2=x1+w;
float h=(float)size_back.cy;
@@ -1633,7 +1633,7 @@ bool CMFD_Device::BeginScene()
}
pD3DDevice->BeginScene();
if(sh_game_started) {
//게임이 시작되었을때만.. 배경을 그린다.
//Draw background only when game has started..
DrawMFDBackGrid();
}
pD3DDevice->EndScene();
@@ -1775,7 +1775,7 @@ bool CMFD_Device::DrawMFDBackTextAux3(int state)
POINTF &tc = mfd_text_coord[i];
if(i!=4){
pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFFFFFFFF,mfd_text_weapon[i],TEXTALIGN_ORG);
}else{//chain fire 표시
}else{//display chain fire
DrawQuad((int)tc.x-80,(int)tc.y-20,(int)tc.x+80,(int)tc.y+20,0xFFFFFFFF);
pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFF000000,mfd_text_weapon[i],TEXTALIGN_ORG);
}
@@ -1889,20 +1889,20 @@ enum {TEAMORDER_NONE, TEAM_MODE, FREEFORALL_MODE, TEAM_MESSAGE1, TEAM_MESSAGE2};
bool CMFD_Device::DrawMFDDefaultBackAux1(int state)
{
if(state==TEAM_MODE){
//메크들의 상태를 보여준다.
//Show mech status.
DrawQuad(0,240-1,640,240+1,0xFFFFFFFF);
DrawQuad(160-1,0,160+1,240,0xFFFFFFFF);
DrawQuad(320-1,0,320+1,240,0xFFFFFFFF);
DrawQuad(480-1,0,480+1,240,0xFFFFFFFF);
}else if(state==FREEFORALL_MODE){
DrawQuadList(8,aux1freequads,0xFFFFFFFF);
}else if(state==TEAM_MESSAGE1){//이걸로서 더이상 그릴것이 없다.
}else if(state==TEAM_MESSAGE1){//nothing more to draw.
DrawMFDBackText(mfd_text_comm2);
for(int i=0;i<7;i++){
int y=80+i*40;
pFont[0].DrawText(80,(float)y,0xFFFFFFFF,&aux1_messages[i][0],0);
}
}else if(state==TEAM_MESSAGE2){//이걸로서 더이상 그릴것이 없다.
}else if(state==TEAM_MESSAGE2){//nothing more to draw.
DrawMFDBackText(mfd_text_comm2);
for(int i=0;i<7;i++){
int y=80+i*40;
@@ -2025,9 +2025,9 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
DWORD x = 0;
DWORD y = 0;
char str[4] = {0,};//DWORD align시키기 위해서..(원래는 2를 쓰면된다.)
char str[4] = {0,};//For DWORD alignment.. (originally 2 would suffice.)
SIZE size;
m_dwMaxWidth=0;//최소값으로 초기화한다.
m_dwMaxWidth=0;//Initialize to minimum value.
for( char c=32; c<127; c++ ){
str[0] = c;
@@ -2037,11 +2037,11 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
x = 0;
y += size.cy+1;
}
if(size.cx>(int)m_dwMaxWidth){//문자 하나중 가장 큰것..
if(size.cx>(int)m_dwMaxWidth){//widest single character..
m_dwMaxWidth=size.cx;
}
//j i의 영역을 침범한다. 적절한 조치를 취할것...
//j invades the region of i. Take appropriate action...
ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );
m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;
@@ -2073,7 +2073,7 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
DeleteDC( hDC );
DeleteObject( hFont );
//////StateBlock관련..
//////StateBlock related..
for( UINT which=0; which<2; which++ ){
m_pd3dDevice->BeginStateBlock();
m_pd3dDevice->SetTexture( 0, m_pTexture );
@@ -2114,9 +2114,9 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
DWORD x = 0;
DWORD y = 0;
char str[4] = {0,};//DWORD align시키기 위해서..(원래는 2를 쓰면된다.)
char str[4] = {0,};//For DWORD alignment.. (originally 2 would suffice.)
SIZE size;
m_dwMaxWidth=0;//최소값으로 초기화한다.
m_dwMaxWidth=0;//Initialize to minimum value.
for( char c=32; c<127; c++ ){
str[0] = c;
@@ -2126,11 +2126,11 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
x = 0;
y += size.cy+1;
}
if(size.cx>(int)m_dwMaxWidth){//문자 하나중 가장 큰것..
if(size.cx>(int)m_dwMaxWidth){//widest single character..
m_dwMaxWidth=size.cx;
}
//j i의 영역을 침범한다. 적절한 조치를 취할것...
//j invades the region of i. Take appropriate action...
ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );
m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;
@@ -2161,7 +2161,7 @@ void CHSHFont::Init(LPDIRECTDRAW7 pDD, LPDIRECT3DDEVICE7 pd3dDevice ,const char*
DeleteDC( hDC );
DeleteObject( hFont );
//////StateBlock관련..
//////StateBlock related..
for( UINT which=0; which<2; which++ ){
m_pd3dDevice->BeginStateBlock();
m_pd3dDevice->SetTexture( 0, m_pTexture );
@@ -2191,7 +2191,7 @@ void CHSHFont::Cleanup()
}
SAFE_RELEASE( m_pTexture );
SAFE_RELEASE( m_pd3dDevice );
}//m_pd3dDevice==NULL이면 아무것도 하지 않는다.
}//If m_pd3dDevice==NULL, do nothing.
}
HRESULT CHSHFont::GetTextExtent(const char* strText, SIZE* pSize )
@@ -2240,12 +2240,12 @@ HRESULT CHSHFont::DrawText( float sx, float sy, DWORD dwColor,const char* strTex
DWORD dwNumVtx = 0;
D3DTLVERTEX * pVertices =m_pVB;
char c;
float osx=sx;//원래의 sx;
float h = (m_fTexCoords[0][3]-m_fTexCoords[0][1]) * m_dwTexHeight ;//한글자의 높이는 모두 동일할 것이다.
float osx=sx;//original sx;
float h = (m_fTexCoords[0][3]-m_fTexCoords[0][1]) * m_dwTexHeight ;//Height of each character should all be the same.
while( (c = *strText++)!=0 ){
if( c == '\n')sy+=h,sx=osx;//여러줄을 표시할때...
if( c == '\n')sy+=h,sx=osx;//when displaying multiple lines...
if( c < ' ' )continue;
@@ -2274,7 +2274,7 @@ HRESULT CHSHFont::DrawText( float sx, float sy, DWORD dwColor,const char* strTex
sx += w;
}
//나머지 것들을 그린다.
//Draw the remaining items.
if(dwNumVtx> 0 ){
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );
}
@@ -2342,7 +2342,7 @@ HRESULT CHSHFont::DrawTextMultiLine( float sx, float sy, DWORD dwColor,const cha
break;
}
char string[128];//최대값을 임의로 정한다.
char string[128];//Max length set arbitrarily.
strcpy(string,strText);
char * seps="\n";
char * token;
@@ -2377,7 +2377,7 @@ HRESULT CHSHFont::DrawTextVerticalOrg( float sx, float sy, DWORD dwColor,const c
float h = (float)((m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight);
float w = (float)m_dwMaxWidth;
//가로 쓰기라고 가정했을때의 명칭이다.
//Name assuming horizontal (left-to-right) text layout.
int col_count=0;//maximum column count
int row_count=1;
@@ -2395,7 +2395,7 @@ HRESULT CHSHFont::DrawTextVerticalOrg( float sx, float sy, DWORD dwColor,const c
ccount++;
if(ccount>col_count)col_count=ccount;//update the max value
}
//여기서는 새로 쓰기일때의 크기이다.
//This is the size when writing from scratch.
SIZE size;
size.cx=(int)(row_count*w);
size.cy=(int)(col_count*h);
@@ -2408,7 +2408,7 @@ HRESULT CHSHFont::DrawTextVerticalOrg( float sx, float sy, DWORD dwColor,const c
m_pd3dDevice->ApplyStateBlock( m_dwDrawTextStateBlock );
m_pd3dDevice->SetTexture(0,m_pTexture);
char string[128];//최대값을 임의로 정한다.
char string[128];//Max length set arbitrarily.
strcpy(string,strText);
char * seps="\n";
char * token;
@@ -2416,7 +2416,7 @@ HRESULT CHSHFont::DrawTextVerticalOrg( float sx, float sy, DWORD dwColor,const c
DWORD dwNumVtx = 0;
D3DTLVERTEX * pVertices =m_pVB;
float osy=sy-size.cy/2;//원래의 sy 가장 높은 좌표..;
float osy=sy-size.cy/2;//original sy: topmost coordinate..;
sx=sx-size.cx/2;
@@ -2456,7 +2456,7 @@ HRESULT CHSHFont::DrawTextVerticalOrg( float sx, float sy, DWORD dwColor,const c
token = strtok( NULL, seps );
}
//나머지 것들을 그린다.
//Draw the remaining items.
if(dwNumVtx> 0 ){
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );
}
@@ -2506,20 +2506,20 @@ int __cdecl CopyTargetImage(int stage,LPDIRECTDRAWSURFACE7 tex,int step)
if(stage==1){
if(inited){
//normal function
//성능상의 이유로.. 맨처음에 두었음..
//Placed at the top for performance reasons..
RECT rc={0,0,128,128};
LONG lPitch;
LPDWORD agp_org,agp,pci_org,pci,mem;
int x,y;
int sx=0,sy=10,ex=120,ey=112;
//int hy=ey-sy;//높이.
//int hy=ey-sy;//height.
// if(1<=sh_step&&sh_step<=3){
//1. AGP->MEM
//int h=(sh_step-1)*hy/3;//세그먼트 오프셋..
//int h=(sh_step-1)*hy/3;//segment offset..
mem=mem_org;
agp_org=(DWORD*)GetSurfacePointer(SH_TargetBufferSurface,rc,lPitch,DDLOCK_READONLY );
if(agp_org!=NULL){
if(lPitch%4==0){// DWORD align됐을때만 실행한다.
if(lPitch%4==0){// execute only when DWORD aligned.
for(y=sy;y<ey;y++){
agp=agp_org+lPitch/4*y;
mem=mem_org+128*2/4*y;
@@ -2552,7 +2552,7 @@ int __cdecl CopyTargetImage(int stage,LPDIRECTDRAWSURFACE7 tex,int step)
mem=mem_org;
pci_org=(DWORD*)GetSurfacePointer(texture,rc,lPitch,DDLOCK_WRITEONLY );
if(pci_org){
if(lPitch%4==0){// DWORD align됐을때만 실행한다.
if(lPitch%4==0){// execute only when DWORD aligned.
for(y=sy;y<ey;y++){
pci=pci_org+lPitch/4*y;
mem=mem_org+128*2/4*y;
@@ -2593,16 +2593,16 @@ int __cdecl CopyTargetImage(int stage,LPDIRECTDRAWSURFACE7 tex,int step)
// Full Screen
//_____________________________________________________________________________________________________
//전에 SCREENS와 유사한 역할을 한다
//command line paramemer에 의해 정해지고 이후에는 변하지 않는다.
//Previously served a role similar to SCREENS
//Set by command line parameter and does not change thereafter.
bool use_multimonitor;
//보통 true이다.. 그러나 window모드로 들어가면.. false가된다.
//true이면.. 각종 드로딩 루틴을 그리고 false를 일때는 일체 하지 않는다.
//Normally true.. but becomes false when entering windowed mode..
//If true.. runs all drawing routines; if false, does nothing.
bool draw_mfd_huds;
//window모드가 되었을때 무조건 true가 되도록한다.(현재에는..)
//멀티모디터 드로잉과는 관계없다.
//Force to true when windowed mode is entered. (currently..)
//Unrelated to multi-monitor drawing.
bool draw_main_huds;
CRadar_Device radar_device;
CMFD_Device mfd_device;
@@ -2719,7 +2719,7 @@ void __cdecl DrawSwrling(LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pText
const int segvert=(seg+1)*2;
static D3DTLVERTEX Vertices[seg2][segvert]; // Vertices for the cube
static bool vertices_initialized=false;
//int rcount,scount;//회전 방향 setment수.., 직선 방향 segment..
//int rcount,scount;//num rotation-direction segments, num straight-direction segments..
static float off_z=0;
if(freload){
char temppath[MAX_PATH];
@@ -2745,7 +2745,7 @@ void __cdecl DrawSwrling(LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pText
MakeTorus(Vertices[2],w/2,h/2, 0*f,100*f,seg,0xFF000000,0xFF666666,0.3f,0.5f,0,-500,0,-200);
vertices_initialized=true;
}else{
//초기화 됐을경우는 텍스쳐 좌표를 계속해서 바꾼다.
//If initialized, keep changing texture coordinates.
static float offset=0;
static float off=0;
float bb=sinf(off)*2;
@@ -2774,7 +2774,7 @@ void __cdecl DrawGameEndScreen(LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7
{
static D3DTLVERTEX Vertices[4]; // Vertices for the cube
static bool vertices_initialized=false;
//int rcount,scount;//회전 방향 setment수.., 직선 방향 segment..
//int rcount,scount;//num rotation-direction segments, num straight-direction segments..
static float off_z=0;
if(freload){
extern bool g_bCOOP; // COin OPeration
@@ -2805,7 +2805,7 @@ void __cdecl DrawGameEndScreen(LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7
Vertices[3] = D3DTLVERTEX(D3DVECTOR( (float)w, (float)h, z_pos),1.0f,0xFFFFFFFF,0, 800.0f/1024.0f, 600.0f/1024.0f );
vertices_initialized=true;
}else{
//초기화 됐을경우는 텍스쳐 좌표를 계속해서 바꾼다.
//If initialized, keep changing texture coordinates.
}
pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP ,D3DTOP_MODULATE);
pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1 ,D3DTA_TEXTURE);
@@ -1,4 +1,4 @@
//D3DCOLOR_XXXX정위한다.(d3d8types.h에 정의되어 있으므로. 정의되어있지 않을것이다.
//D3DCOLOR_XXXX macros are defined in d3d8types.h and will not be redefined here.
#ifndef D3DCOLOR_ARGB
#define D3DCOLOR_ARGB(a,r,g,b) (D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
@@ -44,10 +44,10 @@ enum AUX1STATE
#define AUX1_TEAM_MESSAGE 2
#define AUX1_FREE_MESSAGE 3
//각 디바이스마다.., 각 폰트 종류(typeface,크기,굴기,기울기)가 달라질때 마다 하나씩 생성시켜 사용하면 된다.
//Create one instance per device per font type (typeface, size, bold, italic).
class CHSHFont
{
//일시적으로 사용되고.. 각 instance마다 사용되어질 필요가 없으므로 static으로 하였다.
//Used temporarily; no need per instance, so declared static.
static D3DTLVERTEX m_pVB[300];
LPDIRECT3DDEVICE7 m_pd3dDevice;
@@ -59,7 +59,7 @@ class CHSHFont
DWORD m_dwSavedStateBlock;
DWORD m_dwDrawTextStateBlock;
DWORD m_dwMaxWidth;//문자 하나중 가장 큰것..
DWORD m_dwMaxWidth;//Width of the widest single character..
public:
CHSHFont();
~CHSHFont();
@@ -80,10 +80,10 @@ public:
CHSH_Device* m_pOtherHSHD;
public:
LPDIRECTDRAW7 pDD;
LPDIRECTDRAWSURFACE7 pDDSFront; //Flip을 하기위해서 필요..
LPDIRECTDRAWSURFACE7 pDDSBack; //Drawing하기 위해서 필요.
LPDIRECTDRAWSURFACE7 pDDSTarget; //실제 그리는 텍스쳐 이다.
LPDIRECTDRAWSURFACE7 pDDSTexture; //실제 그리는 텍스쳐 이다.
LPDIRECTDRAWSURFACE7 pDDSFront; //Required for Flip..
LPDIRECTDRAWSURFACE7 pDDSBack; //Required for Drawing.
LPDIRECTDRAWSURFACE7 pDDSTarget; //The actual rendering texture.
LPDIRECTDRAWSURFACE7 pDDSTexture; //The actual rendering texture.
LPDIRECT3DDEVICE7 pD3DDevice;
CHSHFont pFont[4];
SIZE size_back;
@@ -141,7 +141,7 @@ public:
bool InitFirst();
bool InitSecond();
LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface
LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//메크 데미지 텍스쳐..
LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//Mech damage texture..
// MSL 5.03 Mechview
LPDIRECTDRAWSURFACE7 pDDSMechViewBkgnd;
LPDIRECTDRAWSURFACE7 pDDSMechViewBeagle;
@@ -151,7 +151,7 @@ public:
LPDIRECTDRAWSURFACE7 pDDSMechViewLightamp;
LPDIRECTDRAWSURFACE7 m_pDDSMechView; //m x n - tiled 3D MechView images
virtual bool BeginScene(); //texture를 ratate시켜서 출력하기 위한 루틴이 포함된다.. background이미지를.. 미리 출력한다...
virtual bool BeginScene(); //Rotates and outputs texture; pre-renders background image...
virtual bool EndScene();
virtual bool Release();
bool LoadRadarDamageTexture(const char *mechtexturename);
@@ -163,10 +163,10 @@ class CMFD_Device:public CHSH_Device
{
public:
//CHSHFont SmallFont;
LPDIRECTDRAWSURFACE7 pDDSMechTexture;//3D메크 이미지 저장하기 위한 텍스쳐...
LPDIRECTDRAWSURFACE7 pDDSDamageTexture;//메크 데미지 텍스쳐..
LPDIRECTDRAWSURFACE7 pDDSMechTexture;//Texture for storing 3D mech image...
LPDIRECTDRAWSURFACE7 pDDSDamageTexture;//Mech damage texture..
// MSL 5.03 Target Damage Display
LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//메크 데미지 텍스쳐..
LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//Target damage texture..
DWORD ch; //current channel....
CHSH_Device* m_pRightDevice; // mode 4: pointer to right 640x480 device (NULL in modes 1-3)
@@ -175,11 +175,11 @@ public:
~CMFD_Device();
bool InitFirst();
bool InitSecond();
bool BeginChannel(DWORD channel);// 0~4번의 채널을 정할 수 있게된다.
bool BeginChannel(DWORD channel);// Select channel 0-4.
bool EndChannel();
virtual bool BeginScene(); //normal한 beginscene/endscene를 한다.
virtual bool BeginScene(); //Performs normal BeginScene/EndScene.
bool BeginSceneRight(); // mode 4: clear+grid on right device at sh_step==1
virtual bool EndScene(); //flip을 한다.
virtual bool EndScene(); //Performs the Flip.
virtual bool Release();
bool LoadDamageTexture(const char *mechtexturename);
// MSL 5.03 Target Damage Display
@@ -214,10 +214,10 @@ public:
bool InitFirst();
bool InitSecond();
LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface
LPDIRECTDRAWSURFACE7 pDDSMapTexture; //스크롤되는 맵 이미지를 위한 텍스쳐..
LPDIRECTDRAWSURFACE7 pDDSMRTargetTexture;//메크 데미지 텍스쳐..
LPDIRECTDRAWSURFACE7 pDDSMapTexture; //Texture for scrollable map image..
LPDIRECTDRAWSURFACE7 pDDSMRTargetTexture;//Mission Review target texture..
bool LoadMRTargetTexture(const char *mechtexturename);
virtual bool BeginScene(); //texture를 ratate시켜서 출력하기 위한 루틴이 포함된다.. background이미지를.. 미리 출력한다...
virtual bool BeginScene(); //Rotates and outputs texture; pre-renders background image...
virtual bool EndScene();
virtual bool Release();
};
@@ -71,7 +71,7 @@ INTERNET_STATUS_STATE_CHANGE
INTERNET_STATE_DISCONNECTED_BY_USER
Disconnected by user request.
INTERNET_STATE_IDLE
No network requests are being made by the Win32® Internet functions.
No network requests are being made by the Win32® Internet functions.
INTERNET_STATE_BUSY
Network requests are being made by the Win32 Internet functions.
INTERNET_STATUS_USER_INPUT_REQUIRED