From 92aaedfcbb2edf03bc5548899bd1913a0869c5df Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 18 Jul 2026 13:17:33 -0500 Subject: [PATCH] Add Korean translation diff HTML for documentation korean_diff.html: side-by-side GitHub-style diff of all 171 source files changed in the Korean->English translation commit (af416960). Shows the original EUC-KR/CP949 Korean text on the left and the English replacement on the right, including the UTF-8 encoding cleanup changes. Generated from: git diff HEAD~1..HEAD (af416960) for documentation/ review purposes. Not a build input. --- korean_diff.html | 5831 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5831 insertions(+) create mode 100644 korean_diff.html diff --git a/korean_diff.html b/korean_diff.html new file mode 100644 index 00000000..bfa68740 --- /dev/null +++ b/korean_diff.html @@ -0,0 +1,5831 @@ + +Korean Translation Diff + + +
+

Gameleap/code/CoreTech/Code/GosView1/GosTracePane.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1// GosTracePane.cpp : implementation file1// GosTracePane.cpp : implementation file
2//2//
33
... 100 unchanged lines ...
104 else104 else
105 if( secs*1000000.f >= 1.0f )105 if( secs*1000000.f >= 1.0f )
106 {106 {
107 sprintf(TimeStr,"%.2f 킪", secs*1000000.f);107 sprintf(TimeStr,"%.2f us", secs*1000000.f);
108 }108 }
109 else109 else
110 {110 {
... 600 unchanged lines ...
711 pCmdUI->Enable( m_nLineThickness != 2 );711 pCmdUI->Enable( m_nLineThickness != 2 );
712712
713}713}
+
+

Gameleap/code/CoreTech/Code/GosView1/ZoomDialog.cpp

+
+3 -3 lines changed
+ + + + + + + + + + + + + + + + + + +
1// ZoomDialog.cpp : implementation file1// ZoomDialog.cpp : implementation file
2//2//
33
... 20 unchanged lines ...
24 "1nS / div", // 10^-924 "1nS / div", // 10^-9
25 "10nS / div", // 10^-825 "10nS / div", // 10^-8
26 "100nS / div",26 "100nS / div",
27 "1킪 / div",27 "1us / div",
28 "10킪 / div",28 "10us / div",
29 "100킪 / div",29 "100us / div",
30 "1mS / div",30 "1mS / div",
31 "10mS / div",31 "10mS / div",
32 "100mS / div",32 "100mS / div",
... 122 unchanged lines ...
155155
156156
157157
+
+

Gameleap/code/CoreTech/Code/GosView2/GosTracePane.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1// GosTracePane.cpp : implementation file1// GosTracePane.cpp : implementation file
2//2//
33
... 100 unchanged lines ...
104 else104 else
105 if( secs*1000000.f >= 1.0f )105 if( secs*1000000.f >= 1.0f )
106 {106 {
107 sprintf(TimeStr,"%.2f 킪", secs*1000000.f);107 sprintf(TimeStr,"%.2f us", secs*1000000.f);
108 }108 }
109 else109 else
110 {110 {
... 600 unchanged lines ...
711 pCmdUI->Enable( m_nLineThickness != 2 );711 pCmdUI->Enable( m_nLineThickness != 2 );
712712
713}713}
+
+

Gameleap/code/CoreTech/Code/GosView2/ZoomDialog.cpp

+
+3 -3 lines changed
+ + + + + + + + + + + + + + + + + + +
1// ZoomDialog.cpp : implementation file1// ZoomDialog.cpp : implementation file
2//2//
33
... 20 unchanged lines ...
24 "1nS / div", // 10^-924 "1nS / div", // 10^-9
25 "10nS / div", // 10^-825 "10nS / div", // 10^-8
26 "100nS / div",26 "100nS / div",
27 "1킪 / div",27 "1us / div",
28 "10킪 / div",28 "10us / div",
29 "100킪 / div",29 "100us / div",
30 "1mS / div",30 "1mS / div",
31 "10mS / div",31 "10mS / div",
32 "100mS / div",32 "100mS / div",
... 122 unchanged lines ...
155155
156156
157157
+
+

Gameleap/code/CoreTech/Libraries/GameOS/3DRasterizer.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//===========================================================================//2//===========================================================================//
3// File: 3DRasterizer.cpp //3// File: 3DRasterizer.cpp //
... 1028 unchanged lines ...
1032// You can only clear the backbuffer or Z buffer on the FIRST setup viewport (outside the Begin/End Scene1032// You can only clear the backbuffer or Z buffer on the FIRST setup viewport (outside the Begin/End Scene
1033//1033//
10341034
1035//상훈 앞1035//sanghoon begin
1036void __cdecl ClearTargetCameraBackBuffer()1036void __cdecl ClearTargetCameraBackBuffer()
1037{1037{
1038 D3DRECT rc={0,10,120,112};1038 D3DRECT rc={0,10,120,112};
1039 wClear(d3dDevice7,1,&rc,D3DCLEAR_TARGET,0xFF00FFFF,0,0);1039 wClear(d3dDevice7,1,&rc,D3DCLEAR_TARGET,0xFF00FFFF,0,0);
1040 return ;1040 return ;
1041}1041}
1042//상훈 뒤1042//sanghoon end
10431043
1044void __stdcall gos_SetupViewport( bool FillZ, float ZBuffer, bool FillBG, DWORD BGColor, float top, float left, float bottom, float right, bool ClearStencil, DWORD StencilValue )1044void __stdcall gos_SetupViewport( bool FillZ, float ZBuffer, bool FillBG, DWORD BGColor, float top, float left, float bottom, float right, bool ClearStencil, DWORD StencilValue )
1045{1045{
1046 //상훈짱...1046 //sanghoon
1047 //원래의 법칙에 어긋나는 행동이기 때문에 ASSERT를 무시한다.1047 //This violates the normal rules, so we suppress the ASSERT.
1048 //gosASSERT( !InsideBeginScene || !(FillZ || FillBG) );1048 //gosASSERT( !InsideBeginScene || !(FillZ || FillBG) );
1049//1049//
1050// Work out size of viewport1050// Work out size of viewport
... 226 unchanged lines ...
12771277
12781278
12791279
+
+

Gameleap/code/CoreTech/Libraries/GameOS/ControlManager.cpp

+
+3 -3 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//===========================================================================//2//===========================================================================//
3// File: ControlManager.cpp //3// File: ControlManager.cpp //
... 43 unchanged lines ...
47bool DisablePolling=0;47bool DisablePolling=0;
48void CMRestoreEffects( int stick );48void CMRestoreEffects( int stick );
4949
50// 鉉 - start50// hyun begin
51int g_bUseOrgJoy = TRUE;51int g_bUseOrgJoy = TRUE;
52void (__stdcall *g_pfnRIO_Joy)(DIJOYSTATE& js) = NULL; // Check out Test ..52void (__stdcall *g_pfnRIO_Joy)(DIJOYSTATE& js) = NULL; // Check out Test ..
53bool g_bNoWeaponRangeCheck = false;53bool g_bNoWeaponRangeCheck = false;
54// 鉉 - end54// hyun end
55//55//
56//56//
57// Initialize the DirectInput devices57// Initialize the DirectInput devices
... 421 unchanged lines ...
479479
480 if( EnableDisplayInfo==0 ) {480 if( EnableDisplayInfo==0 ) {
481disp:481disp:
482 sprintf(DisplayInfoText, "COIN: %d 코인이래요", g_nCoinCount);482 sprintf(DisplayInfoText, "COIN: %d coins", g_nCoinCount);
483 EnableDisplayInfo = 1;483 EnableDisplayInfo = 1;
484 } else if (EnableDisplayInfo==2) {484 } else if (EnableDisplayInfo==2) {
485 if( timeGetTime() < EndDisplayInfoTime+50 ) {485 if( timeGetTime() < EndDisplayInfoTime+50 ) {
... 401 unchanged lines ...
887 }887 }
888 }888 }
889}889}
+
+

Gameleap/code/CoreTech/Libraries/GameOS/DXRasterizer.cpp

+
+30 -30 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//2//
3//===========================================================================//3//===========================================================================//
... 96 unchanged lines ...
100IDirectDraw7* CurrentDDobject = NULL; // DirectDraw object for rendering (can be the same as DDObject)100IDirectDraw7* CurrentDDobject = NULL; // DirectDraw object for rendering (can be the same as DDObject)
101IDirectDrawSurface7* ZBufferSurface = NULL; // ZBuffer surface101IDirectDrawSurface7* ZBufferSurface = NULL; // ZBuffer surface
102IDirectDrawSurface7* RefZBufferSurface = NULL; // Referemce rasterizer ZBuffer surface102IDirectDrawSurface7* RefZBufferSurface = NULL; // Referemce rasterizer ZBuffer surface
103//占쏙옙占쏙옙 占쏙옙103//sanghoon marker
104IDirectDrawSurface7* SH_TargetBufferSurface = NULL;104IDirectDrawSurface7* SH_TargetBufferSurface = NULL;
105IDirectDrawSurface7* SH_SwirlTexture= NULL;105IDirectDrawSurface7* SH_SwirlTexture= NULL;
106IDirectDrawSurface7* SH_GameEndTexture= NULL;106IDirectDrawSurface7* SH_GameEndTexture= NULL;
107//占쏙옙占쏙옙 占쏙옙107//sanghoon marker
108108
109DDSURFACEDESC2 BackBufferddsd;109DDSURFACEDESC2 BackBufferddsd;
110//110//
... 56 unchanged lines ...
167bool UseGammaCorrection=0;167bool UseGammaCorrection=0;
168float UserGamma=1.0f;168float UserGamma=1.0f;
169169
170//占쏙옙占쏙옙짱-begin170//sanghoon begin
171bool use_shgui = false;171bool use_shgui = false;
172bool hsh_initialized=false;172bool hsh_initialized=false;
173bool hsh_mrdev_initialized=false;173bool hsh_mrdev_initialized=false;
... 2 unchanged lines ...
176#include "coord.cpp"176#include "coord.cpp"
177//#include "hsh_dxras.cpp"177//#include "hsh_dxras.cpp"
178#include "render.hpp"178#include "render.hpp"
179//占쏙옙占쏙옙짱-end179//sanghoon end
180180
181//181//
182// Value range 0-10,000, default 750 (See DirectX docs)182// Value range 0-10,000, default 750 (See DirectX docs)
... 838 unchanged lines ...
1021//1021//
10221022
1023 #ifdef LAB_ONLY1023 #ifdef LAB_ONLY
1024 //占쏙옙占쏙옙짱1024 //sanghoon
1025 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );1025 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );
1026 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );1026 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
1027 #else1027 #else
1028 //占쏙옙占쏙옙짱1028 //sanghoon
1029 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );1029 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_SETFOCUSWINDOW );
1030 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );1030 wSetCooperativeLevel( CurrentDDobject, hWindow, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
1031 #endif1031 #endif
... 95 unchanged lines ...
1127 }1127 }
1128 }1128 }
11291129
1130//占쏙옙占쏙옙짱-begin1130//sanghoon begin
1131 if(use_shgui){1131 if(use_shgui){
1132 HSH_EnterFullScreen2();1132 HSH_EnterFullScreen2();
1133 }1133 }
1134//占쏙옙占쏙옙짱-end1134//sanghoon end
11351135
1136//1136//
1137// Changed modes, create all the surfaces1137// Changed modes, create all the surfaces
... 26 unchanged lines ...
1164// Debugging information1164// Debugging information
1165//1165//
1166 SPEW(( GROUP_DIRECTDRAW, "EnterFullScreenMode() Finished" ));1166 SPEW(( GROUP_DIRECTDRAW, "EnterFullScreenMode() Finished" ));
1167//占쏙옙占쏙옙1167//sanghoon
1168}1168}
11691169
11701170
... 118 unchanged lines ...
1289 else1289 else
1290 {1290 {
1291#if 01291#if 0
1292 //占쏙옙占쏙옙 占쏙옙1292 //sanghoon marker
1293extern bool sh_game_started;1293extern bool sh_game_started;
1294 static FILE* fp=0;1294 static FILE* fp=0;
1295 static recorded_count=0;1295 static recorded_count=0;
... 56 unchanged lines ...
1352 pp=(double*)malloc(800*600*2);1352 pp=(double*)malloc(800*600*2);
1353 }1353 }
1354 }1354 }
1355 //占쏙옙占쏙옙 占쏙옙1355 //sanghoon marker
1356#endif1356#endif
1357 wFlip( FrontBufferSurface,NULL,DDFLIP_DONOTWAIT );//|DDFLIP_INTERVAL2 );1357 wFlip( FrontBufferSurface,NULL,DDFLIP_DONOTWAIT );//|DDFLIP_INTERVAL2 );
1358 //占쏙옙占쏙옙 占쏙옙침..1358 //sanghoon marker..
1359 //占쏙옙占쏙옙1359 //sanghoon
1360 //wFlip( FrontBufferSurface,NULL,DDFLIP_WAIT );1360 //wFlip( FrontBufferSurface,NULL,DDFLIP_WAIT );
1361 }1361 }
1362 }1362 }
... 40 unchanged lines ...
1403//1403//
1404void DirectDrawRelease()1404void DirectDrawRelease()
1405{1405{
1406//占쏙옙占쏙옙짱-begin1406//sanghoon begin
1407 if(use_shgui){1407 if(use_shgui){
1408 HSH_DirectDrawRelease2();1408 HSH_DirectDrawRelease2();
1409 }1409 }
1410//占쏙옙占쏙옙짱-end1410//sanghoon end
14111411
1412 SPEW(( GROUP_DIRECTDRAW, "DirectDrawRelease()" ));1412 SPEW(( GROUP_DIRECTDRAW, "DirectDrawRelease()" ));
1413 SafeFPU();1413 SafeFPU();
... 82 unchanged lines ...
1496 wRelease( ZBufferSurface );1496 wRelease( ZBufferSurface );
1497 ZBufferSurface=0;1497 ZBufferSurface=0;
1498 }1498 }
1499 //占쏙옙占쏙옙 占쏙옙1499 //sanghoon marker
1500 //DirectDrawRelease1500 //DirectDrawRelease
1501 if( SH_TargetBufferSurface)1501 if( SH_TargetBufferSurface)
1502 {1502 {
... 10 unchanged lines ...
1513 wRelease( SH_GameEndTexture );1513 wRelease( SH_GameEndTexture );
1514 SH_GameEndTexture=0;1514 SH_GameEndTexture=0;
1515 }1515 }
1516 //占쏙옙占쏙옙 占쏙옙1516 //sanghoon marker
1517 if( GammaControlInterface )1517 if( GammaControlInterface )
1518 {1518 {
1519 wRelease( GammaControlInterface );1519 wRelease( GammaControlInterface );
... 73 unchanged lines ...
1593//1593//
1594// Create the NULL (primary) DirectDraw object1594// Create the NULL (primary) DirectDraw object
1595//1595//
1596 //占쏙옙占쏙옙 占쏙옙1596 //sanghoon marker
1597 /*1597 /*
1598 wDirectDrawCreateEx( &DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );1598 wDirectDrawCreateEx( &DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
1599// wDirectDrawCreateEx( &DeviceArray[Environment.FullScreenDevice].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );1599// wDirectDrawCreateEx( &DeviceArray[Environment.FullScreenDevice].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
1600 wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );1600 wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );
1601 CurrentDDobject=DDobject;1601 CurrentDDobject=DDobject;
1602 */1602 */
1603 //占쏙옙占쏙옙 占쌀쏙옙..1603 //sanghoon ..
1604 //wDirectDrawCreateEx(&DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );1604 //wDirectDrawCreateEx(&DeviceArray[0].DeviceGUID, (void**)&DDobject, IID_IDirectDraw7, NULL );
1605 wDirectDrawCreateEx(NULL, (void**)&DDobject, IID_IDirectDraw7, NULL );1605 wDirectDrawCreateEx(NULL, (void**)&DDobject, IID_IDirectDraw7, NULL );
16061606
1607 wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );1607 wSetCooperativeLevel( DDobject, hWindow, DDSCL_NORMAL );
1608 CurrentDDobject=DDobject;1608 CurrentDDobject=DDobject;
1609 //占쏙옙占쏙옙 占쏙옙1609 //sanghoon marker
1610//1610//
1611//1611//
1612//1612//
... 17 unchanged lines ...
1630 BackBufferSurface=0;1630 BackBufferSurface=0;
1631 ClipperObject=0;1631 ClipperObject=0;
1632 ZBufferSurface=0;1632 ZBufferSurface=0;
1633 //占쏙옙占쏙옙 占쏙옙1633 //sanghoon marker
1634 SH_TargetBufferSurface = 0;1634 SH_TargetBufferSurface = 0;
1635 SH_SwirlTexture=0;1635 SH_SwirlTexture=0;
1636 SH_GameEndTexture=0;1636 SH_GameEndTexture=0;
1637 //占쏙옙占쏙옙 占쏙옙1637 //sanghoon marker
1638 Maind3dDevice7=0;1638 Maind3dDevice7=0;
1639 d3dDevice7=0;1639 d3dDevice7=0;
1640 DDSURFACEDESC2 ddsd;1640 DDSURFACEDESC2 ddsd;
... 352 unchanged lines ...
1993 }1993 }
1994 wAddAttachedSurface( BackBufferSurface, ZBufferSurface );1994 wAddAttachedSurface( BackBufferSurface, ZBufferSurface );
19951995
1996 //占쏙옙占쏙옙 占쏙옙1996 //sanghoon marker
1997 {1997 {
1998 DDSURFACEDESC2 rdesc;1998 DDSURFACEDESC2 rdesc;
1999 memset(&rdesc,0,sizeof(ddsd));1999 memset(&rdesc,0,sizeof(ddsd));
... 19 unchanged lines ...
20192019
2020 if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_SwirlTexture, NULL ))){2020 if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_SwirlTexture, NULL ))){
2021 ;2021 ;
2022 //화占썽에 占쌔쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙.2022 //Draw texture content to screen. .
2023 }2023 }
20242024
2025 rdesc.dwFlags = DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE;2025 rdesc.dwFlags = DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE;
... 5 unchanged lines ...
20312031
2032 if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_GameEndTexture, NULL ))){2032 if(SUCCEEDED(wCreateSurface( CurrentDDobject, &rdesc, &SH_GameEndTexture, NULL ))){
2033 ;2033 ;
2034 //화占썽에 占쌔쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙.2034 //Draw texture content to screen. .
2035 }2035 }
20362036
2037 }2037 }
2038 //占쏙옙占쏙옙 占쏙옙2038 //sanghoon marker
2039//2039//
2040// Get the Z buffer pixel format (nVidia may always match front bit depth)2040// Get the Z buffer pixel format (nVidia may always match front bit depth)
2041//2041//
... 216 unchanged lines ...
2258 wRelease( ZBufferSurface );2258 wRelease( ZBufferSurface );
2259 ZBufferSurface=0;2259 ZBufferSurface=0;
2260 }2260 }
2261 //占쏙옙占쏙옙2261 //sanghoon
2262 //SetupMode2262 //SetupMode
2263 if( SH_TargetBufferSurface)2263 if( SH_TargetBufferSurface)
2264 {2264 {
... 10 unchanged lines ...
2275 wRelease( SH_SwirlTexture );2275 wRelease( SH_SwirlTexture );
2276 SH_SwirlTexture=0;2276 SH_SwirlTexture=0;
2277 }2277 }
2278 //占쏙옙占쏙옙2278 //sanghoon
2279 if( ClipperObject )2279 if( ClipperObject )
2280 {2280 {
2281 if( FrontBufferSurface )2281 if( FrontBufferSurface )
... 296 unchanged lines ...
2578 wRelease( ZBufferSurface );2578 wRelease( ZBufferSurface );
2579 ZBufferSurface=0;2579 ZBufferSurface=0;
2580 }2580 }
2581 //占쏙옙占쏙옙 占쏙옙2581 //sanghoon marker
2582 //DirectDrawCreateAllBuffers2582 //DirectDrawCreateAllBuffers
2583 if( SH_TargetBufferSurface)2583 if( SH_TargetBufferSurface)
2584 {2584 {
... 10 unchanged lines ...
2595 wRelease( SH_SwirlTexture );2595 wRelease( SH_SwirlTexture );
2596 SH_SwirlTexture=0;2596 SH_SwirlTexture=0;
2597 }2597 }
2598 //占쏙옙占쏙옙 占쏙옙2598 //sanghoon marker
2599 if( ClipperObject )2599 if( ClipperObject )
2600 {2600 {
2601 if( FrontBufferSurface )2601 if( FrontBufferSurface )
... 66 unchanged lines ...
2668 SPEW(( GROUP_DIRECTDRAW, "DirectDrawCreateAllBuffers() Done 3D Setup" ));2668 SPEW(( GROUP_DIRECTDRAW, "DirectDrawCreateAllBuffers() Done 3D Setup" ));
2669}2669}
26702670
+
+

Gameleap/code/CoreTech/Libraries/GameOS/Direct3D.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//===========================================================================//2//===========================================================================//
3// File: Direct3D.cpp //3// File: Direct3D.cpp //
... 157 unchanged lines ...
161161
162 //Original162 //Original
163 //if( FAILED(result) )163 //if( FAILED(result) )
164 //상훈164 //sanghoon
165 if( FAILED(result) && result!=DDERR_SURFACELOST)165 if( FAILED(result) && result!=DDERR_SURFACELOST)
166 PAUSE(( "FAILED (0x%x - %s) - EndScene()",result,ErrorNumberToMessage(result)));166 PAUSE(( "FAILED (0x%x - %s) - EndScene()",result,ErrorNumberToMessage(result)));
167167
... 282 unchanged lines ...
450450
451451
452452
+
+

Gameleap/code/CoreTech/Libraries/GameOS/WinMain.cpp

+
+9 -9 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//===========================================================================//2//===========================================================================//
3// File: WinMain.cpp //3// File: WinMain.cpp //
... 830 unchanged lines ...
834}834}
835835
836836
837//상훈짱 begin837//sanghoon begin
838#include "render.hpp"838#include "render.hpp"
839HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pddsTexture);839HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pddsTexture);
840840
841//상훈짱 end841//sanghoon end
842842
843843
844//844//
... 70 unchanged lines ...
915 ProfileTime( TimeClearViewPort, gos_SetupViewport( 0, 0, 1, 0x303050 , 0.0, 0.0, 1.0, 1.0 ) );915 ProfileTime( TimeClearViewPort, gos_SetupViewport( 0, 0, 1, 0x303050 , 0.0, 0.0, 1.0, 1.0 ) );
916 TimeInClearViewPort+=TimeClearViewPort;916 TimeInClearViewPort+=TimeClearViewPort;
917 }917 }
918 //상훈짱 begin918 //sanghoon begin
919 //backbuffer에 Background Image를 그린다...919 //Draw background image to backbuffer...
920920
921 if(hsh_initialized){921 if(hsh_initialized){
922 // 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)922 // 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)
... 35 unchanged lines ...
958 }958 }
959959
960 //HSH_RenderAux1SmallMech();960 //HSH_RenderAux1SmallMech();
961 //상훈짱 end961 //sanghoon end
962 if (g_pfnCTCL_AfterBeginScene) {962 if (g_pfnCTCL_AfterBeginScene) {
963 (*g_pfnCTCL_AfterBeginScene)();963 (*g_pfnCTCL_AfterBeginScene)();
964 }964 }
... 90 unchanged lines ...
1055 LOG_BLOCK("Gos::UpdateDebugger()");1055 LOG_BLOCK("Gos::UpdateDebugger()");
1056 ProfileTime( TimeDebugger, UpdateDebugger() );1056 ProfileTime( TimeDebugger, UpdateDebugger() );
1057 }1057 }
1058 //상훈..1058 //sanghoon
1059#if 11059#if 1
1060 extern LPDIRECT3DDEVICE7 d3dDevice7;1060 extern LPDIRECT3DDEVICE7 d3dDevice7;
1061 static bool preload_GameEndScreem=true;;1061 static bool preload_GameEndScreem=true;;
... 27 unchanged lines ...
1089//1089//
1090// Flip or Blit the current image onto the display1090// Flip or Blit the current image onto the display
1091//1091//
1092 //상훈 앞1092 //sanghoon begin
1093 //Flip을 한다.1093 //Perform the Flip.
1094 if(hsh_initialized){1094 if(hsh_initialized){
1095 // 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)1095 // 0 - no MFDs, 1 - orginal(5+1=dual & single), 2 - B&W(3 + 1=1 dual), 3 - color(3 + 1=2 dual)
1096 switch(g_nTypeOfMFDs) {1096 switch(g_nTypeOfMFDs) {
... 46 unchanged lines ...
1143 mr_device.pDDSFront->Flip(0,DDFLIP_DONOTWAIT|DDFLIP_NOVSYNC);1143 mr_device.pDDSFront->Flip(0,DDFLIP_DONOTWAIT|DDFLIP_NOVSYNC);
1144 }1144 }
11451145
1146 //상훈 뒤1146 //sanghoon end
1147 {1147 {
1148 LOG_BLOCK("Gos::DisplayBackBuffer()");1148 LOG_BLOCK("Gos::DisplayBackBuffer()");
1149 ProfileTime( TimeDisplay, DisplayBackBuffer() );1149 ProfileTime( TimeDisplay, DisplayBackBuffer() );
... 309 unchanged lines ...
1459 return 0!=TerminateGame;1459 return 0!=TerminateGame;
1460}1460}
14611461
+
+

Gameleap/code/CoreTech/Libraries/GameOS/WinProc.cpp

+
+5 -5 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "pch.hpp"1#include "pch.hpp"
2//===========================================================================//2//===========================================================================//
3// File: WinProc.cpp //3// File: WinProc.cpp //
... 40 unchanged lines ...
44extern DWORD gCapLockMode;44extern DWORD gCapLockMode;
45extern DWORD gScrollLockMode;45extern DWORD gScrollLockMode;
4646
47// 鉉 - start47// hyun begin
48void (__stdcall *g_pfnRIO_ButtonEvent)(BYTE* by) = NULL;48void (__stdcall *g_pfnRIO_ButtonEvent)(BYTE* by) = NULL;
49// 鉉 - end49// hyun end
50//50//
5151
52//52//
... 53 unchanged lines ...
106106
107 switch( uMsg )107 switch( uMsg )
108 {108 {
109 // 鉉109 // hyun
110 case WM_USER + 100:110 case WM_USER + 100:
111 {111 {
112 // 鉉 - start112 // hyun begin
113 if (g_pfnRIO_ButtonEvent) {113 if (g_pfnRIO_ButtonEvent) {
114 (*g_pfnRIO_ButtonEvent)((BYTE*)&lParam);114 (*g_pfnRIO_ButtonEvent)((BYTE*)&lParam);
115 }115 }
116 // 鉉 - end116 // hyun end
117 }117 }
118 break;118 break;
119//119//
... 530 unchanged lines ...
650650
651651
652652
+
+

Gameleap/code/CoreTech/Libraries/GameOS/render.cpp

+
+82 -82 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#define STRICT1#define STRICT
2#define D3D_OVERLOADS2#define D3D_OVERLOADS
3#include <math.h>3#include <math.h>
... 159 unchanged lines ...
163163
164 if(dib.dsBmih.biHeight<0 || diba.dsBmih.biHeight<0)return false;164 if(dib.dsBmih.biHeight<0 || diba.dsBmih.biHeight<0)return false;
165165
166 //픽셀 포맷을 일단 만족하는가?166 //Does it satisfy the pixel format requirement?
167 if(!(bm.bmBitsPixel==24 && bma.bmBitsPixel==8))return false;167 if(!(bm.bmBitsPixel==24 && bma.bmBitsPixel==8))return false;
168168
169 //비트맵의 크기가 X,Y모두 2의 지수승인가?169 //Are the bitmap dimensions (X,Y) both powers of 2?
170 if(!(IsTextureDimension(w) && IsTextureDimension(h)))return false;170 if(!(IsTextureDimension(w) && IsTextureDimension(h)))return false;
171171
172 //RGB와 A비트맵의 크기가 같은가?172 //Are RGB and Alpha bitmaps the same size?
173 if(bma.bmWidth!=w || bma.bmHeight!=h)return NULL;173 if(bma.bmWidth!=w || bma.bmHeight!=h)return NULL;
174174
175 return true;175 return true;
... 232 unchanged lines ...
408408
409409
410410
411//8Bit Bitmap으로부터.. Alpha를 가진 텍스쳐를 만든다.411//Create texture with Alpha from 8-bit Bitmap..
412static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP hbm )412static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP hbm )
413{413{
414 BITMAP bm={0,};414 BITMAP bm={0,};
... 27 unchanged lines ...
442442
443LPDIRECTDRAWSURFACE7 CreateATextureFromFile(LPDIRECTDRAW7 pDD, CHAR* strName )443LPDIRECTDRAWSURFACE7 CreateATextureFromFile(LPDIRECTDRAW7 pDD, CHAR* strName )
444{444{
445 //ClipBoard.에 텍스트 내용을 복사한다...445 //Copy text content to Clipboard...
446/*446/*
447 OpenClipboard(hWindow);447 OpenClipboard(hWindow);
448 HGLOBAL h=GlobalAlloc(GMEM_MOVEABLE,512);448 HGLOBAL h=GlobalAlloc(GMEM_MOVEABLE,512);
... 82 unchanged lines ...
531 pDD = pOtherHSHD->pDD;531 pDD = pOtherHSHD->pDD;
532 } else {532 } else {
533 HRESULT hr;533 HRESULT hr;
534 //1. 해상도 변경.534 //1. Resolution change.
535 wDirectDrawCreateEx( &DeviceArray[devicenum].DeviceGUID , (VOID**) &(pDD), IID_IDirectDraw7, NULL );535 wDirectDrawCreateEx( &DeviceArray[devicenum].DeviceGUID , (VOID**) &(pDD), IID_IDirectDraw7, NULL );
536 pDD->SetCooperativeLevel(hWindow, dwFlags );536 pDD->SetCooperativeLevel(hWindow, dwFlags );
537 hr=pDD->SetDisplayMode( resx, resy, 16, 60, 0 );537 hr=pDD->SetDisplayMode( resx, resy, 16, 60, 0 );
... 308 unchanged lines ...
846}846}
847847
848848
849//texture 좌표.. u1,v1,u2,v2849//Texture coordinates.. u1,v1,u2,v2
850//texture 회전축 tx,ty850//Texture rotation axis tx,ty
851//screen 회전축 x,y851//Screen rotation axis x,y
852//회전각 e852//Rotation angle e
853853
854void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx,float ty,float x,float y,float e,DWORD color)854void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx,float ty,float x,float y,float e,DWORD color)
855{855{
... 2 unchanged lines ...
858 float U2=u2-tx;858 float U2=u2-tx;
859 float V2=v2-ty;859 float V2=v2-ty;
860860
861 //(U1,V1),(U2,V1),(U1,V2),(U2,V2)네쌍을 회전변환 시킨다.861 //(U1,V1),(U2,V1),(U1,V2),(U2,V2) four pairs are rotation-transformed.
862 //pt[0][0]....862 //pt[0][0]....
863 //거기에.. 각 축에..x,y를 더해준다.863 //Add x,y to each axis.
864 float cose=cosf(e);864 float cose=cosf(e);
865 float cos_u1=cose*U1;865 float cos_u1=cose*U1;
866 float cos_u2=cose*U2;866 float cos_u2=cose*U2;
... 16 unchanged lines ...
883 pt[3][1] = sin_u2+cos_v2+y;883 pt[3][1] = sin_u2+cos_v2+y;
884884
885 //HSH_Draw3DTexture2(0,pt,0xFF00FF00,u1, v1/256.0f, u2/256.0f, v2/256.0f);885 //HSH_Draw3DTexture2(0,pt,0xFF00FF00,u1, v1/256.0f, u2/256.0f, v2/256.0f);
886 //거기에다가 모두 x,y를 다시 이동 시킨다.886 //Then translate all by x,y again.
887 DrawTexture(pt,color,u1,v1,u2,v2);887 DrawTexture(pt,color,u1,v1,u2,v2);
888}888}
889889
890//임의로 스케일된다. x1,y1,x2,y2890//Scaled arbitrarily. x1,y1,x2,y2
891void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor, float u1,float v1,float u2,float v2)891void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor, float u1,float v1,float u2,float v2)
892{892{
893893
... 6 unchanged lines ...
900 pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX ,v,4,0 );900 pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX ,v,4,0 );
901}901}
902902
903//임의로 스케일된다. x,y,width,height903//Scaled arbitrarily. x,y,width,height
904void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, float u1,float v1,float u2,float v2)904void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, float u1,float v1,float u2,float v2)
905{905{
906906
... 7 unchanged lines ...
914}914}
915915
916916
917//스케일 되지 않는....917//Not scaled....
918void CHSH_Device::DrawTexture(float x,float y,DWORD dwColor, float u1,float v1,float u2,float v2)918void CHSH_Device::DrawTexture(float x,float y,DWORD dwColor, float u1,float v1,float u2,float v2)
919{919{
920 D3DTLVERTEX v[4];920 D3DTLVERTEX v[4];
... 57 unchanged lines ...
978bool CMR_Device::InitSecond()978bool CMR_Device::InitSecond()
979{979{
980 map_loaded=false;980 map_loaded=false;
981 CHSH_Device::InitSecond(0,0); // no off screen - Target Texture를 그리지 않는다.981 CHSH_Device::InitSecond(0,0); // no off screen - do not create Target Texture.
982982
983 char temppath[MAX_PATH],temppatha[MAX_PATH];983 char temppath[MAX_PATH],temppatha[MAX_PATH];
984984
985 //1. 백그라운드이미지용 Surface985 //1. Surface for background image
986 sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_background.bmp");986 sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_background.bmp");
987 pDDSBackground=CreateSurfaceFromFile(pDD,temppath);987 pDDSBackground=CreateSurfaceFromFile(pDD,temppath);
988988
... 1 unchanged lines ...
990 MessageBeep(0);990 MessageBeep(0);
991 }991 }
992992
993 //2. 범용 텍스쳐993 //2. General-purpose texture
994 sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_texture.bmp");994 sprintf(temppath,"%s\\hsh\\%s",AssetsDirectory1,"mr_texture.bmp");
995 sprintf(temppatha,"%s\\hsh\\%s",AssetsDirectory1,"mr_texturea.bmp");995 sprintf(temppatha,"%s\\hsh\\%s",AssetsDirectory1,"mr_texturea.bmp");
996 pDDSTexture=CreateRGBATextureFromFile(pDD, temppath,temppatha,16);996 pDDSTexture=CreateRGBATextureFromFile(pDD, temppath,temppatha,16);
997997
998 //3. 맵용 텍스쳐..998 //3. Texture for map..
999 pDDSMapTexture=CreatePixelFormatTexture(pDD,256,256,&DDPF_R5G6B5);999 pDDSMapTexture=CreatePixelFormatTexture(pDD,256,256,&DDPF_R5G6B5);
10001000
1001 tw=256;1001 tw=256;
... 6 unchanged lines ...
10081008
1009bool CMR_Device::BeginScene()1009bool CMR_Device::BeginScene()
1010{1010{
1011 //Render Target을 설정한다.1011 //Set the Render Target.
1012 //SetRenderTargetTexture();1012 //SetRenderTargetTexture();
10131013
10141014
1015 //Texture에.. background image를 그린다. 일종의 Clear대신이다..1015 //Draw background image to Texture. Used as a substitute for Clear..
1016 if(sh_game_started){1016 if(sh_game_started){
1017 //게임이 시작되었을때만 백그라운드를 그린다.1017 //Draw background only when game has started.
1018 RECT rc={0,0,640,480};1018 RECT rc={0,0,640,480};
1019 pDDSBack->BltFast(0,0,pDDSBackground,&rc,0);1019 pDDSBack->BltFast(0,0,pDDSBackground,&rc,0);
1020 }else{1020 }else{
1021 //게임이 시작되지 않았으면.. blank를 보여준다.1021 //If game has not started.. show blank.
1022 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);1022 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);
1023 }1023 }
10241024
... 146 unchanged lines ...
11711171
1172bool CRadar_Device::BeginScene()1172bool CRadar_Device::BeginScene()
1173{1173{
1174 //Render Target을 설정한다.1174 //Set the Render Target.
1175 SetRenderTargetTexture();1175 SetRenderTargetTexture();
11761176
11771177
1178 //Texture에.. background image를 그린다. 일종의 Clear대신이다..1178 //Draw background image to Texture. Used as a substitute for Clear..
1179 if(sh_game_started){1179 if(sh_game_started){
1180 //게임이 시작되었을때만 백그라운드를 그린다.1180 //Draw background only when game has started.
1181 RECT rc={0,0,480,640};1181 RECT rc={0,0,480,640};
1182 pDDSTarget->BltFast(0,0,pDDSBackground,&rc,0);1182 pDDSTarget->BltFast(0,0,pDDSBackground,&rc,0);
1183 if(IsMechShutdown())1183 if(IsMechShutdown())
1184 {1184 {
1185 //지도 영역을 지운다.1185 //Clear map area.
1186 RECT rc={140,407,340,607};1186 RECT rc={140,407,340,607};
11871187
1188 DDBLTFX fx={0,};1188 DDBLTFX fx={0,};
... 3 unchanged lines ...
1192 pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);1192 pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);
1193 }1193 }
1194 }else{1194 }else{
1195 //게임이 시작되지 않았으면.. blank를 보여준다.1195 //If game has not started.. show blank.
1196 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);1196 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,1.0f,0);
1197 }1197 }
1198 pD3DDevice->BeginScene();1198 pD3DDevice->BeginScene();
1199 if(sh_game_started && IsMechShutdown()){1199 if(sh_game_started && IsMechShutdown()){
1200 //shut down button을 그린다.1200 //Draw shutdown button.
1201 int state[12]={0,2,0,};1201 int state[12]={0,2,0,};
1202 state[3]=recent_state[3];//flush state는.. 최근 값을 가져다 쓴다.1202 state[3]=recent_state[3];//flush state: use the most recent value.
1203 state[11]=recent_state[11];//flush state는.. 최근 값을 가져다 쓴다.1203 state[11]=recent_state[11];//flush state: use the most recent value.
1204 if (!g_aaRadarText[0][0])1204 if (!g_aaRadarText[0][0])
1205 strcpy(&g_aaRadarText[0][0], g_szRadarJumpjet);1205 strcpy(&g_aaRadarText[0][0], g_szRadarJumpjet);
1206 strcpy(&g_aaRadarText[1][0], g_szRadarStartup);1206 strcpy(&g_aaRadarText[1][0], g_szRadarStartup);
... 87 unchanged lines ...
1294//state 1:ready1294//state 1:ready
1295//state 2:activated1295//state 2:activated
12961296
1297//pilot mode에서는 다른 의미를 갖는다.1297//Has a different meaning in pilot mode.
12981298
1299bool CRadar_Device::DrawBackText(int state[12])1299bool CRadar_Device::DrawBackText(int state[12])
1300{1300{
... 93 unchanged lines ...
1394{1394{
1395 CHSH_Device::InitSecond(1024,512); // 640 x 4801395 CHSH_Device::InitSecond(1024,512); // 640 x 480
1396 if(g_f3dtarget){1396 if(g_f3dtarget){
1397 pDDSMechTexture=CreatePixelFormatTexture(pDD,128,128,&DDPF_R5G6B5);//3D메크 이미지 저장하기 위한 텍스쳐...1397 pDDSMechTexture=CreatePixelFormatTexture(pDD,128,128,&DDPF_R5G6B5);//Texture for storing 3D mech image...
1398 }else{1398 }else{
1399// MSL 5.02 Target MFD Image1399// MSL 5.02 Target MFD Image
1400 // pDDSMechTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R5G6B5);//2D메크 이미지 저장하기 위한 텍스쳐...1400 // pDDSMechTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R5G6B5);//texture for storing 2D mech image...
1401 pDDSMechTexture=CreatePixelFormatTexture(pDD,1024,1024,&DDPF_R5G6B5);//2D메크 이미지 저장하기 위한 텍스쳐...1401 pDDSMechTexture=CreatePixelFormatTexture(pDD,1024,1024,&DDPF_R5G6B5);//Texture for storing 2D mech image...
1402 //모든 메크의 이미지를 저장한다.1402 //Store images for all mechs.
1403 for(int mech=0;mech<ARRAYSIZE(mechnames);mech++){1403 for(int mech=0;mech<ARRAYSIZE(mechnames);mech++){
1404// MSL 5.02 Target MFD Image1404// MSL 5.02 Target MFD Image
1405// int x=(mech%4)*128;1405// int x=(mech%4)*128;
... 9 unchanged lines ...
1415 }1415 }
1416 //if(pDDSMechTexture==NULL)MessageBeep(0);1416 //if(pDDSMechTexture==NULL)MessageBeep(0);
1417 //pDDSMechTexture=0;1417 //pDDSMechTexture=0;
1418 //pDDSDamageTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R4G4B4A4);//데미지.. 이미지를..1418 //pDDSDamageTexture=CreatePixelFormatTexture(pDD,512,512,&DDPF_R4G4B4A4);//damage image..
1419 pDDSDamageTexture=0;//Reset할때.. 새로이 만든다... 지금은 굳이 만들 필요 없다.1419 pDDSDamageTexture=0;//On Reset: recreated... no need to create now.
1420// MSL 5.03 Target Damage Display1420// MSL 5.03 Target Damage Display
1421 pDDSTargetTexture=0;1421 pDDSTargetTexture=0;
14221422
... 68 unchanged lines ...
1491 }1491 }
1492 ch=channel;1492 ch=channel;
14931493
1494 //Render Target을 설정한다.1494 //Set the Render Target.
1495 SetRenderTargetTexture();1495 SetRenderTargetTexture();
1496 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,0,0);1496 pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,0,0,0);
1497 pD3DDevice->BeginScene();1497 pD3DDevice->BeginScene();
... 64 unchanged lines ...
1562 //color = 0xFFFFFFFF;1562 //color = 0xFFFFFFFF;
1563 D3DTLVERTEX Vertices[4]; // Vertices for the cube1563 D3DTLVERTEX Vertices[4]; // Vertices for the cube
15641564
1565 float w=(float)size_back.cx/2;//<==주의: 이점이 radar와 다른점이다.1565 float w=(float)size_back.cx/2;//<==NOTE: this differs from radar.
1566 float x1=(ch/3)*w;1566 float x1=(ch/3)*w;
1567 float x2=x1+w;1567 float x2=x1+w;
1568 float h=(float)size_back.cy;1568 float h=(float)size_back.cy;
... 64 unchanged lines ...
1633 }1633 }
1634 pD3DDevice->BeginScene();1634 pD3DDevice->BeginScene();
1635 if(sh_game_started) {1635 if(sh_game_started) {
1636 //게임이 시작되었을때만.. 배경을 그린다.1636 //Draw background only when game has started..
1637 DrawMFDBackGrid();1637 DrawMFDBackGrid();
1638 }1638 }
1639 pD3DDevice->EndScene();1639 pD3DDevice->EndScene();
... 135 unchanged lines ...
1775 POINTF &tc = mfd_text_coord[i];1775 POINTF &tc = mfd_text_coord[i];
1776 if(i!=4){1776 if(i!=4){
1777 pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFFFFFFFF,mfd_text_weapon[i],TEXTALIGN_ORG);1777 pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFFFFFFFF,mfd_text_weapon[i],TEXTALIGN_ORG);
1778 }else{//chain fire 표시1778 }else{//display chain fire
1779 DrawQuad((int)tc.x-80,(int)tc.y-20,(int)tc.x+80,(int)tc.y+20,0xFFFFFFFF);1779 DrawQuad((int)tc.x-80,(int)tc.y-20,(int)tc.x+80,(int)tc.y+20,0xFFFFFFFF);
1780 pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFF000000,mfd_text_weapon[i],TEXTALIGN_ORG);1780 pFont[2].DrawTextMultiLine(tc.x,tc.y,0XFF000000,mfd_text_weapon[i],TEXTALIGN_ORG);
1781 }1781 }
... 107 unchanged lines ...
1889bool CMFD_Device::DrawMFDDefaultBackAux1(int state)1889bool CMFD_Device::DrawMFDDefaultBackAux1(int state)
1890{1890{
1891 if(state==TEAM_MODE){1891 if(state==TEAM_MODE){
1892 //메크들의 상태를 보여준다.1892 //Show mech status.
1893 DrawQuad(0,240-1,640,240+1,0xFFFFFFFF);1893 DrawQuad(0,240-1,640,240+1,0xFFFFFFFF);
1894 DrawQuad(160-1,0,160+1,240,0xFFFFFFFF);1894 DrawQuad(160-1,0,160+1,240,0xFFFFFFFF);
1895 DrawQuad(320-1,0,320+1,240,0xFFFFFFFF);1895 DrawQuad(320-1,0,320+1,240,0xFFFFFFFF);
1896 DrawQuad(480-1,0,480+1,240,0xFFFFFFFF);1896 DrawQuad(480-1,0,480+1,240,0xFFFFFFFF);
1897 }else if(state==FREEFORALL_MODE){1897 }else if(state==FREEFORALL_MODE){
1898 DrawQuadList(8,aux1freequads,0xFFFFFFFF);1898 DrawQuadList(8,aux1freequads,0xFFFFFFFF);
1899 }else if(state==TEAM_MESSAGE1){//이걸로서 더이상 그릴것이 없다.1899 }else if(state==TEAM_MESSAGE1){//nothing more to draw.
1900 DrawMFDBackText(mfd_text_comm2);1900 DrawMFDBackText(mfd_text_comm2);
1901 for(int i=0;i<7;i++){1901 for(int i=0;i<7;i++){
1902 int y=80+i*40;1902 int y=80+i*40;
1903 pFont[0].DrawText(80,(float)y,0xFFFFFFFF,&aux1_messages[i][0],0);1903 pFont[0].DrawText(80,(float)y,0xFFFFFFFF,&aux1_messages[i][0],0);
1904 }1904 }
1905 }else if(state==TEAM_MESSAGE2){//이걸로서 더이상 그릴것이 없다.1905 }else if(state==TEAM_MESSAGE2){//nothing more to draw.
1906 DrawMFDBackText(mfd_text_comm2);1906 DrawMFDBackText(mfd_text_comm2);
1907 for(int i=0;i<7;i++){1907 for(int i=0;i<7;i++){
1908 int y=80+i*40;1908 int y=80+i*40;
... 116 unchanged lines ...
20252025
2026 DWORD x = 0;2026 DWORD x = 0;
2027 DWORD y = 0;2027 DWORD y = 0;
2028 char str[4] = {0,};//DWORD align시키기 위해서..(원래는 2를 쓰면된다.)2028 char str[4] = {0,};//For DWORD alignment.. (originally 2 would suffice.)
2029 SIZE size;2029 SIZE size;
2030 m_dwMaxWidth=0;//최소값으로 초기화한다.2030 m_dwMaxWidth=0;//Initialize to minimum value.
2031 for( char c=32; c<127; c++ ){2031 for( char c=32; c<127; c++ ){
20322032
2033 str[0] = c;2033 str[0] = c;
... 3 unchanged lines ...
2037 x = 0;2037 x = 0;
2038 y += size.cy+1;2038 y += size.cy+1;
2039 }2039 }
2040 if(size.cx>(int)m_dwMaxWidth){//문자 하나중 가장 큰것..2040 if(size.cx>(int)m_dwMaxWidth){//widest single character..
2041 m_dwMaxWidth=size.cx;2041 m_dwMaxWidth=size.cx;
2042 }2042 }
20432043
2044 //j가 i의 영역을 침범한다. 적절한 조치를 취할것...2044 //j invades the region of i. Take appropriate action...
2045 ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );2045 ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );
20462046
2047 m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;2047 m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;
... 25 unchanged lines ...
2073 DeleteDC( hDC );2073 DeleteDC( hDC );
2074 DeleteObject( hFont );2074 DeleteObject( hFont );
20752075
2076 //////StateBlock관련..2076 //////StateBlock related..
2077 for( UINT which=0; which<2; which++ ){2077 for( UINT which=0; which<2; which++ ){
2078 m_pd3dDevice->BeginStateBlock();2078 m_pd3dDevice->BeginStateBlock();
2079 m_pd3dDevice->SetTexture( 0, m_pTexture );2079 m_pd3dDevice->SetTexture( 0, m_pTexture );
... 34 unchanged lines ...
21142114
2115 DWORD x = 0;2115 DWORD x = 0;
2116 DWORD y = 0;2116 DWORD y = 0;
2117 char str[4] = {0,};//DWORD align시키기 위해서..(원래는 2를 쓰면된다.)2117 char str[4] = {0,};//For DWORD alignment.. (originally 2 would suffice.)
2118 SIZE size;2118 SIZE size;
2119 m_dwMaxWidth=0;//최소값으로 초기화한다.2119 m_dwMaxWidth=0;//Initialize to minimum value.
2120 for( char c=32; c<127; c++ ){2120 for( char c=32; c<127; c++ ){
21212121
2122 str[0] = c;2122 str[0] = c;
... 3 unchanged lines ...
2126 x = 0;2126 x = 0;
2127 y += size.cy+1;2127 y += size.cy+1;
2128 }2128 }
2129 if(size.cx>(int)m_dwMaxWidth){//문자 하나중 가장 큰것..2129 if(size.cx>(int)m_dwMaxWidth){//widest single character..
2130 m_dwMaxWidth=size.cx;2130 m_dwMaxWidth=size.cx;
2131 }2131 }
21322132
2133 //j가 i의 영역을 침범한다. 적절한 조치를 취할것...2133 //j invades the region of i. Take appropriate action...
2134 ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );2134 ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );
21352135
2136 m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;2136 m_fTexCoords[c-32][0] = ((float)(x+0))/m_dwTexWidth;
... 24 unchanged lines ...
2161 DeleteDC( hDC );2161 DeleteDC( hDC );
2162 DeleteObject( hFont );2162 DeleteObject( hFont );
21632163
2164 //////StateBlock관련..2164 //////StateBlock related..
2165 for( UINT which=0; which<2; which++ ){2165 for( UINT which=0; which<2; which++ ){
2166 m_pd3dDevice->BeginStateBlock();2166 m_pd3dDevice->BeginStateBlock();
2167 m_pd3dDevice->SetTexture( 0, m_pTexture );2167 m_pd3dDevice->SetTexture( 0, m_pTexture );
... 23 unchanged lines ...
2191 }2191 }
2192 SAFE_RELEASE( m_pTexture );2192 SAFE_RELEASE( m_pTexture );
2193 SAFE_RELEASE( m_pd3dDevice );2193 SAFE_RELEASE( m_pd3dDevice );
2194 }//m_pd3dDevice==NULL이면 아무것도 하지 않는다.2194 }//If m_pd3dDevice==NULL, do nothing.
21952195
2196}2196}
2197HRESULT CHSHFont::GetTextExtent(const char* strText, SIZE* pSize )2197HRESULT CHSHFont::GetTextExtent(const char* strText, SIZE* pSize )
... 42 unchanged lines ...
2240 DWORD dwNumVtx = 0;2240 DWORD dwNumVtx = 0;
2241 D3DTLVERTEX * pVertices =m_pVB;2241 D3DTLVERTEX * pVertices =m_pVB;
2242 char c;2242 char c;
2243 float osx=sx;//원래의 sx;2243 float osx=sx;//original sx;
2244 float h = (m_fTexCoords[0][3]-m_fTexCoords[0][1]) * m_dwTexHeight ;//한글자의 높이는 모두 동일할 것이다.2244 float h = (m_fTexCoords[0][3]-m_fTexCoords[0][1]) * m_dwTexHeight ;//Height of each character should all be the same.
22452245
2246 while( (c = *strText++)!=0 ){2246 while( (c = *strText++)!=0 ){
22472247
2248 if( c == '\n')sy+=h,sx=osx;//여러줄을 표시할때...2248 if( c == '\n')sy+=h,sx=osx;//when displaying multiple lines...
22492249
2250 if( c < ' ' )continue;2250 if( c < ' ' )continue;
22512251
... 22 unchanged lines ...
2274 sx += w;2274 sx += w;
2275 }2275 }
22762276
2277 //나머지 것들을 그린다.2277 //Draw the remaining items.
2278 if(dwNumVtx> 0 ){2278 if(dwNumVtx> 0 ){
2279 m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );2279 m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );
2280 }2280 }
... 61 unchanged lines ...
2342 break;2342 break;
2343 }2343 }
23442344
2345 char string[128];//최대값을 임의로 정한다.2345 char string[128];//Max length set arbitrarily.
2346 strcpy(string,strText);2346 strcpy(string,strText);
2347 char * seps="\n";2347 char * seps="\n";
2348 char * token;2348 char * token;
... 28 unchanged lines ...
2377 float h = (float)((m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight);2377 float h = (float)((m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight);
2378 float w = (float)m_dwMaxWidth;2378 float w = (float)m_dwMaxWidth;
23792379
2380 //가로 쓰기라고 가정했을때의 명칭이다.2380 //Name assuming horizontal (left-to-right) text layout.
2381 int col_count=0;//maximum column count2381 int col_count=0;//maximum column count
2382 int row_count=1;2382 int row_count=1;
23832383
... 11 unchanged lines ...
2395 ccount++;2395 ccount++;
2396 if(ccount>col_count)col_count=ccount;//update the max value2396 if(ccount>col_count)col_count=ccount;//update the max value
2397 }2397 }
2398 //여기서는 새로 쓰기일때의 크기이다.2398 //This is the size when writing from scratch.
2399 SIZE size;2399 SIZE size;
2400 size.cx=(int)(row_count*w);2400 size.cx=(int)(row_count*w);
2401 size.cy=(int)(col_count*h);2401 size.cy=(int)(col_count*h);
... 6 unchanged lines ...
2408 m_pd3dDevice->ApplyStateBlock( m_dwDrawTextStateBlock );2408 m_pd3dDevice->ApplyStateBlock( m_dwDrawTextStateBlock );
2409 m_pd3dDevice->SetTexture(0,m_pTexture);2409 m_pd3dDevice->SetTexture(0,m_pTexture);
24102410
2411 char string[128];//최대값을 임의로 정한다.2411 char string[128];//Max length set arbitrarily.
2412 strcpy(string,strText);2412 strcpy(string,strText);
2413 char * seps="\n";2413 char * seps="\n";
2414 char * token;2414 char * token;
... 1 unchanged lines ...
2416 DWORD dwNumVtx = 0;2416 DWORD dwNumVtx = 0;
2417 D3DTLVERTEX * pVertices =m_pVB;2417 D3DTLVERTEX * pVertices =m_pVB;
24182418
2419 float osy=sy-size.cy/2;//원래의 sy 가장 높은 좌표..;2419 float osy=sy-size.cy/2;//original sy: topmost coordinate..;
2420 sx=sx-size.cx/2;2420 sx=sx-size.cx/2;
24212421
24222422
... 33 unchanged lines ...
2456 token = strtok( NULL, seps );2456 token = strtok( NULL, seps );
2457 }2457 }
24582458
2459 //나머지 것들을 그린다.2459 //Draw the remaining items.
2460 if(dwNumVtx> 0 ){2460 if(dwNumVtx> 0 ){
2461 m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );2461 m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, D3DFVF_TLVERTEX ,m_pVB,dwNumVtx,0 );
2462 }2462 }
... 43 unchanged lines ...
2506 if(stage==1){2506 if(stage==1){
2507 if(inited){2507 if(inited){
2508 //normal function2508 //normal function
2509 //성능상의 이유로.. 맨처음에 두었음..2509 //Placed at the top for performance reasons..
2510 RECT rc={0,0,128,128};2510 RECT rc={0,0,128,128};
2511 LONG lPitch;2511 LONG lPitch;
2512 LPDWORD agp_org,agp,pci_org,pci,mem;2512 LPDWORD agp_org,agp,pci_org,pci,mem;
2513 int x,y;2513 int x,y;
2514 int sx=0,sy=10,ex=120,ey=112;2514 int sx=0,sy=10,ex=120,ey=112;
2515 //int hy=ey-sy;//높이.2515 //int hy=ey-sy;//height.
2516// if(1<=sh_step&&sh_step<=3){2516// if(1<=sh_step&&sh_step<=3){
2517 //1. AGP->MEM2517 //1. AGP->MEM
2518 //int h=(sh_step-1)*hy/3;//세그먼트 오프셋..2518 //int h=(sh_step-1)*hy/3;//segment offset..
2519 mem=mem_org;2519 mem=mem_org;
2520 agp_org=(DWORD*)GetSurfacePointer(SH_TargetBufferSurface,rc,lPitch,DDLOCK_READONLY );2520 agp_org=(DWORD*)GetSurfacePointer(SH_TargetBufferSurface,rc,lPitch,DDLOCK_READONLY );
2521 if(agp_org!=NULL){2521 if(agp_org!=NULL){
2522 if(lPitch%4==0){// DWORD align됐을때만 실행한다.2522 if(lPitch%4==0){// execute only when DWORD aligned.
2523 for(y=sy;y<ey;y++){2523 for(y=sy;y<ey;y++){
2524 agp=agp_org+lPitch/4*y;2524 agp=agp_org+lPitch/4*y;
2525 mem=mem_org+128*2/4*y;2525 mem=mem_org+128*2/4*y;
... 26 unchanged lines ...
2552 mem=mem_org;2552 mem=mem_org;
2553 pci_org=(DWORD*)GetSurfacePointer(texture,rc,lPitch,DDLOCK_WRITEONLY );2553 pci_org=(DWORD*)GetSurfacePointer(texture,rc,lPitch,DDLOCK_WRITEONLY );
2554 if(pci_org){2554 if(pci_org){
2555 if(lPitch%4==0){// DWORD align됐을때만 실행한다.2555 if(lPitch%4==0){// execute only when DWORD aligned.
2556 for(y=sy;y<ey;y++){2556 for(y=sy;y<ey;y++){
2557 pci=pci_org+lPitch/4*y;2557 pci=pci_org+lPitch/4*y;
2558 mem=mem_org+128*2/4*y;2558 mem=mem_org+128*2/4*y;
... 34 unchanged lines ...
2593// Full Screen2593// Full Screen
2594//_____________________________________________________________________________________________________2594//_____________________________________________________________________________________________________
25952595
2596//전에 SCREENS와 유사한 역할을 한다2596//Previously served a role similar to SCREENS
2597//command line paramemer에 의해 정해지고 이후에는 변하지 않는다.2597//Set by command line parameter and does not change thereafter.
2598bool use_multimonitor;2598bool use_multimonitor;
25992599
2600//보통 true이다.. 그러나 window모드로 들어가면.. false가된다.2600//Normally true.. but becomes false when entering windowed mode..
2601//true이면.. 각종 드로딩 루틴을 그리고 false를 일때는 일체 하지 않는다.2601//If true.. runs all drawing routines; if false, does nothing.
2602bool draw_mfd_huds;2602bool draw_mfd_huds;
26032603
2604//window모드가 되었을때 무조건 true가 되도록한다.(현재에는..)2604//Force to true when windowed mode is entered. (currently..)
2605//멀티모디터 드로잉과는 관계없다.2605//Unrelated to multi-monitor drawing.
2606bool draw_main_huds;2606bool draw_main_huds;
2607CRadar_Device radar_device;2607CRadar_Device radar_device;
2608CMFD_Device mfd_device;2608CMFD_Device mfd_device;
... 110 unchanged lines ...
2719 const int segvert=(seg+1)*2;2719 const int segvert=(seg+1)*2;
2720 static D3DTLVERTEX Vertices[seg2][segvert]; // Vertices for the cube2720 static D3DTLVERTEX Vertices[seg2][segvert]; // Vertices for the cube
2721 static bool vertices_initialized=false;2721 static bool vertices_initialized=false;
2722 //int rcount,scount;//회전 방향 setment수.., 직선 방향 segment수..2722 //int rcount,scount;//num rotation-direction segments, num straight-direction segments..
2723 static float off_z=0;2723 static float off_z=0;
2724 if(freload){2724 if(freload){
2725 char temppath[MAX_PATH];2725 char temppath[MAX_PATH];
... 19 unchanged lines ...
2745 MakeTorus(Vertices[2],w/2,h/2, 0*f,100*f,seg,0xFF000000,0xFF666666,0.3f,0.5f,0,-500,0,-200);2745 MakeTorus(Vertices[2],w/2,h/2, 0*f,100*f,seg,0xFF000000,0xFF666666,0.3f,0.5f,0,-500,0,-200);
2746 vertices_initialized=true;2746 vertices_initialized=true;
2747 }else{2747 }else{
2748 //초기화 됐을경우는 텍스쳐 좌표를 계속해서 바꾼다.2748 //If initialized, keep changing texture coordinates.
2749 static float offset=0;2749 static float offset=0;
2750 static float off=0;2750 static float off=0;
2751 float bb=sinf(off)*2;2751 float bb=sinf(off)*2;
... 22 unchanged lines ...
2774{2774{
2775 static D3DTLVERTEX Vertices[4]; // Vertices for the cube2775 static D3DTLVERTEX Vertices[4]; // Vertices for the cube
2776 static bool vertices_initialized=false;2776 static bool vertices_initialized=false;
2777 //int rcount,scount;//회전 방향 setment수.., 직선 방향 segment수..2777 //int rcount,scount;//num rotation-direction segments, num straight-direction segments..
2778 static float off_z=0;2778 static float off_z=0;
2779 if(freload){2779 if(freload){
2780 extern bool g_bCOOP; // COin OPeration2780 extern bool g_bCOOP; // COin OPeration
... 24 unchanged lines ...
2805 Vertices[3] = D3DTLVERTEX(D3DVECTOR( (float)w, (float)h, z_pos),1.0f,0xFFFFFFFF,0, 800.0f/1024.0f, 600.0f/1024.0f );2805 Vertices[3] = D3DTLVERTEX(D3DVECTOR( (float)w, (float)h, z_pos),1.0f,0xFFFFFFFF,0, 800.0f/1024.0f, 600.0f/1024.0f );
2806 vertices_initialized=true;2806 vertices_initialized=true;
2807 }else{2807 }else{
2808 //초기화 됐을경우는 텍스쳐 좌표를 계속해서 바꾼다.2808 //If initialized, keep changing texture coordinates.
2809 }2809 }
2810 pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP ,D3DTOP_MODULATE);2810 pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP ,D3DTOP_MODULATE);
2811 pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1 ,D3DTA_TEXTURE);2811 pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1 ,D3DTA_TEXTURE);
... 12 unchanged lines ...
2824 pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX , Vertices, 4, NULL );2824 pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX , Vertices, 4, NULL );
2825}2825}
28262826
+
+

Gameleap/code/CoreTech/Libraries/GameOS/render.hpp

+
+19 -19 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1//D3DCOLOR_XXXX정위한다.(d3d8types.h에 정의되어 있으므로. 정의되어있지 않을것이다.1//D3DCOLOR_XXXX macros are defined in d3d8types.h and will not be redefined here.
2#ifndef D3DCOLOR_ARGB2#ifndef D3DCOLOR_ARGB
33
4#define D3DCOLOR_ARGB(a,r,g,b) (D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))4#define D3DCOLOR_ARGB(a,r,g,b) (D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
... 39 unchanged lines ...
44#define AUX1_TEAM_MESSAGE 244#define AUX1_TEAM_MESSAGE 2
45#define AUX1_FREE_MESSAGE 345#define AUX1_FREE_MESSAGE 3
4646
47//각 디바이스마다.., 각 폰트 종류(typeface,크기,굴기,기울기)가 달라질때 마다 하나씩 생성시켜 사용하면 된다.47//Create one instance per device per font type (typeface, size, bold, italic).
48class CHSHFont48class CHSHFont
49{49{
50 //일시적으로 사용되고.. 각 instance마다 사용되어질 필요가 없으므로 static으로 하였다.50 //Used temporarily; no need per instance, so declared static.
51 static D3DTLVERTEX m_pVB[300];51 static D3DTLVERTEX m_pVB[300];
5252
53 LPDIRECT3DDEVICE7 m_pd3dDevice;53 LPDIRECT3DDEVICE7 m_pd3dDevice;
... 5 unchanged lines ...
59 DWORD m_dwSavedStateBlock;59 DWORD m_dwSavedStateBlock;
60 DWORD m_dwDrawTextStateBlock;60 DWORD m_dwDrawTextStateBlock;
6161
62 DWORD m_dwMaxWidth;//문자 하나중 가장 큰것..62 DWORD m_dwMaxWidth;//Width of the widest single character..
63public:63public:
64 CHSHFont();64 CHSHFont();
65 ~CHSHFont();65 ~CHSHFont();
... 14 unchanged lines ...
80 CHSH_Device* m_pOtherHSHD;80 CHSH_Device* m_pOtherHSHD;
81public:81public:
82 LPDIRECTDRAW7 pDD;82 LPDIRECTDRAW7 pDD;
83 LPDIRECTDRAWSURFACE7 pDDSFront; //Flip을 하기위해서 필요..83 LPDIRECTDRAWSURFACE7 pDDSFront; //Required for Flip..
84 LPDIRECTDRAWSURFACE7 pDDSBack; //Drawing하기 위해서 필요.84 LPDIRECTDRAWSURFACE7 pDDSBack; //Required for Drawing.
85 LPDIRECTDRAWSURFACE7 pDDSTarget; //실제 그리는 텍스쳐 이다.85 LPDIRECTDRAWSURFACE7 pDDSTarget; //The actual rendering texture.
86 LPDIRECTDRAWSURFACE7 pDDSTexture; //실제 그리는 텍스쳐 이다.86 LPDIRECTDRAWSURFACE7 pDDSTexture; //The actual rendering texture.
87 LPDIRECT3DDEVICE7 pD3DDevice;87 LPDIRECT3DDEVICE7 pD3DDevice;
88 CHSHFont pFont[4];88 CHSHFont pFont[4];
89 SIZE size_back;89 SIZE size_back;
... 51 unchanged lines ...
141 bool InitFirst();141 bool InitFirst();
142 bool InitSecond();142 bool InitSecond();
143 LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface143 LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface
144 LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//메크 데미지 텍스쳐..144 LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//Mech damage texture..
145// MSL 5.03 Mechview145// MSL 5.03 Mechview
146 LPDIRECTDRAWSURFACE7 pDDSMechViewBkgnd;146 LPDIRECTDRAWSURFACE7 pDDSMechViewBkgnd;
147 LPDIRECTDRAWSURFACE7 pDDSMechViewBeagle;147 LPDIRECTDRAWSURFACE7 pDDSMechViewBeagle;
... 3 unchanged lines ...
151 LPDIRECTDRAWSURFACE7 pDDSMechViewLightamp;151 LPDIRECTDRAWSURFACE7 pDDSMechViewLightamp;
152 LPDIRECTDRAWSURFACE7 m_pDDSMechView; //m x n - tiled 3D MechView images152 LPDIRECTDRAWSURFACE7 m_pDDSMechView; //m x n - tiled 3D MechView images
153153
154 virtual bool BeginScene(); //texture를 ratate시켜서 출력하기 위한 루틴이 포함된다.. background이미지를.. 미리 출력한다...154 virtual bool BeginScene(); //Rotates and outputs texture; pre-renders background image...
155 virtual bool EndScene();155 virtual bool EndScene();
156 virtual bool Release();156 virtual bool Release();
157 bool LoadRadarDamageTexture(const char *mechtexturename);157 bool LoadRadarDamageTexture(const char *mechtexturename);
... 5 unchanged lines ...
163{163{
164public:164public:
165 //CHSHFont SmallFont;165 //CHSHFont SmallFont;
166 LPDIRECTDRAWSURFACE7 pDDSMechTexture;//3D메크 이미지 저장하기 위한 텍스쳐...166 LPDIRECTDRAWSURFACE7 pDDSMechTexture;//Texture for storing 3D mech image...
167 LPDIRECTDRAWSURFACE7 pDDSDamageTexture;//메크 데미지 텍스쳐..167 LPDIRECTDRAWSURFACE7 pDDSDamageTexture;//Mech damage texture..
168// MSL 5.03 Target Damage Display168// MSL 5.03 Target Damage Display
169 LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//메크 데미지 텍스쳐..169 LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//Target damage texture..
170170
171 DWORD ch; //current channel....171 DWORD ch; //current channel....
172 CHSH_Device* m_pRightDevice; // mode 4: pointer to right 640x480 device (NULL in modes 1-3)172 CHSH_Device* m_pRightDevice; // mode 4: pointer to right 640x480 device (NULL in modes 1-3)
... 2 unchanged lines ...
175 ~CMFD_Device();175 ~CMFD_Device();
176 bool InitFirst();176 bool InitFirst();
177 bool InitSecond();177 bool InitSecond();
178 bool BeginChannel(DWORD channel);// 0~4번의 채널을 정할 수 있게된다.178 bool BeginChannel(DWORD channel);// Select channel 0-4.
179 bool EndChannel();179 bool EndChannel();
180 virtual bool BeginScene(); //normal한 beginscene/endscene를 한다.180 virtual bool BeginScene(); //Performs normal BeginScene/EndScene.
181 bool BeginSceneRight(); // mode 4: clear+grid on right device at sh_step==1181 bool BeginSceneRight(); // mode 4: clear+grid on right device at sh_step==1
182 virtual bool EndScene(); //flip을 한다.182 virtual bool EndScene(); //Performs the Flip.
183 virtual bool Release();183 virtual bool Release();
184 bool LoadDamageTexture(const char *mechtexturename);184 bool LoadDamageTexture(const char *mechtexturename);
185// MSL 5.03 Target Damage Display185// MSL 5.03 Target Damage Display
... 28 unchanged lines ...
214 bool InitFirst();214 bool InitFirst();
215 bool InitSecond();215 bool InitSecond();
216 LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface216 LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface
217 LPDIRECTDRAWSURFACE7 pDDSMapTexture; //스크롤되는 맵 이미지를 위한 텍스쳐..217 LPDIRECTDRAWSURFACE7 pDDSMapTexture; //Texture for scrollable map image..
218 LPDIRECTDRAWSURFACE7 pDDSMRTargetTexture;//메크 데미지 텍스쳐..218 LPDIRECTDRAWSURFACE7 pDDSMRTargetTexture;//Mission Review target texture..
219 bool LoadMRTargetTexture(const char *mechtexturename);219 bool LoadMRTargetTexture(const char *mechtexturename);
220 virtual bool BeginScene(); //texture를 ratate시켜서 출력하기 위한 루틴이 포함된다.. background이미지를.. 미리 출력한다...220 virtual bool BeginScene(); //Rotates and outputs texture; pre-renders background image...
221 virtual bool EndScene();221 virtual bool EndScene();
222 virtual bool Release();222 virtual bool Release();
223};223};
... 11 unchanged lines ...
235extern bool hsh_mrdev_initialized;235extern bool hsh_mrdev_initialized;
236extern bool sh_isdeathmode;236extern bool sh_isdeathmode;
237extern bool g_f3dtarget;237extern bool g_f3dtarget;
+
+

Gameleap/code/Launcher/Cstr.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#define __INTERNAL__1#define __INTERNAL__
2#include "stdafx.h"2#include "stdafx.h"
3#include "malloc.h"3#include "malloc.h"
... 1073 unchanged lines ...
1077 int nTotalLength;1077 int nTotalLength;
1078 int i, nSize = GetSize();1078 int i, nSize = GetSize();
10791079
1080 nTotalLength = nSize; // nSize개의 '\0'1080 nTotalLength = nSize; // nSize null terminators '\0'
1081 for(i = 0; i < nSize; i++) {1081 for(i = 0; i < nSize; i++) {
1082 nTotalLength += strlen(GetAt(i));1082 nTotalLength += strlen(GetAt(i));
1083 }1083 }
... 208 unchanged lines ...
1292 }1292 }
1293}1293}
1294#endif // _DEBUG1294#endif // _DEBUG
+
+

Gameleap/code/Launcher/ctcl.cpp

+
+26 -26 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1// ctcl.cpp : Defines the entry point for the DLL application.1// ctcl.cpp : Defines the entry point for the DLL application.
2//2//
33
... 510 unchanged lines ...
514 BYTE bCode;514 BYTE bCode;
515 if (Disassemble("B", &bCode)) {515 if (Disassemble("B", &bCode)) {
516 ASSERT((bCode == 0) || (bCode == 3));516 ASSERT((bCode == 0) || (bCode == 3));
517 // 받아가시오 from Game to console...517 // Receiving from Game to console...
518 SYSTEMTIME* pSysTime;518 SYSTEMTIME* pSysTime;
519 WORD wSysTimeSize;519 WORD wSysTimeSize;
520 GUID* pGUID;520 GUID* pGUID;
... 9 unchanged lines ...
530 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);530 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);
531 if (pSF) {531 if (pSF) {
532 if (bCode == 3) {532 if (bCode == 3) {
533 // 미션리뷰 서버가 mission review 받았다는 것을 받았느냐?533 // Did we receive confirmation the mission review server got the mission review?
534 pSF->m_bProcessed = true;534 pSF->m_bProcessed = true;
535 g_pCTCLManager->m_SFM_Recv.Cut(pSF);535 g_pCTCLManager->m_SFM_Recv.Cut(pSF);
536 g_pCTCLManager->m_SFM_Done.AddTail(pSF);536 g_pCTCLManager->m_SFM_Done.AddTail(pSF);
... 370 unchanged lines ...
907 BYTE bCode;907 BYTE bCode;
908 if (Disassemble("B", &bCode)) {908 if (Disassemble("B", &bCode)) {
909 ASSERT((bCode == 1) || (bCode == 2));909 ASSERT((bCode == 1) || (bCode == 2));
910 // 받았오 from console to Game...910 // Received from console to Game...
911 SYSTEMTIME* pSysTime;911 SYSTEMTIME* pSysTime;
912 WORD wSysTimeSize;912 WORD wSysTimeSize;
913 GUID* pGUID;913 GUID* pGUID;
... 511 unchanged lines ...
1425#endif // !defined(CTCL_LAUNCHER)1425#endif // !defined(CTCL_LAUNCHER)
1426 } else {1426 } else {
1427 /*1427 /*
1428 클라이언트나 서버의 경우 실행되는 코드이다.1428 Code executed for both client and server.
14291429
1430 *있을수 있는 상태들1430 *Possible states:
1431 서버/클라이언트가 결정되기전.. 명령 대기상태1431 Before server/client role is determined: waiting for commands
1432 (종료/서버시작/클라이언트 시작등의 명령이 올수 있다.)1432 (Commands such as exit/start-server/start-client may arrive.)
14331433
1434 서버로 실행되어 서버 메크 설정에 대한 데이타를 기다리는 상태1434 Running as server, waiting for server mech configuration data
1435 (CreateSession가 실행된 상태이다.)1435 (State after CreateSession has been called.)
1436 서버로 실행되어 Bot들에 대한 정보를 기다리는 상태1436 Running as server, waiting for Bot information
1437 (클라이언트의 참여는 클라이언트와 서버간에 자동으로 이루어진다.)1437 (Client joining happens automatically between client and server.)
1438 서버로 실행되어 Launch를 기다리는 상태1438 Running as server, waiting for Launch
14391439
1440 ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다.1440 ==>Client has no waiting state as data is transferred immediately on startup.
14411441
1442 ==>각각의 상태를 정의하고 각 상태에 맞는 처리를 해주면 된다.1442 ==>Define each state and implement the appropriate handling for each.
1443 switch(state){1443 switch(state){
1444 }1444 }
1445 */1445 */
... 75 unchanged lines ...
1521 }1521 }
1522 break;1522 break;
1523 case 1:1523 case 1:
1524 //서버/클라이언트로서 실행준비하도록 명령을 전달한다.1524 //Send command to prepare for execution as server/client.
1525 //또한 서버를 실행하는데 필요한 모든 파라미터도 함께 전달한다.1525 //Also transmit all parameters required to run the server.
1526 for(i = 0; i < g_nPlayerInfos; i++) {1526 for(i = 0; i < g_nPlayerInfos; i++) {
1527 SPlayerInfo& pi = g_aPlayerInfos[i];1527 SPlayerInfo& pi = g_aPlayerInfos[i];
1528 if (!pi.m_bBot) {1528 if (!pi.m_bBot) {
... 20 unchanged lines ...
1549 }1549 }
1550 }1550 }
1551 if (i == g_nPlayerInfos) {1551 if (i == g_nPlayerInfos) {
1552 // Bot들에 대한 정보를 모두 한데 묶어서 보낸다.1552 // Bundle and send all Bot information together.
1553 CPacket pak(&SVR.GetGameSOC());1553 CPacket pak(&SVR.GetGameSOC());
15541554
1555 pak.Assemble("B", C_BOTS);1555 pak.Assemble("B", C_BOTS);
1556 for(i = 0; i < g_nPlayerInfos; i++) {1556 for(i = 0; i < g_nPlayerInfos; i++) {
1557 if (i != g_nServer) { // 원래 Bot만 지금은 서버를 제외한 전부...1557 if (i != g_nServer) { // Originally bots only; now everyone except the server...
1558 SPlayerInfo& pi = g_aPlayerInfos[i];1558 SPlayerInfo& pi = g_aPlayerInfos[i];
1559 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);1559 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);
1560 }1560 }
... 4 unchanged lines ...
1565 }1565 }
1566 break;1566 break;
1567 case 4:1567 case 4:
1568 // 게임이 성공적으로 만들어지면 서버와 클라이언트들의 Mech에 대한 정보들을 Set한다...1568 // Once the game is successfully created, set Mech info for server and all clients...
1569 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {1569 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {
1570 for(i = 0; i < g_nPlayerInfos; i++) {1570 for(i = 0; i < g_nPlayerInfos; i++) {
1571 if (i != g_nServer) { // 서버는 이미 SetMech에 진입한 상태...1571 if (i != g_nServer) { // Server has already entered SetMech...
1572 SPlayerInfo& pi = g_aPlayerInfos[i];1572 SPlayerInfo& pi = g_aPlayerInfos[i];
1573 if (!pi.m_bBot) {1573 if (!pi.m_bBot) {
1574 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);1574 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);
... 6 unchanged lines ...
1581 }1581 }
1582 break;1582 break;
1583 case 6:1583 case 6:
1584 //모든 클라이언드들이 서버에 참여하기를 기다린다.<==이 응답은 서버로 부터 얻을 수 있다.1584 //Wait for all clients to join the server. <==This response comes from the server.
1585 //참여가 모두 끝났으면, 서버로 하여금 게임을 Launch시키도록 한다.1585 //Once all clients have joined, instruct the server to Launch the game.
1586 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {1586 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {
1587 g_nMech4Comm = 9;1587 g_nMech4Comm = 9;
1588 }1588 }
... 358 unchanged lines ...
1947}1947}
1948#endif // !defined(CTCL_LAUNCHER)1948#endif // !defined(CTCL_LAUNCHER)
1949#endif // !defined(CTCLS_EXPORTS)1949#endif // !defined(CTCLS_EXPORTS)
+
+

Gameleap/code/Launcher/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/Launcher/ctime.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
22
3#ifdef _DEBUG3#ifdef _DEBUG
... 40 unchanged lines ...
4444
45long GetTotalSeconds(int nYear, int nMonth, int nDay)45long GetTotalSeconds(int nYear, int nMonth, int nDay)
46{46{
47 // nYear, nMonth, nDay날의 0시 0분 0초를 0으로 한 초단위 수...47 // Seconds elapsed since 00:00:00 on the date nYear/nMonth/nDay...
48 ASSERT(nYear >= 1970);48 ASSERT(nYear >= 1970);
49 ASSERT((1 <= nMonth) && (nMonth <= 12));49 ASSERT((1 <= nMonth) && (nMonth <= 12));
50 ASSERT(1 <= nDay);50 ASSERT(1 <= nDay);
... 6 unchanged lines ...
57 if (IsLeapYear(nStart)) {57 if (IsLeapYear(nStart)) {
58 nDays++;58 nDays++;
59 }59 }
60 lTotal += nDays * 24 * 60 * 60; // 24시간 60분 60초60 lTotal += nDays * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
61 }61 }
62 for(nStart = 1; nStart < nMonth; nStart++) {62 for(nStart = 1; nStart < nMonth; nStart++) {
63 int nDayEnd = GetDayEnd(nYear, nStart);63 int nDayEnd = GetDayEnd(nYear, nStart);
64 lTotal += nDayEnd * 24 * 60 * 60; // 24시간 60분 60초64 lTotal += nDayEnd * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
65 }65 }
66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24시간 60분 60초66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
6767
68 return lTotal;68 return lTotal;
69}69}
... 119 unchanged lines ...
189 t = *localtime(&m_lTime);189 t = *localtime(&m_lTime);
190}190}
191191
+
+

Gameleap/code/Launcher/ctime.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTIME__)1#if !defined(__CTIME__)
2#define __CTIME__2#define __CTIME__
33
... 12 unchanged lines ...
16public:16public:
17 union {17 union {
18 struct {18 struct {
19 // Bit Field는 앞쪽에 지정된 것이 LowBit이다.19 // Bit Fields declared first are at the low-bit end.
20 DWORD m_xDay: 5; // 2^0, 2^5-120 DWORD m_xDay: 5; // 2^0, 2^5-1
21 DWORD m_xMonth: 4; // 2^5, 2^4-121 DWORD m_xMonth: 4; // 2^5, 2^4-1
22 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-122 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1
... 30 unchanged lines ...
53};53};
5454
55#endif //!defined(__CTIME__)55#endif //!defined(__CTIME__)
+
+

Gameleap/code/Launcher/mugSocs.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include <fcntl.h>2#include <fcntl.h>
3#include <sys/types.h>3#include <sys/types.h>
... 1371 unchanged lines ...
1375{1375{
1376 if (pcszAddr) {1376 if (pcszAddr) {
1377 sin_addr.s_addr = inet_addr(pcszAddr);1377 sin_addr.s_addr = inet_addr(pcszAddr);
1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0이기 때문에 HOST/Network Addr무관1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0, HOST/Network Addr irrelevant
1379 hostent* pHN = gethostbyname(pcszAddr);1379 hostent* pHN = gethostbyname(pcszAddr);
1380 if (pHN) {1380 if (pHN) {
1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;
... 2285 unchanged lines ...
3667 pSOCListen = new CSOCListen(nPort);3667 pSOCListen = new CSOCListen(nPort);
3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);
3669 if (!DoListen(pSOCListen, nPort)) {3669 if (!DoListen(pSOCListen, nPort)) {
3670 // 같은 포트를 2번 Listen 하는 경우?...3670 // Case of Listen on the same port twice?...
3671 pSOCListen = NULL;3671 pSOCListen = NULL;
3672 }3672 }
36733673
... 472 unchanged lines ...
4146{4146{
4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);
4148}4148}
+
+

Gameleap/code/Launcher/mugsocs.h

+
+25 -25 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__MUGSOCS__)1#if !defined(__MUGSOCS__)
2#define __MUGSOCS__2#define __MUGSOCS__
33
... 37 unchanged lines ...
41#endif // !MAX_PACKET41#endif // !MAX_PACKET
42#ifndef MAX_FTPBUF42#ifndef MAX_FTPBUF
43#define MAX_FTPBUF 102443#define MAX_FTPBUF 1024
44// MAX_FTPBUF는 MAX_PACKET보다 반드시 작아야 한다?44// MAX_FTPBUF must be smaller than MAX_PACKET?
45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size
46#endif // !MAX_FTPBUF46#endif // !MAX_FTPBUF
4747
... 203 unchanged lines ...
251251
252#define ESTRF_USER_START 100252#define ESTRF_USER_START 100
253253
254#define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜254#define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in
255255
256void Randomize();256void Randomize();
257257
... 10 unchanged lines ...
268268
269class CDAPacket : public SOCBase_Class269class CDAPacket : public SOCBase_Class
270{270{
271// Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터...271// Variable parameters in the tail portion after processing the packet header...
272public:272public:
273 BYTE m_bCmd;273 BYTE m_bCmd;
274 BYTE m_bReserved;274 BYTE m_bReserved;
... 86 unchanged lines ...
361#define C_ROOM_MAKE 232361#define C_ROOM_MAKE 232
362// s - name, s - password362// s - name, s - password
363#define C_ROOM_JOIN 233363#define C_ROOM_JOIN 233
364// d - number(Room을 떠나는 것은 -1), s - password364// d - number (leaving a Room = -1), s - password
365#define S_ROOM_JOIN 233 // C_ROOM_MAKE/C_ROOM_JOIN의 결과...365#define S_ROOM_JOIN 233 // Result of C_ROOM_MAKE/C_ROOM_JOIN...
366// b - code(CSCODE_OK or error code), d - number366// b - code(CSCODE_OK or error code), d - number
367#define C_ROOM_UPDS 234 // CSCODE_... + @367#define C_ROOM_UPDS 234 // CSCODE_... + @
368368
... 15 unchanged lines ...
384#define S_FTP 254 //... see ftp.txt384#define S_FTP 254 //... see ftp.txt
385#define X_KEEPALIVE 255 // no parameters, should be ignored...385#define X_KEEPALIVE 255 // no parameters, should be ignored...
386386
387#define TX_SYSTEM 0 // 시스템 메시지...387#define TX_SYSTEM 0 // System message...
388#define TX_NORMAL 1 // 일반 채팅 텍스트388#define TX_NORMAL 1 // Regular chat text
389#define TX_WARNING 2 // 경고389#define TX_WARNING 2 // Warning
390#define TX_ERROR 3 // 오류390#define TX_ERROR 3 // Error
391#define TX_FATAL 4 // 치명적인 오류391#define TX_FATAL 4 // Fatal error
392#define TX_INFO 5 // 사용자 정보 등의 Information Result...392#define TX_INFO 5 // Information result (e.g. user info)...
393#define TX_SAY 6 // 귓속말393#define TX_SAY 6 // Whisper
394#define TX_LOCAL 7 // local echo....394#define TX_LOCAL 7 // local echo....
395#define TX_UNKNOWN 0xffff // unknown...395#define TX_UNKNOWN 0xffff // unknown...
396396
... 96 unchanged lines ...
493protected:493protected:
494 CSOC* m_pSOC;494 CSOC* m_pSOC;
495private:495private:
496 // 이 안의 블럭은 반드시 연속해야 한다...496 // The block within must be contiguous...
497 WORD m_wLen;497 WORD m_wLen;
498 BYTE m_ba[MAX_PACKET];498 BYTE m_ba[MAX_PACKET];
499 //499 //
... 87 unchanged lines ...
587class CFileTransfer : public TDBLNK(CFileTransfer*)587class CFileTransfer : public TDBLNK(CFileTransfer*)
588{588{
589public:589public:
590 // 서버로 부터 받은 정보... - 혹은 클라이언트에게 전해줄 정보...590 // Information received from server... - or information to relay to client...
591 BOOL m_bClientSite;591 BOOL m_bClientSite;
592 DWORD m_dwFTID;592 DWORD m_dwFTID;
593 DWORD m_dwGUARD;593 DWORD m_dwGUARD;
... 86 unchanged lines ...
680 // time out to Drop...680 // time out to Drop...
681 DWORD m_dwKARcvTimeOut;681 DWORD m_dwKARcvTimeOut;
682#ifdef WIN32682#ifdef WIN32
683 // 보통 Login과정에 쓰이는 윈도우 핸들683 // Window handle typically used during Login process
684 HWND m_hWndOwner;684 HWND m_hWndOwner;
685#endif // WIN32685#endif // WIN32
686 // 보통 글로벌 변수로 쓰이는 소켓포인터에 대한 자동 NULL Assign을 위하여686 // For auto NULL assignment of socket pointer typically used as a global variable
687 PSOC* m_ppSOC;687 PSOC* m_ppSOC;
688 // 소켓을 구분하기 위하여 사용자 프로그램에서 쓰이는 아이디688 // ID used in user program to identify a socket
689 // 주로 서버의 경우에는 클라이언트가 접속할 때마다 고유 아이디를 부여하여 사용689 // Mainly for servers: assigns a unique ID each time a client connects
690 // 하나의 Client가 다수의 서버에 접속할 때(주로 Star형) 각각의 접속을 구분할 때 사용690 // Used to distinguish each connection when a client connects to multiple servers (Star topology)
691 // 클라이언트가 하나의 서버에만 접속하는 경우 클라이언트가 서버에 접속 중인지 혹은 접속했는지를 판단할 때691 // When a client connects to only one server: used to check if client is connecting or already connected
692 // CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState()를 사용.692 // Use CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState().
693 // limits.h를 include해야함.693 // Must include limits.h.
694 // CSOC생성시의 기본값: CSOCServer == CSOC_SERVER_ID(=INT_MIN), CSOCClient == CSOC_CLIENT_ID(=0), CSOCListen == CSOC_LISTEN_ID(=-1)694 // Default values at CSOC creation: CSOCServer==CSOC_SERVER_ID(INT_MIN), CSOCClient==CSOC_CLIENT_ID(0), CSOCListen==CSOC_LISTEN_ID(-1)
695 union {695 union {
696 int m_nID;696 int m_nID;
697 UINT m_uID;697 UINT m_uID;
... 27 unchanged lines ...
725 DWORD m_xGracefulRemote: 1;725 DWORD m_xGracefulRemote: 1;
726 DWORD m_xAbortyLocal: 1;726 DWORD m_xAbortyLocal: 1;
727 DWORD m_xAbortyRemote: 1;727 DWORD m_xAbortyRemote: 1;
728 DWORD m_xLoginStarted: 1; // 사용자가 직접 값을 Setting해야 한다.728 DWORD m_xLoginStarted: 1; // Must be set directly by the caller.
729 DWORD m_xLoginOK: 1; // 사용자가 직접 값을 Setting해야 한다.729 DWORD m_xLoginOK: 1; // Must be set directly by the caller.
730 } m_DW;730 } m_DW;
731 DWORD m_dwVarFlags;731 DWORD m_dwVarFlags;
732 };732 };
... 536 unchanged lines ...
1269};1269};
12701270
1271#endif // !defined(__MUGSOCS__)1271#endif // !defined(__MUGSOCS__)
+
+

Gameleap/code/Launcher/nonmfc.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#ifdef _DEBUG1#ifdef _DEBUG
22
3#define AssertDebugBreak() _asm { int 3 }3#define AssertDebugBreak() _asm { int 3 }
... 2 unchanged lines ...
6{6{
7 char szBuf[MAX_PATH * 2];7 char szBuf[MAX_PATH * 2];
88
9 sprintf(szBuf, "\"%s\" 파일의 %d줄에서 ASSERT!!!\n\n디버깅을 하시겠습니까?", pcszfile, nLine);9 sprintf(szBuf, "ASSERT!!! in \"%s\" at line %d\n\nDo you want to debug?", pcszfile, nLine);
1010
11#ifdef WIN3211#ifdef WIN32
12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;
... 93 unchanged lines ...
106106
107#endif // _DEBUG107#endif // _DEBUG
108108
+
+

Gameleap/code/ctcls/nonmfc.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#ifdef _DEBUG1#ifdef _DEBUG
22
3#define AssertDebugBreak() _asm { int 3 }3#define AssertDebugBreak() _asm { int 3 }
... 2 unchanged lines ...
6{6{
7 char szBuf[MAX_PATH * 2];7 char szBuf[MAX_PATH * 2];
88
9 sprintf(szBuf, "\"%s\" 파일의 %d줄에서 ASSERT!!!\n\n디버깅을 하시겠습니까?", pcszfile, nLine);9 sprintf(szBuf, "ASSERT!!! in \"%s\" at line %d\n\nDo you want to debug?", pcszfile, nLine);
1010
11#ifdef WIN3211#ifdef WIN32
12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;
... 93 unchanged lines ...
106106
107#endif // _DEBUG107#endif // _DEBUG
108108
+
+

Gameleap/code/mw4/Code/MW4/@save_criomain.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + +
1/*1/*
2LONG g_JoystickXStart = INT_MAX;2LONG g_JoystickXStart = INT_MAX;
3LONG g_JoystickXEnd = INT_MIN;3LONG g_JoystickXEnd = INT_MIN;
... 100 unchanged lines ...
104104
105 lJ = JoystickY_Center - g_JoystickY;105 lJ = JoystickY_Center - g_JoystickY;
106106
107 // 고감도107 // High sensitivity
108 // Dead Zone 에서 벗어난 시점을 0으로 계산한다108 // Calculate from the moment of exiting the Dead Zone as 0
109 if (lJ > 0) {109 if (lJ > 0) {
110 lJ -= DEADZONE_JOYSTICK;110 lJ -= DEADZONE_JOYSTICK;
111 } else if (lJ < 0) {111 } else if (lJ < 0) {
... 57 unchanged lines ...
169169
170}170}
171*/171*/
+
+

Gameleap/code/mw4/Code/MW4/GUIRadarManager.cpp

+
+90 -90 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
22
3#include "vehicleinterface.hpp"3#include "vehicleinterface.hpp"
... 15 unchanged lines ...
19#include <MLR\MLRTexture.hpp>19#include <MLR\MLRTexture.hpp>
2020
21#include "MWObject.hpp"21#include "MWObject.hpp"
22//상훈짱 begin22//sanghoon begin
23#include <windows.h>23#include <windows.h>
24#include <ddraw.h>24#include <ddraw.h>
25#include <d3d.h>25#include <d3d.h>
2626
27#include <GameOS\render.hpp>27#include <GameOS\render.hpp>
28#define RADAR_SCALE 2.8f28#define RADAR_SCALE 2.8f
29//상훈짱 end29//sanghoon end
3030
31int m_gCool; // 鉉31int m_gCool; // hyun: coolant
3232
33namespace MW4AI33namespace MW4AI
34{34{
... 86 unchanged lines ...
121//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~121//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122//122//
123123
124//상훈124//sanghoon
125extern bool sh_game_started;125extern bool sh_game_started;
126126
127GUIRadarManager::~GUIRadarManager()127GUIRadarManager::~GUIRadarManager()
128{128{
129 //상훈 앞129 //sanghoon begin
130 sh_game_started=false;130 sh_game_started=false;
131 //상훈 뒤131 //sanghoon end
132 delete m_RangeText;132 delete m_RangeText;
133133
134}134}
135135
136void DrawMapBoundary()136void DrawMapBoundary()
137{137{
138 //DrawImplementation에서 추출해왔음..138 //Extracted from DrawImplementation..
139 //미션이 시작한 후 한번만 그리게된다.(맵상의 작전 영역은 변하지 않으므로..)139 //Drawn only once after mission start (operation area on map does not change..)
140 Scalar multx,multz;140 Scalar multx,multz;
141141
142 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);142 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);
... 5 unchanged lines ...
148 int numpts = ptlist.GetLength ();148 int numpts = ptlist.GetLength ();
149149
150 HDC hdcBackImage;150 HDC hdcBackImage;
151 radar_device.pDDSBackground->GetDC( &hdcBackImage);//백버퍼 준비용.. 이미지..151 radar_device.pDDSBackground->GetDC( &hdcBackImage);//Image for back buffer preparation..
152 HPEN hpenold=(HPEN)SelectObject(hdcBackImage,CreatePen(PS_SOLID,1,RGB(255,0,0)));152 HPEN hpenold=(HPEN)SelectObject(hdcBackImage,CreatePen(PS_SOLID,1,RGB(255,0,0)));
153153
154 for (int i=0;i<numpts;i++){154 for (int i=0;i<numpts;i++){
... 29 unchanged lines ...
184184
185void GUIRadarManager::Reset (void)185void GUIRadarManager::Reset (void)
186{186{
187 //상훈187 //sanghoon
188188
189 MWApplication *m_App;189 MWApplication *m_App;
190 m_App = MWApplication::GetInstance ();190 m_App = MWApplication::GetInstance ();
... 1 unchanged lines ...
192 bool networking = MWApplication::GetInstance()->networkingFlag;192 bool networking = MWApplication::GetInstance()->networkingFlag;
193 if (!networking)193 if (!networking)
194 m_RadarMode = 0;194 m_RadarMode = 0;
195 //상훈195 //sanghoon
196 if(hsh_initialized)196 if(hsh_initialized)
197 DrawMapBoundary();197 DrawMapBoundary();
198}198}
199199
200//상훈 앞200//sanghoon begin
201/*201/*
202char * radar_text[]={202char * radar_text[]={
203 "JUMP\nJET","SHUT\nDOWN","OVER\nRIDE","FLUSH","CROUCH","",203 "JUMP\nJET","SHUT\nDOWN","OVER\nRIDE","FLUSH","CROUCH","",
204 "RANGE","RADAR\nMODE","LIGHT\nAMP","SEARCH\nLIGHT","AUTO\nCENTER"204 "RANGE","RADAR\nMODE","LIGHT\nAMP","SEARCH\nLIGHT","AUTO\nCENTER"
205};205};
206*/206*/
207//상훈 뒤207//sanghoon end
208208
209//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~209//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210//210//
... 35 unchanged lines ...
246 Check_Pointer(vehicle);246 Check_Pointer(vehicle);
247 Check_Pointer(vehicle->GetSensor());247 Check_Pointer(vehicle->GetSensor());
248/*248/*
249 //상훈 앞 맵249 //sanghoon begin: map
250 Scalar multx,multz;250 Scalar multx,multz;
251251
252 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);252 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);
... 402 unchanged lines ...
655 int i;655 int i;
656656
657 // Secondary Maps657 // Secondary Maps
658 //맵과 맵 경계선을 그린다. (게임중에 변하지 않으므로 한번만 그린다.)658 //Draw map and boundary. (Drawn once since it does not change during game.)
659659
660 if(!radar_device.MapDrawn){660 if(!radar_device.MapDrawn){
661 extern char AssetsDirectory1[MAX_PATH];661 extern char AssetsDirectory1[MAX_PATH];
... 62 unchanged lines ...
724 Check_Pointer(vehicle->GetSensor());724 Check_Pointer(vehicle->GetSensor());
725725
726726
727 ///////////////////// MAP 시작 //////////////////////727 ///////////////////// MAP BEGIN //////////////////////
728 /////Torso Sweep그리기.. 시작728 /////Torso Sweep draw.. begin
729 Scalar multx,multz;729 Scalar multx,multz;
730730
731 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);731 multx = 200.0f/(MW4AI::MaxX - MW4AI::MinX);
... 27 unchanged lines ...
759 radar_device.DrawQuad(-pos.x+240-1,-pos.y+508-1,-pos.x+240+2,-pos.y+508+2,0xFF0000C0);759 radar_device.DrawQuad(-pos.x+240-1,-pos.y+508-1,-pos.x+240+2,-pos.y+508+2,0xFF0000C0);
760 }760 }
761761
762 /////Torso Sweep그리기.. 끝762 /////Torso Sweep draw.. end
763763
764 //맵상에 오브젝트들 그리기.764 //Draw objects on map.
765 {765 {
766 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);766 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);
767 MWObject *hsh_current_object;767 MWObject *hsh_current_object;
768 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++){768 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++){
769 hsh_current_object=vehicle->GetSensor()->GetSensorData()[i]->object.GetCurrent();769 hsh_current_object=vehicle->GetSensor()->GetSensorData()[i]->object.GetCurrent();
770 if (hsh_current_object != NULL){770 if (hsh_current_object != NULL){
771 bool draw_contact = true;//해당 오브젝트를 그릴것인지..에대한 플래그..771 bool draw_contact = true;//Flag: whether to draw this object..
772772
773// MSL 5.02 Bot on Map773// MSL 5.02 Bot on Map
774 if (hsh_current_object->GetAI()==NULL && (MWApplication::GetInstance()->networkingFlag == false))draw_contact = false;774 if (hsh_current_object->GetAI()==NULL && (MWApplication::GetInstance()->networkingFlag == false))draw_contact = false;
... 58 unchanged lines ...
833 }833 }
834 }834 }
835835
836 ///////////////////// MAP 끝 //////////////////////836 ///////////////////// MAP END //////////////////////
837837
838838
839 ///////////////////// RADAR 시작 //////////////////////839 ///////////////////// RADAR BEGIN //////////////////////
840840
841 radar_device.pD3DDevice->SetTexture(0,0);841 radar_device.pD3DDevice->SetTexture(0,0);
842842
... 12 unchanged lines ...
855 world_to_vehicle.Invert(vehicle_to_world);855 world_to_vehicle.Invert(vehicle_to_world);
856856
857857
858 // 경계선 그리기..858 // Draw boundary line..
859859
860 Mission *miss;860 Mission *miss;
861 miss = Mission::GetInstance ();861 miss = Mission::GetInstance ();
... 38 unchanged lines ...
900 }900 }
901901
902902
903 //Torso View그리기..903 //Draw Torso View..
904 //HSH_RenderRadarTorsoView(-m_TorsoTwist);904 //HSH_RenderRadarTorsoView(-m_TorsoTwist);
905 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);905 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);
906 radar_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, TRUE );906 radar_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, TRUE );
... 7 unchanged lines ...
914 radar_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MAGFILTER, D3DTFG_POINT );914 radar_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MAGFILTER, D3DTFG_POINT );
915 radar_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MINFILTER, D3DTFG_POINT );915 radar_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MINFILTER, D3DTFG_POINT );
916916
917 //Radar범위 그리기.917 //Draw Radar range.
918 char text[10];918 char text[10];
919 if (radarRange != radarRangeOrg)919 if (radarRange != radarRangeOrg)
920 sprintf (text,"NoLmt");920 sprintf (text,"NoLmt");
... 2 unchanged lines ...
923 //HSH_DrawRadarNumber(345,386,text,1);923 //HSH_DrawRadarNumber(345,386,text,1);
924 radar_device.pFont[1].DrawText(80,350,0xFFFFFFFF,text,TEXTALIGN_ORG);924 radar_device.pFont[1].DrawText(80,350,0xFFFFFFFF,text,TEXTALIGN_ORG);
925925
926 //ActiveMode그리기..926 //Draw ActiveMode..
927 char* modechar=(vehicle->GetSensor ()->GetSensorMode () == Sensor::ActiveMode)?"Active":"Passive";927 char* modechar=(vehicle->GetSensor ()->GetSensorMode () == Sensor::ActiveMode)?"Active":"Passive";
928 radar_device.pFont[1].DrawText(395,350,0xFFFFFF,modechar,TEXTALIGN_ORG);928 radar_device.pFont[1].DrawText(395,350,0xFFFFFF,modechar,TEXTALIGN_ORG);
929929
930 //빌딩 그리기930 //Draw buildings.
931 MWObject *current_object;931 MWObject *current_object;
932 for(i=0;i<vehicle->GetSensor()->numberOfBuildingContacts;i++)932 for(i=0;i<vehicle->GetSensor()->numberOfBuildingContacts;i++)
933 {933 {
... 59 unchanged lines ...
993 }993 }
994 }994 }
995995
996 //Object그리기.996 //Draw Objects.
997 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++){997 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++){
998 current_object=vehicle->GetSensor()->GetSensorData()[i]->object.GetCurrent();998 current_object=vehicle->GetSensor()->GetSensorData()[i]->object.GetCurrent();
999 if (current_object != NULL){999 if (current_object != NULL){
... 81 unchanged lines ...
1081 }1081 }
1082 }1082 }
10831083
1084 //Navigation Point그리기.1084 //Draw Navigation Points.
1085 j=0;1085 j=0;
1086 ChainIteratorOf<NavPoint *> iter (NavPoint::s_RevealedNavPoints);1086 ChainIteratorOf<NavPoint *> iter (NavPoint::s_RevealedNavPoints);
1087 NavPoint *nav;1087 NavPoint *nav;
... 48 unchanged lines ...
1136 radar_device.DrawTexture(posx2,posy2,0xFFFFFFFF,(60+id*12),0,(60+id*12)+12,12);1136 radar_device.DrawTexture(posx2,posy2,0xFFFFFFFF,(60+id*12),0,(60+id*12)+12,12);
1137 }1137 }
11381138
1139 ///////////////////// RADAR 끝 //////////////////////1139 ///////////////////// RADAR END //////////////////////
1140}1140}
1141}1141}
11421142
... 443 unchanged lines ...
15861586
15871587
1588 DWORD color = MakeColor (64,64,64,255);1588 DWORD color = MakeColor (64,64,64,255);
1589 //막대 게이지의 백그라운드.. 기준..1589 //Bar gauge background baseline..
1590 m_Textures[1]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);1590 m_Textures[1]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);
1591 color = MakeColor (255,255,255,255);1591 color = MakeColor (255,255,255,255);
1592 loc.y += size.y - targetyval;1592 loc.y += size.y - targetyval;
1593 size.y = (Scalar) targetyval;1593 size.y = (Scalar) targetyval;
1594 m_Textures[0]->TopLeft (m_Textures[0]->Left (),(Scalar) (m_BaseBottom - targetyval));1594 m_Textures[0]->TopLeft (m_Textures[0]->Left (),(Scalar) (m_BaseBottom - targetyval));
1595 m_Textures[0]->BlendMode (gos_BlendDecal);1595 m_Textures[0]->BlendMode (gos_BlendDecal);
1596 //삼색 막대 게이지 그리기..(clipping size를 조절함으로써.. 값을 조절하는 효과를 나타낸다.)1596 //Draw tri-color bar gauge.. (value adjusted by modifying clip size..)
15971597
1598 m_Textures[0]->Draw (loc,size,color,HUDTexture::NO_FLIP);1598 m_Textures[0]->Draw (loc,size,color,HUDTexture::NO_FLIP);
1599 color = MakeColor (0,125,0,250);1599 color = MakeColor (0,125,0,250);
1600 size = Size ();1600 size = Size ();
1601 loc = Location ();1601 loc = Location ();
1602 //막대 게이지의 프레임.1602 //Bar gauge frame.
1603 DrawFrame ((int) (loc.x-2),(int) (loc.y-2),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1603 DrawFrame ((int) (loc.x-2),(int) (loc.y-2),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
16041604
1605 //온도 텍스트의 프레임..1605 //Temperature text frame..
1606 DrawFrame (261,542,303,560,color);1606 DrawFrame (261,542,303,560,color);
1607 m_HeatText->TopLeft (261,542);1607 m_HeatText->TopLeft (261,542);
1608 m_HeatText->BottomRight (303,560);1608 m_HeatText->BottomRight (303,560);
... 2 unchanged lines ...
1611 DWORD textw,texth;1611 DWORD textw,texth;
1612 m_HeatText->DrawSize (textw,texth);1612 m_HeatText->DrawSize (textw,texth);
16131613
1614 //온도를 정해진 색으로 출력한다.(게이지는 텍스쳐이므로 색을 지정할 필요가 없다.)1614 //Display temperature in its designated color. (Gauge is a texture, no color spec needed.)
1615 m_HeatText->Draw (Point3D (282.0f - (textw/2.0f),551.0f - (texth/2.0f),0.9f));1615 m_HeatText->Draw (Point3D (282.0f - (textw/2.0f),551.0f - (texth/2.0f),0.9f));
1616 DrawLine (304,549,310,549,color);1616 DrawLine (304,549,310,549,color);
1617 DrawLine (309,(int) heaty,309,549,color);1617 DrawLine (309,(int) heaty,309,549,color);
1618 DrawLine ((int) (loc.x-2),(int) (heaty),309,(int) (heaty),color);1618 DrawLine ((int) (loc.x-2),(int) (heaty),309,(int) (heaty),color);
1619}else if(sh_step==1){1619}else if(sh_step==1){
1620 //radar manager는 shutdown 시에 호출되지 않으므로.. 여기서 추가적으로 state를 업데이트 시켜준다.1620 //radar manager is not called on shutdown.. state updated additionally here.
1621 MechWarrior4::VehicleInterface* p = MechWarrior4::VehicleInterface::GetInstance();1621 MechWarrior4::VehicleInterface* p = MechWarrior4::VehicleInterface::GetInstance();
1622 p->GetGUIRadarStates(radar_device.recent_state);1622 p->GetGUIRadarStates(radar_device.recent_state);
16231623
1624 int targetyval = (int) ((m_Heat * 23)/100.0f);1624 int targetyval = (int) ((m_Heat * 23)/100.0f);
1625 Clamp (targetyval,0,22);1625 Clamp (targetyval,0,22);
1626 //heat의 범위는??? 0~100???1626 //What is the range of heat??? 0~100???
16271627
1628 //target은 그리지 않고 현재 온도만 그린다.1628 //Draw current temperature only, without the target.
1629 float sizey=256;1629 float sizey=256;
1630 //삼색 막대 게이지 그리기..(clipping size를 조절함으로써.. 값을 조절하는 효과를 나타낸다.)1630 //Draw tri-color bar gauge.. (value adjusted by modifying clip size..)
1631 {1631 {
1632 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);1632 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);
1633 //backbground image1633 //backbground image
... 8 unchanged lines ...
1642 radar_device.pD3DDevice->SetTexture(0,0);1642 radar_device.pD3DDevice->SetTexture(0,0);
1643 radar_device.DrawFrame(54-1,630-188-3,80+1,630+3,0xFFFFFFFF);1643 radar_device.DrawFrame(54-1,630-188-3,80+1,630+3,0xFFFFFFFF);
1644 }1644 }
1645 //텍스트1645 //Text
1646 {1646 {
1647 char buf[16];1647 char buf[16];
1648// MSL 5.02 Heat Scale Header1648// MSL 5.02 Heat Scale Header
... 15 unchanged lines ...
1664 m_TargetJump = -1.0f;1664 m_TargetJump = -1.0f;
1665 Location (Point3D (467,539,0.9f));1665 Location (Point3D (467,539,0.9f));
1666 Size (Point3D (7,49,0.9f));1666 Size (Point3D (7,49,0.9f));
1667 //j라고 하는 작은 글자... <==실제로는 잘 보이지 않는다.1667 //Small 'j' character... <==actually barely visible.
1668 AddTexture ("hud\\hud4",0,98,200,106,207);1668 AddTexture ("hud\\hud4",0,98,200,106,207);
1669}1669}
16701670
... 32 unchanged lines ...
1703 size = Size ();1703 size = Size ();
1704 loc = Location ();1704 loc = Location ();
17051705
1706 DWORD color = MakeColor (255,255,255,250); // 원래 255,255,255,250이었음1706 DWORD color = MakeColor (255,255,255,250); // was originally 255,255,255,250
1707 //j라고 하는 작은 글자...1707 //Small 'j' character...
1708 m_Textures[0]->Draw (Point3D (loc.x+2,loc.y - m_Textures[0]->Size().y-2.0f,0.9f),m_Textures[0]->Size (),color);1708 m_Textures[0]->Draw (Point3D (loc.x+2,loc.y - m_Textures[0]->Size().y-2.0f,0.9f),m_Textures[0]->Size (),color);
1709 int targetyval = (int) (m_Jump * size.y);1709 int targetyval = (int) (m_Jump * size.y);
17101710
1711 color = MakeColor (0,125,0,250);1711 color = MakeColor (0,125,0,250);
17121712
1713 //녹색 게이지..1713 //Green gauge..
1714 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1714 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1715 if ((m_Jump != 0) && (m_Alpha != 0))1715 if ((m_Jump != 0) && (m_Alpha != 0))
1716 {1716 {
... 1 unchanged lines ...
1718 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1718 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1719 }1719 }
17201720
1721 //게이지 맨위의 흰선..1721 //White line at the top of gauge..
1722 color = MakeColor (255,255,255,200);1722 color = MakeColor (255,255,255,200);
1723 DrawLine ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y-targetyval),color);1723 DrawLine ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y-targetyval),color);
17241724
1725 //테두리 그리기..1725 //Draw border..
1726 color = MakeColor (0,125,0,250);1726 color = MakeColor (0,125,0,250);
1727 DrawFrame ((int) loc.x,(int) (loc.y),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1727 DrawFrame ((int) loc.x,(int) (loc.y),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1728}else if(sh_step==1){1728}else if(sh_step==1){
... 7 unchanged lines ...
1736}1736}
1737}1737}
17381738
1739//전반적으로 jumpjet과 거의 같다.1739//Overall almost identical to jumpjet.
1740HUDCoolant::HUDCoolant ()1740HUDCoolant::HUDCoolant ()
1741{1741{
1742 m_Alpha = 255;1742 m_Alpha = 255;
... 2 unchanged lines ...
1745 m_Cool = 100;1745 m_Cool = 100;
1746 Location (Point3D (332,539,0.9f));1746 Location (Point3D (332,539,0.9f));
1747 Size (Point3D (7,49,0.9f));1747 Size (Point3D (7,49,0.9f));
1748 //C라고 하는 작은 글자..1748 //Small 'C' character..
1749 AddTexture ("hud\\hud4",0,88,200,96,207);1749 AddTexture ("hud\\hud4",0,88,200,96,207);
1750}1750}
17511751
... 30 unchanged lines ...
1782 loc = Location ();1782 loc = Location ();
17831783
1784 DWORD color = MakeColor (0,125,0,250);1784 DWORD color = MakeColor (0,125,0,250);
1785 //C라고 하는 작은 글자..1785 //Small 'C' character..
1786 m_Textures[0]->Draw (Point3D (loc.x+2,loc.y - m_Textures[0]->Size().y-2.0f,0.9f),m_Textures[0]->Size (),color);1786 m_Textures[0]->Draw (Point3D (loc.x+2,loc.y - m_Textures[0]->Size().y-2.0f,0.9f),m_Textures[0]->Size (),color);
17871787
1788 m_gCool = m_Cool;1788 m_gCool = m_Cool;
... 1 unchanged lines ...
1790 Clamp (targetyval,0,(int) size.y);1790 Clamp (targetyval,0,(int) size.y);
17911791
1792 color = MakeColor (0,100,255,250);1792 color = MakeColor (0,100,255,250);
1793 //게이지 그리기..1793 //Draw gauge..
1794 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1794 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1795 if ((m_Cool != 0) && (m_Alpha != 0))1795 if ((m_Cool != 0) && (m_Alpha != 0))
1796 {1796 {
1797 //flush했을때.. 흰색으로 깜박이는 효과 그리기...1797 //When flushed.. draw white blinking effect...
1798 color = MakeColor (255,255,255,m_Alpha);1798 color = MakeColor (255,255,255,m_Alpha);
1799 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1799 my_DrawRect ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1800 }1800 }
1801 color = MakeColor (255,255,255,200);1801 color = MakeColor (255,255,255,200);
1802 //게이지 위쪽의 흰선..1802 //White line above gauge..
1803 DrawLine ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y-targetyval),color);1803 DrawLine ((int) (loc.x),(int) (loc.y+size.y-targetyval),(int) (loc.x+size.x),(int) (loc.y+size.y-targetyval),color);
18041804
1805 //게이지를 둘러싸는 프레임..1805 //Frame surrounding gauge..
1806 color = MakeColor (0,125,0,250);1806 color = MakeColor (0,125,0,250);
1807 DrawFrame ((int) loc.x,(int) (loc.y),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1807 DrawFrame ((int) loc.x,(int) (loc.y),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
1808}else if(sh_step==1){1808}else if(sh_step==1){
... 8 unchanged lines ...
1817}1817}
18181818
18191819
1820//속도를 나타내는... HUD Component1820//HUD Component displaying speed...
1821namespace NHUDSPEED1821namespace NHUDSPEED
1822{1822{
1823// const int for_speed_box[12] = {0,4,8,12,16,20,24,28,32,36,40,44};1823// const int for_speed_box[12] = {0,4,8,12,16,20,24,28,32,36,40,44};
... 104 unchanged lines ...
1928 speedy = loc.y + 56 - fred;1928 speedy = loc.y + 56 - fred;
19291929
1930 DWORD color = MakeColor (255,255,255,255);1930 DWORD color = MakeColor (255,255,255,255);
1931 //게이지 백그라운드 눈금..1931 //Gauge background tick marks..
1932 m_Textures[1]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);1932 m_Textures[1]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);
1933 loc.y += top;1933 loc.y += top;
1934 size.y = (Scalar) bottom - top;1934 size.y = (Scalar) bottom - top;
19351935
1936 //삼색 막대 게이지 그리기..(clipping size를 조절함으로써.. 값을 조절하는 효과를 나타낸다.)1936 //Draw tri-color bar gauge.. (value adjusted by modifying clip size..)
19371937
1938 m_Textures[0]->TopLeft (m_Textures[0]->Left (),(Scalar) (top));1938 m_Textures[0]->TopLeft (m_Textures[0]->Left (),(Scalar) (top));
1939 m_Textures[0]->BottomRight (m_Textures[0]->Right (),(Scalar) (bottom));1939 m_Textures[0]->BottomRight (m_Textures[0]->Right (),(Scalar) (bottom));
1940 m_Textures[0]->BlendMode (gos_BlendDecal);1940 m_Textures[0]->BlendMode (gos_BlendDecal);
1941 //colored 게이지..녹색으로 되어 있다.1941 //Colored gauge.. currently green.
1942 m_Textures[0]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);1942 m_Textures[0]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);
1943 color = MakeColor (0,125,0,250);1943 color = MakeColor (0,125,0,250);
1944 size = Size ();1944 size = Size ();
1945 loc = Location ();1945 loc = Location ();
1946 //게이지를 둘러싸는.. 프레임 그리기..1946 //Draw frame surrounding gauge..
1947 DrawFrame ((int) (loc.x-2),(int) (loc.y-2),(int) (loc.x+size.x),(int) (loc.y+size.y),color);1947 DrawFrame ((int) (loc.x-2),(int) (loc.y-2),(int) (loc.x+size.x),(int) (loc.y+size.y),color);
19481948
1949 //속도 표시하는 프레임...1949 //Speed display frame...
1950 DrawFrame (506,537,548,555,color);1950 DrawFrame (506,537,548,555,color);
1951 m_SpeedText->TopLeft (506,537);1951 m_SpeedText->TopLeft (506,537);
1952 m_SpeedText->BottomRight (548,555);1952 m_SpeedText->BottomRight (548,555);
... 5 unchanged lines ...
19581958
1959 DWORD textw,texth;1959 DWORD textw,texth;
1960 m_SpeedText->DrawSize (textw,texth);1960 m_SpeedText->DrawSize (textw,texth);
1961 //속도 표시하는 텍스트.. 앞/뒤 방향에 따라서 색이 녹식/파란색.....으로 된다.1961 //Speed text.. color is green/blue depending on forward/backward direction.....
1962 m_SpeedText->Draw (Point3D (527.0f - (textw/2.0f),546.0f - (texth/2.0f),0.9f));1962 m_SpeedText->Draw (Point3D (527.0f - (textw/2.0f),546.0f - (texth/2.0f),0.9f));
1963 //속도프레임-게이지 프레임 연결하는 3 segment라인..1963 //3-segment line connecting speed frame to gauge frame..
1964 DrawLine (498,549,506,549,color);1964 DrawLine (498,549,506,549,color);
1965 DrawLine (498,(int) speedy,498,549,color);1965 DrawLine (498,(int) speedy,498,549,color);
1966 DrawLine ((int) (loc.x+size.x+2),(int) (speedy),498,(int) (speedy),color);1966 DrawLine ((int) (loc.x+size.x+2),(int) (speedy),498,(int) (speedy),color);
1967}else if(sh_step==1){1967}else if(sh_step==1){
1968 //적절하지는 않지만.. 미션 시간을 speed에서 같이 그린다.1968 //Not ideal, but draw mission time alongside speed display.
1969 //미션 시간 그리기...hudtimer.cpp에 DrawImplementation에서 따온것임..1969 //Draw mission timer... taken from DrawImplementation in hudtimer.cpp..
1970 {1970 {
1971 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());1971 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());
1972 Verify (mwmiss);1972 Verify (mwmiss);
... 10 unchanged lines ...
1983 }1983 }
19841984
1985 float offset;1985 float offset;
1986 //126,62.. 188의 속도.. 2:1로 나누면..1986 //126,62.. speed 188.. divided 2:1..
19871987
1988 //backbground image1988 //backbground image
1989 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);1989 radar_device.pD3DDevice->SetTexture(0,radar_device.pDDSTexture);
... 104 unchanged lines ...
2094 navPointName = new HUDText ();2094 navPointName = new HUDText ();
2095 navPointRange = new HUDNumberText ();2095 navPointRange = new HUDNumberText ();
2096 playerAngle = new HUDNumberText ();2096 playerAngle = new HUDNumberText ();
2097 navPointRange->SetSize (HUDText::MEDIUM_SIZE); // 원래 SMALL_SIZE였음2097 navPointRange->SetSize (HUDText::MEDIUM_SIZE); // was originally SMALL_SIZE
2098 playerAngle->SetSize (HUDText::MEDIUM_SIZE); // 원래 SMALL_SIZE였음2098 playerAngle->SetSize (HUDText::MEDIUM_SIZE); // was originally SMALL_SIZE
20992099
2100 m_NavAlphaTime = 0;2100 m_NavAlphaTime = 0;
21012101
... 101 unchanged lines ...
2203 m_Textures[10]->TopLeft ((Scalar) (m_BaseLeft + offset),m_Textures[10]->Top ());2203 m_Textures[10]->TopLeft ((Scalar) (m_BaseLeft + offset),m_Textures[10]->Top ());
2204 size = m_Textures[10]->Size ();2204 size = m_Textures[10]->Size ();
2205 m_Textures[10]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);2205 m_Textures[10]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);
2206 //2번 aux의 줄자..의 대부분...(이걸로 표시되지 않을때.. 다음걸로 표시한다.)2206 //Main portion of aux2 ruler... (if not displayable here, use next one.)
2207#if 12207#if 1
2208 loc.x += size.x;2208 loc.x += size.x;
2209 loc.x-=1;2209 loc.x-=1;
2210 m_Textures[13]->BottomRight ((Scalar) m_BaseLeft+offset,m_Textures[13]->Bottom ());2210 m_Textures[13]->BottomRight ((Scalar) m_BaseLeft+offset,m_Textures[13]->Bottom ());
2211 size = m_Textures[13]->Size ();2211 size = m_Textures[13]->Size ();
2212 m_Textures[13]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);2212 m_Textures[13]->Draw (loc,size,color,HUDTexture::NO_FLIP,true);
2213 //2번 aux의 줄자의 짦은 부분....2213 //Short tick marks of aux2 ruler....
2214#endif2214#endif
22152215
2216 int heading = m_PlayerFacing;2216 int heading = m_PlayerFacing;
... 6 unchanged lines ...
2223 bool draw = false;2223 bool draw = false;
2224 if (dir < 0)2224 if (dir < 0)
2225 dir += 360;2225 dir += 360;
2226 else if (dir > 360)//상훈 고침.. 원래는 --> "else if (dir > 360)" 였음..2226 else if (dir > 360)//sanghoon fix: original was --> "else if (dir > 360)"..
2227 dir -= 360;2227 dir -= 360;
2228 switch (dir)2228 switch (dir)
2229 {2229 {
... 35 unchanged lines ...
2265 navText[textid]->DrawSize (dx,dy);2265 navText[textid]->DrawSize (dx,dy);
2266 textloc.x -= dx/2;2266 textloc.x -= dx/2;
2267 navText[textid]->Draw (textloc);2267 navText[textid]->Draw (textloc);
2268 //2번 aux방위각 표시.. 340 350 N 10 20...2268 //Aux2 bearing display.. 340 350 N 10 20...
2269 }2269 }
2270 }2270 }
22712271
2272 //2번 aux mech의 방향각도 표시...2272 //Aux2 mech heading angle display...
2273 color = Color ();2273 color = Color ();
2274 DrawFrame (400-13,10,400+13,22,color);2274 DrawFrame (400-13,10,400+13,22,color);
2275 DWORD dx,dy;2275 DWORD dx,dy;
... 12 unchanged lines ...
2288 size = m_Textures[11]->Size ();2288 size = m_Textures[11]->Size ();
2289 color = Color ();2289 color = Color ();
2290 m_Textures[11]->Draw (Point3D (400.0f,44.0f,0.9f),size,color);2290 m_Textures[11]->Draw (Point3D (400.0f,44.0f,0.9f),size,color);
2291 //2번 aux 중심표시.. 역삼각형..(매우작음)2291 //Aux2 center indicator.. inverted triangle.. (very small)
22922292
2293 if (m_NavPointRange != -1)2293 if (m_NavPointRange != -1)
2294 {2294 {
... 4 unchanged lines ...
2299 textloc.y = 0;2299 textloc.y = 0;
2300 textloc.z = 0;2300 textloc.z = 0;
2301 // Draw navpoint bug or arrows2301 // Draw navpoint bug or arrows
2302 //2번 aux navigation2302 //Aux2 navigation
2303 //navpoint bug:... 목표를 나타내는 동그라미를 발한다.(ruler안에 표시가능할때)2303 //navpoint: draw circle indicating objective (when displayable in ruler)
2304 //arrow ruler안에 표시가 불가능할때.. 방향만 좌/우 화살표로서 표시한다.2304 //When unable to display in arrow ruler.. show direction with left/right arrow only.
2305 DWORD color = (m_NavAlpha << 24) + 0x00AF00;2305 DWORD color = (m_NavAlpha << 24) + 0x00AF00;
23062306
2307 size = Size ();2307 size = Size ();
... 38 unchanged lines ...
2346 textloc.y += 5;2346 textloc.y += 5;
2347 textloc.z = 0.9f;2347 textloc.z = 0.9f;
2348 }2348 }
2349 //지점 타켓의 이름을 그린다.2349 //Draw the name of the point target.
2350 DWORD dx,dy;2350 DWORD dx,dy;
2351 navPointName->TopLeft (textloc.x-50.0f,textloc.y-2.0f);2351 navPointName->TopLeft (textloc.x-50.0f,textloc.y-2.0f);
2352 navPointName->BottomRight (textloc.x+50.0f,textloc.y+20.0f);2352 navPointName->BottomRight (textloc.x+50.0f,textloc.y+20.0f);
... 4 unchanged lines ...
2357 navPointName->Draw (textloc);2357 navPointName->Draw (textloc);
2358 textloc.x += dx/2;2358 textloc.x += dx/2;
23592359
2360 //지점 타켓의 거리를 그린다.2360 //Draw distance to point target.
2361 textloc.y += 12.0f;2361 textloc.y += 12.0f;
2362 navPointName->TopLeft (textloc.x-50.0f,textloc.y-2.0f);2362 navPointName->TopLeft (textloc.x-50.0f,textloc.y-2.0f);
2363 navPointName->BottomRight (textloc.x+50.0f,textloc.y+20.0f);2363 navPointName->BottomRight (textloc.x+50.0f,textloc.y+20.0f);
... 139 unchanged lines ...
2503 if(VehGetShutdownState()!=1)2503 if(VehGetShutdownState()!=1)
2504 {2504 {
2505 mfd_device.DrawTexture(120,140,0xFFFFFFFF,testoffset+1,256,testoffset+402+1,256+18);2505 mfd_device.DrawTexture(120,140,0xFFFFFFFF,testoffset+1,256,testoffset+402+1,256+18);
2506 //눈금위의 방위각 그리기2506 //Draw bearing above tick marks
2507 int heading = m_PlayerFacing;2507 int heading = m_PlayerFacing;
2508 int ii=0;2508 int ii=0;
2509 for (int i=heading-20;i<=heading+20;i++,ii++){2509 for (int i=heading-20;i<=heading+20;i++,ii++){
... 11 unchanged lines ...
2521 }2521 }
25222522
2523 mfd_device.pD3DDevice->SetTexture(0,0);2523 mfd_device.pD3DDevice->SetTexture(0,0);
2524 //현재 방위각 그리기2524 //Draw current bearing
2525 {2525 {
2526 char text[8];2526 char text[8];
2527 wsprintf(text,"%d",(int)m_PlayerFacing);2527 wsprintf(text,"%d",(int)m_PlayerFacing);
... 2 unchanged lines ...
2530 }2530 }
2531 mfd_device.pD3DDevice->SetTexture(0,mfd_device.pDDSTexture);2531 mfd_device.pD3DDevice->SetTexture(0,mfd_device.pDDSTexture);
25322532
2533 //중심표시 역삼각형(매우작음) 그리기2533 //Draw center-indicator inverted triangle (very small)
2534 mfd_device.DrawTexture(320-5,140,0xFFFFFFFF,59,30+256,70,39+256);2534 mfd_device.DrawTexture(320-5,140,0xFFFFFFFF,59,30+256,70,39+256);
25352535
2536 //목표 그리기.2536 //Draw objective.
2537 if (m_NavPointRange != -1){//목표 지점이 있을때.2537 if (m_NavPointRange != -1){//when a target waypoint exists.
2538 int hsh_textpos=0;2538 int hsh_textpos=0;
2539 //목표 표시 그리기.2539 //Draw objective indicator.
2540 if ((m_NavPointFacing > -20) && (m_NavPointFacing < 20)){2540 if ((m_NavPointFacing > -20) && (m_NavPointFacing < 20)){
2541 //방위각 내에 있을때.. 버그를 그린다.2541 //When inside bearing range.. draw indicator.
2542 mfd_device.DrawTexture((int)(320-9-m_NavPointFacing*10),140+4,0xFFFFFFFF,87,28+256,106,47+256);2542 mfd_device.DrawTexture((int)(320-9-m_NavPointFacing*10),140+4,0xFFFFFFFF,87,28+256,106,47+256);
2543 hsh_textpos=(int)(320-m_NavPointFacing*10);2543 hsh_textpos=(int)(320-m_NavPointFacing*10);
2544 }else{2544 }else{
2545 //방위각 밖에 있을때.. 화살표를 그린다.2545 //When outside bearing range.. draw arrow.
2546 if (m_NavPointFacing <= -10){2546 if (m_NavPointFacing <= -10){
2547 mfd_device.DrawTexture(520+4,140,0xFFFFFFFF,3,54+256,39,81+256);2547 mfd_device.DrawTexture(520+4,140,0xFFFFFFFF,3,54+256,39,81+256);
2548 hsh_textpos=520;2548 hsh_textpos=520;
... 3 unchanged lines ...
2552 }2552 }
2553 }2553 }
25542554
2555 //목표 이름과 거리(텍스트) 그리기.2555 //Draw objective name and distance (text).
2556 mfd_device.pFont[0].DrawText(hsh_textpos,140+26,0xFFFFFFFF,m_NavPointName,TEXTALIGN_CENTER);2556 mfd_device.pFont[0].DrawText(hsh_textpos,140+26,0xFFFFFFFF,m_NavPointName,TEXTALIGN_CENTER);
2557 mfd_device.pFont[0].DrawText(hsh_textpos,140+46,0xFFFFFFFF,m_NavPointRangeText,TEXTALIGN_CENTER);2557 mfd_device.pFont[0].DrawText(hsh_textpos,140+46,0xFFFFFFFF,m_NavPointRangeText,TEXTALIGN_CENTER);
2558 }2558 }
2559 }2559 }
2560 //반드시.. scroe정보 그리는 루틴을 추가할것..2560 //Must add routine to draw score info here..
2561 {2561 {
2562 char score[32]={0};2562 char score[32]={0};
2563 char kills[32]={0};2563 char kills[32]={0};
... 54 unchanged lines ...
2618}2618}
2619}2619}
26202620
+
+

Gameleap/code/mw4/Code/MW4/GUIRadarManager.hpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + +
11
2#pragma once2#pragma once
33
... 47 unchanged lines ...
51 Stuff::Scalar m_TorsoTwist;51 Stuff::Scalar m_TorsoTwist;
52 int m_RadarMode;52 int m_RadarMode;
53 stlport::vector<ShotEntry> m_ShotList;53 stlport::vector<ShotEntry> m_ShotList;
54 //상훈 앞54 //sanghoon begin
55 int hsh_fdraw;55 int hsh_fdraw;
56 //상훈 뒤56 //sanghoon end
57 bool OnShotList (ObjectID who);57 bool OnShotList (ObjectID who);
58 void ClipLine (Scalar& xpt1,Scalar& ypt1,Scalar& xpt2,Scalar& ypt2,Scalar cx,Scalar cy,Scalar rad);58 void ClipLine (Scalar& xpt1,Scalar& ypt1,Scalar& xpt2,Scalar& ypt2,Scalar cx,Scalar cy,Scalar rad);
5959
... 196 unchanged lines ...
256256
257257
258}258}
+
+

Gameleap/code/mw4/Code/MW4/MW4.cpp

+
+6 -6 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: MW4.cpp //2// File: MW4.cpp //
3//---------------------------------------------------------------------------//3//---------------------------------------------------------------------------//
... 117 unchanged lines ...
121void InitComFuncs (void);121void InitComFuncs (void);
122void KillComFuncs (void);122void KillComFuncs (void);
123123
124// 鉉 - start124// hyun begin
125typedef long LONG;125typedef long LONG;
126typedef struct DIJOYSTATE {126typedef struct DIJOYSTATE {
127 LONG lX;127 LONG lX;
... 13 unchanged lines ...
141extern void __stdcall RIO_Joy(DIJOYSTATE& js);141extern void __stdcall RIO_Joy(DIJOYSTATE& js);
142extern void __stdcall RIO_ButEvent(BYTE* by);142extern void __stdcall RIO_ButEvent(BYTE* by);
143143
144// 鉉 - end144// hyun end
145145
146namespace MW4AI146namespace MW4AI
147{147{
... 52 unchanged lines ...
200void200void
201 MechWarrior4::InitializeClasses(Stuff::NotationFile *startup_ini)201 MechWarrior4::InitializeClasses(Stuff::NotationFile *startup_ini)
202{202{
203// 鉉 - start203// hyun begin
204 if (g_bUseOrgJoy)204 if (g_bUseOrgJoy)
205 g_pfnRIO_Joy = NULL;205 g_pfnRIO_Joy = NULL;
206 else206 else
207 g_pfnRIO_Joy = RIO_Joy;207 g_pfnRIO_Joy = RIO_Joy;
208 g_pfnRIO_ButtonEvent = RIO_ButEvent;208 g_pfnRIO_ButtonEvent = RIO_ButEvent;
209// 鉉 - end209// hyun end
210210
211 Verify(!g_LibraryHeap);211 Verify(!g_LibraryHeap);
212 g_LibraryHeap = gos_CreateMemoryHeap("MechWarrior4(All)");212 g_LibraryHeap = gos_CreateMemoryHeap("MechWarrior4(All)");
... 540 unchanged lines ...
753 gos_DestroyMemoryHeap(g_LibraryHeap);753 gos_DestroyMemoryHeap(g_LibraryHeap);
754 g_LibraryHeap = NULL;754 g_LibraryHeap = NULL;
755755
756// 鉉 - start756// hyun begin
757 g_pfnRIO_ButtonEvent = NULL;757 g_pfnRIO_ButtonEvent = NULL;
758 g_pfnRIO_Joy = NULL;758 g_pfnRIO_Joy = NULL;
759// 鉉 - end759// hyun end
760}760}
+
+

Gameleap/code/mw4/Code/MW4/MW4Shell.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
22
3#include "ShellFunctionHeaders.hpp"3#include "ShellFunctionHeaders.hpp"
... 12976 unchanged lines ...
12980 //}12980 //}
12981 NetMissionParameters::MWNetMissionParameters* lparams = app->GetLocalNetParams();12981 NetMissionParameters::MWNetMissionParameters* lparams = app->GetLocalNetParams();
1298212982
12983 lparams->m_killLimit = 0; // no kill limit - 목표치12983 lparams->m_killLimit = 0; // no kill limit - target value
12984 lparams->m_killLimitNumber = 0;12984 lparams->m_killLimitNumber = 0;
12985 lparams->m_respawnLimit = 0; // 생명제한을 둘 것인가?12985 lparams->m_respawnLimit = 0; // apply a respawn limit?
12986 lparams->m_respawnLimitNumber = 0; // 생명수12986 lparams->m_respawnLimitNumber = 0; // number of lives
12987 //params->m_isNight = params.m_isNight;12987 //params->m_isNight = params.m_isNight;
12988 lparams->m_onlyStockMech = FALSE;12988 lparams->m_onlyStockMech = FALSE;
12989 lparams->m_playMissionReview = 0; // params.m_playMissionReview;12989 lparams->m_playMissionReview = 0; // params.m_playMissionReview;
... 260 unchanged lines ...
13250 int i, nOK, nCount = Network::GetInstance()->GetPlayerCount();13250 int i, nOK, nCount = Network::GetInstance()->GetPlayerCount();
1325113251
13252 BOOL bOK = FALSE;13252 BOOL bOK = FALSE;
13253 if (nCount == (g_nTeslas + 1)) { // 모든 클라이언트가 접속이 되어 있을 때...13253 if (nCount == (g_nTeslas + 1)) { // when all clients are connected...
13254 for(nOK = 0, i = 0; i < Maximum_Players; ++i) {13254 for(nOK = 0, i = 0; i < Maximum_Players; ++i) {
13255 if (i != Connection::Server->GetID()) {13255 if (i != Connection::Server->GetID()) {
13256 const MechWarrior4::ServedConnectionData& scd = app->servedConnectionData[i];13256 const MechWarrior4::ServedConnectionData& scd = app->servedConnectionData[i];
... 1619 unchanged lines ...
1487614876
14877 return 1;14877 return 1;
14878}14878}
+
+

Gameleap/code/mw4/Code/MW4/MWApplication.cpp

+
+14 -14 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
22
3#include "MWApplication.hpp"3#include "MWApplication.hpp"
... 226 unchanged lines ...
230extern bool g_bCOOP; // COin OPeration230extern bool g_bCOOP; // COin OPeration
231// jcem - end231// jcem - end
232232
233// 鉉 - start233// hyun begin
234extern void __stdcall RIO_StartStop (BOOL bStart);234extern void __stdcall RIO_StartStop (BOOL bStart);
235void COOP_InputMode(bool bRestore);235void COOP_InputMode(bool bRestore);
236extern int g_bNoPlasma;236extern int g_bNoPlasma;
237extern void __stdcall PLASMA_Do(int nMode);237extern void __stdcall PLASMA_Do(int nMode);
238extern void GeneralReset();238extern void GeneralReset();
239// 鉉 - end239// hyun end
240240
241extern bool __stdcall gos_NetDoneStartGame();241extern bool __stdcall gos_NetDoneStartGame();
242extern bool __stdcall PrepareDefaultServerAdvertisers(void);242extern bool __stdcall PrepareDefaultServerAdvertisers(void);
... 1695 unchanged lines ...
1938 void EndPos (DWORD& x,DWORD& y);1938 void EndPos (DWORD& x,DWORD& y);
1939 bool Empty (void)1939 bool Empty (void)
1940 { return (m_Text[0] == 0); }1940 { return (m_Text[0] == 0); }
1941 //상훈 앞1941 //sanghoon begin
1942 const char *hsh_get_m_Text(){return &m_Text[0];}1942 const char *hsh_get_m_Text(){return &m_Text[0];}
1943 //상훈 뒤1943 //sanghoon end
1944};1944};
19451945
1946TextBox::TextBox (const char* pcszFontName, int nFontSize/* = -11*/, bool oldmode/* = false*/)1946TextBox::TextBox (const char* pcszFontName, int nFontSize/* = -11*/, bool oldmode/* = false*/)
... 1624 unchanged lines ...
3571 }3571 }
3572 Environment.DoGameLogic = &MWApplication::DoGameLogic;3572 Environment.DoGameLogic = &MWApplication::DoGameLogic;
3573 }3573 }
3574 // 鉉 - start3574 // hyun begin
3575 RIO_StartStop (TRUE);3575 RIO_StartStop (TRUE);
3576 // 鉉 - end3576 // hyun end
35773577
3578 g_MRF.Started(); // jcem3578 g_MRF.Started(); // jcem
3579 g_RSF.Started(); // jcem3579 g_RSF.Started(); // jcem
... 116 unchanged lines ...
3696 g_RSF.Stopping(); // jcem3696 g_RSF.Stopping(); // jcem
36973697
3698 ClearTOC();3698 ClearTOC();
3699 // 鉉 - start3699 // hyun begin
3700 RIO_StartStop (FALSE);3700 RIO_StartStop (FALSE);
3701 // 鉉 - end3701 // hyun end
3702 if (CTCL_IsConsoleX()) {3702 if (CTCL_IsConsoleX()) {
3703 CTCL_SetGameState(_EGS_Closing);3703 CTCL_SetGameState(_EGS_Closing);
3704 }3704 }
... 165 unchanged lines ...
3870 g_RSF.Stopping(); // jcem3870 g_RSF.Stopping(); // jcem
38713871
3872 ClearTOC();3872 ClearTOC();
3873 // 鉉 - start3873 // hyun begin
3874 RIO_StartStop (FALSE);3874 RIO_StartStop (FALSE);
3875 // 鉉 - end3875 // hyun end
3876 if (CTCL_IsConsoleX()) {3876 if (CTCL_IsConsoleX()) {
3877 CTCL_SetGameState(_EGS_Closing);3877 CTCL_SetGameState(_EGS_Closing);
3878 }3878 }
... 14556 unchanged lines ...
18435 // $$COOP: see void CSOC_Client::OnReadyStartGame()18435 // $$COOP: see void CSOC_Client::OnReadyStartGame()
18436 // C_ReadyStartGame18436 // C_ReadyStartGame
1843718437
18438 g_nTeslas = 0; // 싱글 게임18438 g_nTeslas = 0; // single player game
18439 g_nBOTs = 7;18439 g_nBOTs = 7;
18440 g_nPlayerInfos = 1 + g_nBOTs + g_nTeslas;18440 g_nPlayerInfos = 1 + g_nBOTs + g_nTeslas;
18441 g_bIsServer = TRUE;18441 g_bIsServer = TRUE;
... 81 unchanged lines ...
18523// MSL ADD MECH18523// MSL ADD MECH
18524 PI.m_nMechIndex = -1;18524 PI.m_nMechIndex = -1;
18525//*18525//*
18526// 각 메크에 대한 정보는 MechIndex를 참조함18526// See MechIndex for each mech's info
18527 PI.m_fileID = 0;18527 PI.m_fileID = 0;
18528 PI.m_recordID = 0;18528 PI.m_recordID = 0;
18529 strcpy(PI.m_szMech, s_paMechNames[11]); // Madcat18529 strcpy(PI.m_szMech, s_paMechNames[11]); // Madcat
18530 strcpy(PI.m_szMech, "$Yellow");18530 strcpy(PI.m_szMech, "$Yellow");
18531//*/18531//*/
18532 PI.m_nTeamOrSkin = 1; // 빨강18532 PI.m_nTeamOrSkin = 1; // red
18533 PI.m_nDecal = 1; // nDecal;18533 PI.m_nDecal = 1; // nDecal;
18534 PI.m_dwAddr = 0; // dwAddr;18534 PI.m_dwAddr = 0; // dwAddr;
18535 g_nPrintOut = FALSE;18535 g_nPrintOut = FALSE;
... 40 unchanged lines ...
18576 strcpy(PI.m_szName, s_pNames[aLBN[2][i - 1]]);18576 strcpy(PI.m_szName, s_pNames[aLBN[2][i - 1]]);
18577 PI.m_nMechIndex = -1;18577 PI.m_nMechIndex = -1;
18578 //*18578 //*
18579 //각 메크에 대한 정보는 MechIndex를 참조함18579 //See MechIndex for each mech's info
18580 PI.m_fileID = 0;18580 PI.m_fileID = 0;
18581 PI.m_recordID = 0;18581 PI.m_recordID = 0;
18582 /*if (i == 1)18582 /*if (i == 1)
... 52 unchanged lines ...
18635 }18635 }
18636 }18636 }
18637}18637}
+
+

Gameleap/code/mw4/Code/MW4/MWGUIManager.cpp

+
+7 -7 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
22
3//상훈 앞3//sanghoon begin
4#include "MWVideoRenderer.hpp"4#include "MWVideoRenderer.hpp"
5//상훈 뒤5//sanghoon end
6#include "MWGUIManager.hpp"6#include "MWGUIManager.hpp"
7#include "GUIWeaponManager.hpp"7#include "GUIWeaponManager.hpp"
8#include "GUIRadarManager.hpp"8#include "GUIRadarManager.hpp"
... 1545 unchanged lines ...
1554 (*iter)->Draw ();1554 (*iter)->Draw ();
1555 }1555 }
1556 }else{1556 }else{
1557 //상훈... 셧다운 중일때..1557 //sanghoon: while shutting down..
1558 for (iter = m_Components.begin ();iter != m_Components.end ();iter++)1558 for (iter = m_Components.begin ();iter != m_Components.end ();iter++)
1559 {1559 {
1560 //Main hudZoom,//hudReticle,hudObjective,hudTorsoBar,hudHelp,hudScore1560 //Main hudZoom,//hudReticle,hudObjective,hudTorsoBar,hudHelp,hudScore
... 36 unchanged lines ...
1597 }1597 }
1598 else1598 else
1599 {1599 {
1600 //상훈-앞1600 //sanghoon begin
1601 extern CamerashipParams g_CamerashipParams;1601 extern CamerashipParams g_CamerashipParams;
1602 if (CTCL_IsConsoleX() || g_CamerashipParams.m_bAllowChatDisplay)1602 if (CTCL_IsConsoleX() || g_CamerashipParams.m_bAllowChatDisplay)
1603 hudChat->Draw (true);1603 hudChat->Draw (true);
1604 //상훈-뒤1604 //sanghoon end
1605 hudScore->Draw (true);1605 hudScore->Draw (true);
1606 hudCamera->Draw(true);1606 hudCamera->Draw(true);
1607 }1607 }
... 4 unchanged lines ...
1612 gos_PopRenderStates ();1612 gos_PopRenderStates ();
16131613
16141614
1615//상훈 앞1615//sanghoon begin
1616 MWApplication* app = MWApplication::GetInstance();1616 MWApplication* app = MWApplication::GetInstance();
1617 if (app->networkingFlag)1617 if (app->networkingFlag)
1618 {1618 {
... 29 unchanged lines ...
1648 }1648 }
1649 }1649 }
1650 }1650 }
1651//상훈 뒤1651//sanghoon end
1652}1652}
16531653
1654void MWGUIManager::ShowHelpArrow (bool value)1654void MWGUIManager::ShowHelpArrow (bool value)
... 378 unchanged lines ...
2033 return NULL;2033 return NULL;
2034}2034}
20352035
+
+

Gameleap/code/mw4/Code/MW4/MWMission.hpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: SRMission.hpp //2// File: SRMission.hpp //
3//---------------------------------------------------------------------------//3//---------------------------------------------------------------------------//
... 586 unchanged lines ...
590 return (m_EndMissionTimer.Running());590 return (m_EndMissionTimer.Running());
591 }591 }
592592
593 //상훈593 //sanghoon
594 Stuff::Scalar GetMissionDuration ()594 Stuff::Scalar GetMissionDuration ()
595 {595 {
596 if (!m_EndMissionTimer.Running ())596 if (!m_EndMissionTimer.Running ())
... 213 unchanged lines ...
810 };810 };
811}811}
812812
+
+

Gameleap/code/mw4/Code/MW4/Mech.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: Mech.cpp2// File: Mech.cpp
3//---------------------------------------------------------------------------//3//---------------------------------------------------------------------------//
... 3950 unchanged lines ...
3954 g_HUDPPCLevel = 10;3954 g_HUDPPCLevel = 10;
3955 }3955 }
39563956
3957//상훈3957//sanghoon
3958//extern bool sh_isdeathmode;3958//extern bool sh_isdeathmode;
3959 //Are we ejecting?3959 //Are we ejecting?
3960 if (m_NeedEject)3960 if (m_NeedEject)
... 6270 unchanged lines ...
10231 }10231 }
10232}10232}
1023310233
+
+

Gameleap/code/mw4/Code/MW4/VehicleInterface.cpp

+
+94 -94 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: VehicleInterface.cpp2// File: VehicleInterface.cpp
3//---------------------------------------------------------------------------//3//---------------------------------------------------------------------------//
... 9 unchanged lines ...
13// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //13// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
14//===========================================================================//14//===========================================================================//
1515
16// 鉉 - start16// hyun begin
17#include "MW4.hpp"17#include "MW4.hpp"
18#include "Vehicle.hpp"18#include "Vehicle.hpp"
19#include "MechAnimationState.hpp"19#include "MechAnimationState.hpp"
... 2 unchanged lines ...
22#include "SpringOf.hpp"22#include "SpringOf.hpp"
23#include "MechLabHeaders.h"23#include "MechLabHeaders.h"
24#include <Stuff\Spline.hpp>24#include <Stuff\Spline.hpp>
25// 鉉 - end25// hyun end
2626
2727
28#include "MW4Headers.hpp"28#include "MW4Headers.hpp"
... 36 unchanged lines ...
65#include "EyePointManager.hpp"65#include "EyePointManager.hpp"
66#include "mw4shell.hpp"66#include "mw4shell.hpp"
67#include "NavPoint.hpp"67#include "NavPoint.hpp"
68//상훈 앞68//sanghoon begin
69#include "MWVideoRenderer.hpp"69#include "MWVideoRenderer.hpp"
70//상훈 뒤70//sanghoon end
7171
72#include <Adept\CollisionGrid.hpp>72#include <Adept\CollisionGrid.hpp>
73#include <Adept\Controls.hpp>73#include <Adept\Controls.hpp>
... 27 unchanged lines ...
101#include <mbstring.h>101#include <mbstring.h>
102#define __mbsrchr(s,c) (char*)_mbsrchr((const unsigned char*)(s),(c))102#define __mbsrchr(s,c) (char*)_mbsrchr((const unsigned char*)(s),(c))
103103
104// 鉉 - start104// hyun begin
105#include <windows.h>105#include <windows.h>
106106
107#include "ctcls.h"107#include "ctcls.h"
... 100 unchanged lines ...
208float g_fTimeMsgSender = 1.5f;208float g_fTimeMsgSender = 1.5f;
209float g_fTimeScoringAtEnd = 10.0f;209float g_fTimeScoringAtEnd = 10.0f;
210Mech* FindNextMechToFollowByScore(Mech* pCur); // jcem210Mech* FindNextMechToFollowByScore(Mech* pCur); // jcem
211// 鉉 - end211// hyun end
212212
213CamerashipParams g_CamerashipParams;213CamerashipParams g_CamerashipParams;
214214
... 2070 unchanged lines ...
2285 if (MWGUIManager::GetInstance () && IsObserving(true))2285 if (MWGUIManager::GetInstance () && IsObserving(true))
2286 {2286 {
2287 Check_Object(MWGUIManager::GetInstance());2287 Check_Object(MWGUIManager::GetInstance());
2288 //상훈2288 //sanghoon
2289 if (!CTCL_IsConsoleX() && !g_CamerashipParams.m_bAllowChatDisplay) {2289 if (!CTCL_IsConsoleX() && !g_CamerashipParams.m_bAllowChatDisplay) {
2290 HUDChat *chat;2290 HUDChat *chat;
2291 chat = Cast_Object (HUDChat *,MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_CHAT));2291 chat = Cast_Object (HUDChat *,MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_CHAT));
... 1489 unchanged lines ...
3781 }3781 }
3782 else if (controlPacket.lookCommand == AnalogControlSave::LookBack)3782 else if (controlPacket.lookCommand == AnalogControlSave::LookBack)
3783 {3783 {
3784 //상훈3784 //sanghoon
3785 ShowHUDIfOn(true);3785 ShowHUDIfOn(true);
3786 //MWGUIManager::GetInstance()->HideHudComponent (HUD_TARGETARROW);3786 //MWGUIManager::GetInstance()->HideHudComponent (HUD_TARGETARROW);
3787 //ShowHUDIfOn(false);3787 //ShowHUDIfOn(false);
3788 //상훈3788 //sanghoon
3789// MSL 5.04 Rear Firing Weapons3789// MSL 5.04 Rear Firing Weapons
3790// ShowStatic(cameraView == InMechCameraView);3790// ShowStatic(cameraView == InMechCameraView);
3791 ShowStatic(true);3791 ShowStatic(true);
... 1176 unchanged lines ...
4968 Scalar fT = gos_GetElapsedTime();4968 Scalar fT = gos_GetElapsedTime();
4969 if ((fT - g_fLastScoringTimeCechk) >= CAMERASHIP_SCORING_CHECK) {4969 if ((fT - g_fLastScoringTimeCechk) >= CAMERASHIP_SCORING_CHECK) {
4970 g_fLastScoringTimeCechk = fT;4970 g_fLastScoringTimeCechk = fT;
4971//상훈4971//sanghoon
4972 if (Application::GetInstance()->networkingFlag)4972 if (Application::GetInstance()->networkingFlag)
4973 {4973 {
4974 bool bNearEnd = false;4974 bool bNearEnd = false;
... 403 unchanged lines ...
5378 if ((m_curView == STATE_DEATH_SEQUENCE_START) || (m_curView == STATE_DEATH_SEQUENCE_TRANS)) {5378 if ((m_curView == STATE_DEATH_SEQUENCE_START) || (m_curView == STATE_DEATH_SEQUENCE_TRANS)) {
5379 bool bStateEnded = false;5379 bool bStateEnded = false;
5380 if (m_pMechDying != pMech) {5380 if (m_pMechDying != pMech) {
5381 // 죽는 도중에 타겟이 바뀐 경우5381 // Case where target changes while dying
5382 ClearFixedPoint();5382 ClearFixedPoint();
5383 m_fTimeStateEnd = fMT + g_CamerashipParams.m_fTimeStandard;5383 m_fTimeStateEnd = fMT + g_CamerashipParams.m_fTimeStandard;
5384 m_pMechDying = m_pEnemy = NULL;5384 m_pMechDying = m_pEnemy = NULL;
... 34 unchanged lines ...
5419 }5419 }
5420 if ((m_pEnemy != m_pMechDying) && m_pEnemy->IsDestroyed()) {5420 if ((m_pEnemy != m_pMechDying) && m_pEnemy->IsDestroyed()) {
5421 if (m_curView == STATE_DEATH_SEQUENCE_START) {5421 if (m_curView == STATE_DEATH_SEQUENCE_START) {
5422 // 죽음을 보여주는 도중에 상대방이 죽은 경우...5422 // Case where opponent dies while death animation is playing...
5423 // move to trans...5423 // move to trans...
5424 bStateEnded = true;5424 bStateEnded = true;
5425 }5425 }
... 2069 unchanged lines ...
7495// MSL 5.02 Zoom7495// MSL 5.02 Zoom
7496// m_reticuleCamera->SetPerspective(near_clip_zoom, far_clip_main + (100.0f * (horizontal_fov_main - horizontal_fov_zoom)), horizontal_fov_zoom, (height_to_width_zoom));7496// m_reticuleCamera->SetPerspective(near_clip_zoom, far_clip_main + (100.0f * (horizontal_fov_main - horizontal_fov_zoom)), horizontal_fov_zoom, (height_to_width_zoom));
7497 m_reticuleCamera->SetPerspective(near_clip_zoom, far_clip_main + (100.0f * (horizontal_fov_main - horizontal_fov_zoom)), horizontal_fov_zoom, (height_to_width_zoom*1.75));7497 m_reticuleCamera->SetPerspective(near_clip_zoom, far_clip_main + (100.0f * (horizontal_fov_main - horizontal_fov_zoom)), horizontal_fov_zoom, (height_to_width_zoom*1.75));
7498 //상훈7498 //sanghoon
7499// float height=(1-g_fZoomMarginLR*2)*800 * height_to_width_zoom/600;7499// float height=(1-g_fZoomMarginLR*2)*800 * height_to_width_zoom/600;
7500// float tb_margin=(1-height)/2;7500// float tb_margin=(1-height)/2;
7501// m_reticuleCamera->SetViewport(1-g_fZoomMarginLR,1-tb_margin, g_fZoomMarginLR, tb_margin);7501// m_reticuleCamera->SetViewport(1-g_fZoomMarginLR,1-tb_margin, g_fZoomMarginLR, tb_margin);
... 619 unchanged lines ...
8121 }8121 }
81228122
8123 //8123 //
8124 // 鉉 - start8124 // hyun begin
81258125
8126 groupWeaponIterator->ReadAndNext();8126 groupWeaponIterator->ReadAndNext();
81278127
... 7 unchanged lines ...
8135 BOOL bWeaponGroup3 = (group3FireRequest > 0) && GetWeaponGroupID (*weapon, 3);8135 BOOL bWeaponGroup3 = (group3FireRequest > 0) && GetWeaponGroupID (*weapon, 3);
81368136
8137 //8137 //
8138 // 鉉 - end8138 // hyun end
8139 //8139 //
81408140
8141 num_weapons ++;8141 num_weapons ++;
... 227 unchanged lines ...
8369 }8369 }
8370 }8370 }
8371*/8371*/
8372 // fireRequest > 0 (Enter Key : None Used) : 鉉8372 // fireRequest > 0 (Enter Key : None Used) : hyun
8373 if(fireRequest > 0)8373 if(fireRequest > 0)
8374 {8374 {
8375 switch(weaponMode)8375 switch(weaponMode)
... 145 unchanged lines ...
8521 Verify(message->messageID == OverrideAutoCenterToTorsoMessageID);8521 Verify(message->messageID == OverrideAutoCenterToTorsoMessageID);
85228522
8523 if (GetShutdownState()) {8523 if (GetShutdownState()) {
8524 g_pRIOMain->SetLampState (28, LAMP_OFF); // 鉉8524 g_pRIOMain->SetLampState (28, LAMP_OFF); // hyun
8525 return;8525 return;
8526 }8526 }
8527 if(message->dataContents > 0)8527 if(message->dataContents > 0)
8528 {8528 {
8529 g_pRIOMain->SetLampState (28, LAMP_BRIGHT); // 鉉8529 g_pRIOMain->SetLampState (28, LAMP_BRIGHT); // hyun
85308530
8531 if (perminateTorsoMode == CenterLegsToTorso)8531 if (perminateTorsoMode == CenterLegsToTorso)
8532 {8532 {
... 6 unchanged lines ...
8539 }8539 }
8540 else8540 else
8541 {8541 {
8542 g_pRIOMain->SetLampState (28, LAMP_DEFAULT); // 鉉8542 g_pRIOMain->SetLampState (28, LAMP_DEFAULT); // hyun
8543 }8543 }
8544}8544}
85458545
... 112 unchanged lines ...
8658 }8658 }
8659 }8659 }
86608660
8661 g_pRIOMain->SetLampState (17, LAMP_BRIGHT);// 鉉8661 g_pRIOMain->SetLampState (17, LAMP_BRIGHT);// hyun
8662 }8662 }
8663 else8663 else
8664 {8664 {
8665 g_pRIOMain->SetLampState (17, LAMP_DEFAULT);// 鉉8665 g_pRIOMain->SetLampState (17, LAMP_DEFAULT);// hyun
8666 }8666 }
8667}8667}
86688668
... 80 unchanged lines ...
8749 Verify(message->messageID == CrouchCommandMessageID);8749 Verify(message->messageID == CrouchCommandMessageID);
87508750
8751 if (GetShutdownState()) {8751 if (GetShutdownState()) {
8752 g_pRIOMain->SetLampState (20, LAMP_OFF);// 鉉8752 g_pRIOMain->SetLampState (20, LAMP_OFF);// hyun
8753 return;8753 return;
8754 }8754 }
8755 if(message->dataContents > 0)8755 if(message->dataContents > 0)
8756 {8756 {
8757 g_pRIOMain->SetLampState (20, LAMP_BRIGHT);// 鉉8757 g_pRIOMain->SetLampState (20, LAMP_BRIGHT);// hyun
8758// if (executionState->GetState () == ExecutionStateEngine::AutoPilotState)8758// if (executionState->GetState () == ExecutionStateEngine::AutoPilotState)
8759 executionState->RequestState(ExecutionStateEngine::AlwaysExecuteState);8759 executionState->RequestState(ExecutionStateEngine::AlwaysExecuteState);
8760 QueCommand(VehicleCommand::CrouchCommand);8760 QueCommand(VehicleCommand::CrouchCommand);
8761 } else {8761 } else {
8762 g_pRIOMain->SetLampState (20, LAMP_DEFAULT);// 鉉8762 g_pRIOMain->SetLampState (20, LAMP_DEFAULT);// hyun
8763 }8763 }
8764}8764}
8765//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~8765//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 20 unchanged lines ...
87868786
8787 if (GetShutdownState()) {8787 if (GetShutdownState()) {
8788 if (g_bJumpZoom)8788 if (g_bJumpZoom)
8789 g_pRIOMain->SetLampState (16, LAMP_OFF);// 鉉8789 g_pRIOMain->SetLampState (16, LAMP_OFF);// hyun
8790 g_pRIOMain->SetLampState (50, LAMP_OFF);8790 g_pRIOMain->SetLampState (50, LAMP_OFF);
8791 g_pRIOMain->SetLampState (33, LAMP_OFF);// 鉉8791 g_pRIOMain->SetLampState (33, LAMP_OFF);// hyun
8792 g_pRIOMain->SetLampState (34, LAMP_OFF);// 鉉8792 g_pRIOMain->SetLampState (34, LAMP_OFF);// hyun
8793 return;8793 return;
8794 }8794 }
87958795
... 1 unchanged lines ...
8797 {8797 {
8798 if (GetJumpJetState() > 0) {8798 if (GetJumpJetState() > 0) {
8799 if (g_bJumpZoom)8799 if (g_bJumpZoom)
8800 g_pRIOMain->SetLampState (16, LAMP_BRIGHT);// 鉉8800 g_pRIOMain->SetLampState (16, LAMP_BRIGHT);// hyun
8801 g_pRIOMain->SetLampState (33, LAMP_BRIGHT);8801 g_pRIOMain->SetLampState (33, LAMP_BRIGHT);
8802 g_pRIOMain->SetLampState (34, LAMP_BRIGHT);8802 g_pRIOMain->SetLampState (34, LAMP_BRIGHT);
8803 }8803 }
... 7 unchanged lines ...
8811 if (!GetShutdownState())8811 if (!GetShutdownState())
8812 if (GetJumpJetState() > 0) {8812 if (GetJumpJetState() > 0) {
8813 if (g_bJumpZoom)8813 if (g_bJumpZoom)
8814 g_pRIOMain->SetLampState (16, LAMP_DEFAULT);// 鉉8814 g_pRIOMain->SetLampState (16, LAMP_DEFAULT);// hyun
8815 g_pRIOMain->SetLampState (50, LAMP_DEFAULT);8815 g_pRIOMain->SetLampState (50, LAMP_DEFAULT);
8816 g_pRIOMain->SetLampState (33, LAMP_DEFAULT);// 鉉8816 g_pRIOMain->SetLampState (33, LAMP_DEFAULT);// hyun
8817 g_pRIOMain->SetLampState (34, LAMP_DEFAULT);// 鉉8817 g_pRIOMain->SetLampState (34, LAMP_DEFAULT);// hyun
8818 }8818 }
8819 }8819 }
88208820
... 463 unchanged lines ...
9284 }9284 }
92859285
9286 if (!GetShutdownState())9286 if (!GetShutdownState())
9287 g_pRIOMain->SetLampState (7, LAMP_BRIGHT);// 鉉9287 g_pRIOMain->SetLampState (7, LAMP_BRIGHT);// hyun
9288 }9288 }
9289 else9289 else
9290 {9290 {
9291 if (!GetShutdownState())9291 if (!GetShutdownState())
9292 g_pRIOMain->SetLampState (7, LAMP_DEFAULT);// 鉉9292 g_pRIOMain->SetLampState (7, LAMP_DEFAULT);// hyun
9293 }9293 }
9294*/9294*/
9295}9295}
... 45 unchanged lines ...
93419341
9342 if(message->dataContents > 0)9342 if(message->dataContents > 0)
9343 {9343 {
9344 //鉉SetWeaponMode(GroupFireMode);9344 //hyun SetWeaponMode(GroupFireMode);
9345// selectedWeaponGroup = 1;9345// selectedWeaponGroup = 1;
9346 group1FireRequest ++;9346 group1FireRequest ++;
9347 // fireRequest ++;9347 // fireRequest ++;
... 31 unchanged lines ...
93799379
9380 if(message->dataContents > 0)9380 if(message->dataContents > 0)
9381 {9381 {
9382 //鉉SetWeaponMode(GroupFireMode);9382 //hyun SetWeaponMode(GroupFireMode);
9383// selectedWeaponGroup = 2;9383// selectedWeaponGroup = 2;
9384 group2FireRequest ++;9384 group2FireRequest ++;
9385// fireRequest ++;9385// fireRequest ++;
... 29 unchanged lines ...
94159415
9416 if(message->dataContents > 0)9416 if(message->dataContents > 0)
9417 {9417 {
9418 //鉉SetWeaponMode(GroupFireMode);9418 //hyun SetWeaponMode(GroupFireMode);
9419// selectedWeaponGroup = 3;9419// selectedWeaponGroup = 3;
9420// fireRequest ++;9420// fireRequest ++;
9421 group3FireRequest ++;9421 group3FireRequest ++;
... 46 unchanged lines ...
94689468
9469 if(message->dataContents > 0)9469 if(message->dataContents > 0)
9470 {9470 {
9471 //鉉SetWeaponMode(GroupFireMode);9471 //hyun SetWeaponMode(GroupFireMode);
9472// selectedWeaponGroup = 4;9472// selectedWeaponGroup = 4;
9473// fireRequest ++;9473// fireRequest ++;
9474// group4FireRequest ++;9474// group4FireRequest ++;
... 33 unchanged lines ...
95089508
9509 if(message->dataContents > 0)9509 if(message->dataContents > 0)
9510 {9510 {
9511 //鉉SetWeaponMode(GroupFireMode);9511 //hyun SetWeaponMode(GroupFireMode);
9512// selectedWeaponGroup = 5;9512// selectedWeaponGroup = 5;
9513// fireRequest ++;9513// fireRequest ++;
9514// group5FireRequest ++;9514// group5FireRequest ++;
... 39 unchanged lines ...
95549554
9555 if(message->dataContents > 0)9555 if(message->dataContents > 0)
9556 {9556 {
9557 //鉉SetWeaponMode(GroupFireMode);9557 //hyun SetWeaponMode(GroupFireMode);
9558 //group6FireRequest ++;9558 //group6FireRequest ++;
9559 }9559 }
9560 else9560 else
... 783 unchanged lines ...
10344 Verify(message->messageID == ToggleSearchLightMessageID);10344 Verify(message->messageID == ToggleSearchLightMessageID);
1034510345
10346 if (GetShutdownState()) {10346 if (GetShutdownState()) {
10347 g_pRIOMain->SetLampState (27, LAMP_OFF);// 鉉10347 g_pRIOMain->SetLampState (27, LAMP_OFF);// hyun
10348 return;10348 return;
10349 }10349 }
10350 if(message->dataContents > 0)10350 if(message->dataContents > 0)
10351 {10351 {
10352 if (g_SearchLight == TRUE)10352 if (g_SearchLight == TRUE)
10353 g_pRIOMain->SetLampState (27, LAMP_BRIGHT);// 鉉10353 g_pRIOMain->SetLampState (27, LAMP_BRIGHT);// hyun
10354 QueCommand(VehicleCommand::ToggleSearchLightCommand);10354 QueCommand(VehicleCommand::ToggleSearchLightCommand);
10355 }10355 }
10356 else10356 else
10357 {10357 {
10358 if (g_SearchLight == TRUE)10358 if (g_SearchLight == TRUE)
10359 g_pRIOMain->SetLampState (27, LAMP_DEFAULT);// 鉉10359 g_pRIOMain->SetLampState (27, LAMP_DEFAULT);// hyun
10360 }10360 }
10361}10361}
1036210362
... 183 unchanged lines ...
10546 {10546 {
10547 //if (!GetShutdownState())10547 //if (!GetShutdownState())
10548 //if (g_bCool == TRUE) {10548 //if (g_bCool == TRUE) {
10549 // g_pRIOMain->SetLampState (19, LAMP_BRIGHT);// 鉉10549 // g_pRIOMain->SetLampState (19, LAMP_BRIGHT);// hyun
10550 //}10550 //}
1055110551
10552 isCooling ++;10552 isCooling ++;
... 7 unchanged lines ...
10560 {10560 {
10561 //if (!GetShutdownState())10561 //if (!GetShutdownState())
10562 //if (g_bCool == TRUE) {10562 //if (g_bCool == TRUE) {
10563 // g_pRIOMain->SetLampState (19, LAMP_DEFAULT);// 鉉10563 // g_pRIOMain->SetLampState (19, LAMP_DEFAULT);// hyun
10564 //}10564 //}
1056510565
10566 isCooling --;10566 isCooling --;
... 167 unchanged lines ...
1073410734
10735 if (GetShutdownState())10735 if (GetShutdownState())
10736 {10736 {
10737 g_pRIOMain->SetLampState (26, LAMP_OFF);// 鉉10737 g_pRIOMain->SetLampState (26, LAMP_OFF);// hyun
10738 g_pRIOMain->SetLampState (48, LAMP_OFF); // Light Amp Lamp MFD10738 g_pRIOMain->SetLampState (48, LAMP_OFF); // Light Amp Lamp MFD
10739 return;10739 return;
10740 }10740 }
... 18 unchanged lines ...
10759 MWGUIManager::GetInstance()->ShowLightAmplification();10759 MWGUIManager::GetInstance()->ShowLightAmplification();
10760 Mission::GetInstance()->SetLightAmpMissionLights();10760 Mission::GetInstance()->SetLightAmpMissionLights();
10761 ShowZoomIfOn (false);10761 ShowZoomIfOn (false);
10762 g_pRIOMain->SetLampState (26, LAMP_BRIGHT);// 鉉10762 g_pRIOMain->SetLampState (26, LAMP_BRIGHT);// hyun
10763 if (!g_bJumpZoom)10763 if (!g_bJumpZoom)
10764 {10764 {
10765 if (g_pRIOMain->GetLampState (16) == LAMP_BRIGHT)10765 if (g_pRIOMain->GetLampState (16) == LAMP_BRIGHT)
... 7 unchanged lines ...
10773 {10773 {
10774 if(vehicle->DoesHaveLightAmp())10774 if(vehicle->DoesHaveLightAmp())
10775 {10775 {
10776 g_pRIOMain->SetLampState (26, LAMP_DEFAULT);// 鉉10776 g_pRIOMain->SetLampState (26, LAMP_DEFAULT);// hyun
10777 g_pRIOMain->SetLampState (48, LAMP_DEFAULT); // Light Amp Lamp MFD10777 g_pRIOMain->SetLampState (48, LAMP_DEFAULT); // Light Amp Lamp MFD
10778 }10778 }
10779 else10779 else
10780 {10780 {
10781 g_pRIOMain->SetLampState (26, LAMP_OFF);// 鉉10781 g_pRIOMain->SetLampState (26, LAMP_OFF);// hyun
10782 g_pRIOMain->SetLampState (48, LAMP_OFF); // Light Amp Lamp MFD10782 g_pRIOMain->SetLampState (48, LAMP_OFF); // Light Amp Lamp MFD
10783 }10783 }
10784 }10784 }
... 79 unchanged lines ...
10864 Verify(message->messageID == NextNavPointMessageID);10864 Verify(message->messageID == NextNavPointMessageID);
1086510865
10866 if (GetShutdownState()) {10866 if (GetShutdownState()) {
10867 g_pRIOMain->SetLampState (38, LAMP_OFF);// 鉉10867 g_pRIOMain->SetLampState (38, LAMP_OFF);// hyun
10868 return;10868 return;
10869 }10869 }
10870 if(message->dataContents > 0)10870 if(message->dataContents > 0)
10871 {10871 {
10872 g_pRIOMain->SetLampState (38, LAMP_BRIGHT);// 鉉10872 g_pRIOMain->SetLampState (38, LAMP_BRIGHT);// hyun
10873 m_selectedNavPoint.Remove();10873 m_selectedNavPoint.Remove();
10874 NavPoint *nav_point;10874 NavPoint *nav_point;
10875 if((nav_point = NavPoint::GetNextNavPoint()) != NULL)10875 if((nav_point = NavPoint::GetNextNavPoint()) != NULL)
... 14 unchanged lines ...
10890 }10890 }
10891 else10891 else
10892 {10892 {
10893 g_pRIOMain->SetLampState (38, LAMP_DEFAULT);// 鉉10893 g_pRIOMain->SetLampState (38, LAMP_DEFAULT);// hyun
10894 }10894 }
10895}10895}
1089610896
... 18 unchanged lines ...
10915 Verify(message->messageID == PreviousNavPointMessageID);10915 Verify(message->messageID == PreviousNavPointMessageID);
1091610916
10917 if (GetShutdownState()) {10917 if (GetShutdownState()) {
10918 g_pRIOMain->SetLampState (37, LAMP_OFF);// 鉉10918 g_pRIOMain->SetLampState (37, LAMP_OFF);// hyun
10919 return;10919 return;
10920 }10920 }
10921 if(message->dataContents > 0)10921 if(message->dataContents > 0)
10922 {10922 {
10923 g_pRIOMain->SetLampState (37, LAMP_BRIGHT);// 鉉10923 g_pRIOMain->SetLampState (37, LAMP_BRIGHT);// hyun
10924 m_selectedNavPoint.Remove();10924 m_selectedNavPoint.Remove();
10925 NavPoint *nav_point;10925 NavPoint *nav_point;
10926 if((nav_point = NavPoint::GetPreviousNavPoint()) != NULL)10926 if((nav_point = NavPoint::GetPreviousNavPoint()) != NULL)
... 9 unchanged lines ...
10936 }10936 }
10937 else10937 else
10938 {10938 {
10939 g_pRIOMain->SetLampState (37, LAMP_DEFAULT);// 鉉10939 g_pRIOMain->SetLampState (37, LAMP_DEFAULT);// hyun
10940 }10940 }
10941}10941}
1094210942
... 18 unchanged lines ...
10961 Verify(message->messageID == NextEnemyMessageID);10961 Verify(message->messageID == NextEnemyMessageID);
1096210962
10963 if (GetShutdownState()) {10963 if (GetShutdownState()) {
10964 g_pRIOMain->SetLampState (10, LAMP_OFF);// 鉉10964 g_pRIOMain->SetLampState (10, LAMP_OFF);// hyun
10965 return;10965 return;
10966 }10966 }
10967 if(message->dataContents > 0)10967 if(message->dataContents > 0)
10968 {10968 {
10969 g_pRIOMain->SetLampState (10, LAMP_BRIGHT);// 鉉10969 g_pRIOMain->SetLampState (10, LAMP_BRIGHT);// hyun
10970 Entity *next_enemy = NULL;10970 Entity *next_enemy = NULL;
10971 Sensor *sensor = vehicle->GetSensor();10971 Sensor *sensor = vehicle->GetSensor();
10972 if(sensor)10972 if(sensor)
... 5 unchanged lines ...
10978 }10978 }
10979 else10979 else
10980 {10980 {
10981 g_pRIOMain->SetLampState (10, LAMP_DEFAULT);// 鉉10981 g_pRIOMain->SetLampState (10, LAMP_DEFAULT);// hyun
10982 }10982 }
10983}10983}
1098410984
... 18 unchanged lines ...
11003 Verify(message->messageID == PreviousEnemyMessageID);11003 Verify(message->messageID == PreviousEnemyMessageID);
1100411004
11005 if (GetShutdownState()) {11005 if (GetShutdownState()) {
11006 g_pRIOMain->SetLampState (9, LAMP_OFF);// 鉉11006 g_pRIOMain->SetLampState (9, LAMP_OFF);// hyun
11007 return;11007 return;
11008 }11008 }
11009 if(message->dataContents > 0)11009 if(message->dataContents > 0)
11010 {11010 {
11011 g_pRIOMain->SetLampState (9, LAMP_BRIGHT);// 鉉11011 g_pRIOMain->SetLampState (9, LAMP_BRIGHT);// hyun
11012 Entity *next_enemy = NULL;11012 Entity *next_enemy = NULL;
11013 Sensor *sensor = vehicle->GetSensor();11013 Sensor *sensor = vehicle->GetSensor();
11014 if(sensor)11014 if(sensor)
... 5 unchanged lines ...
11020 }11020 }
11021 else11021 else
11022 {11022 {
11023 g_pRIOMain->SetLampState (9, LAMP_DEFAULT);// 鉉11023 g_pRIOMain->SetLampState (9, LAMP_DEFAULT);// hyun
11024 }11024 }
11025}11025}
1102611026
... 18 unchanged lines ...
11045 Verify(message->messageID == NearestEnemyMessageID);11045 Verify(message->messageID == NearestEnemyMessageID);
1104611046
11047 if (GetShutdownState()) {11047 if (GetShutdownState()) {
11048 g_pRIOMain->SetLampState (11, LAMP_OFF);// 鉉11048 g_pRIOMain->SetLampState (11, LAMP_OFF);// hyun
11049 return;11049 return;
11050 }11050 }
11051 if(message->dataContents > 0)11051 if(message->dataContents > 0)
11052 {11052 {
11053 g_pRIOMain->SetLampState (11, LAMP_BRIGHT);// 鉉11053 g_pRIOMain->SetLampState (11, LAMP_BRIGHT);// hyun
11054 m_interfaceTarget.Remove();11054 m_interfaceTarget.Remove();
11055 m_targetCamera->SetScene(NULL);11055 m_targetCamera->SetScene(NULL);
11056 Entity *entity = NULL;11056 Entity *entity = NULL;
... 8 unchanged lines ...
11065 }11065 }
11066 else11066 else
11067 {11067 {
11068 g_pRIOMain->SetLampState (11, LAMP_DEFAULT);// 鉉11068 g_pRIOMain->SetLampState (11, LAMP_DEFAULT);// hyun
11069 }11069 }
11070}11070}
1107111071
... 160 unchanged lines ...
1123211232
11233 if (GetShutdownState())11233 if (GetShutdownState())
11234 {11234 {
11235 g_pRIOMain->SetLampState (8, LAMP_OFF);// 鉉11235 g_pRIOMain->SetLampState (8, LAMP_OFF);// hyun
11236 return;11236 return;
11237 }11237 }
11238 if(message->dataContents > 0)11238 if(message->dataContents > 0)
11239 {11239 {
11240 g_pRIOMain->SetLampState (8, LAMP_BRIGHT);// 鉉11240 g_pRIOMain->SetLampState (8, LAMP_BRIGHT);// hyun
1124111241
11242 Entity *target_entity;11242 Entity *target_entity;
11243 target_entity = targetQueryEntity.GetCurrent();11243 target_entity = targetQueryEntity.GetCurrent();
... 16 unchanged lines ...
11260 }11260 }
11261 else11261 else
11262 {11262 {
11263 g_pRIOMain->SetLampState (8, LAMP_DEFAULT);// 鉉11263 g_pRIOMain->SetLampState (8, LAMP_DEFAULT);// hyun
11264 }11264 }
11265}11265}
1126611266
... 18 unchanged lines ...
11285 Verify(message->messageID == NextFriendlyMessageID);11285 Verify(message->messageID == NextFriendlyMessageID);
1128611286
11287 if (GetShutdownState()) {11287 if (GetShutdownState()) {
11288 g_pRIOMain->SetLampState (14, LAMP_OFF);// 鉉11288 g_pRIOMain->SetLampState (14, LAMP_OFF);// hyun
11289 return;11289 return;
11290 }11290 }
11291 if(message->dataContents > 0)11291 if(message->dataContents > 0)
11292 {11292 {
11293 g_pRIOMain->SetLampState (14, LAMP_BRIGHT);// 鉉11293 g_pRIOMain->SetLampState (14, LAMP_BRIGHT);// hyun
11294 Entity *next_friendly = NULL;11294 Entity *next_friendly = NULL;
11295 Sensor *sensor = vehicle->GetSensor();11295 Sensor *sensor = vehicle->GetSensor();
11296 if(sensor)11296 if(sensor)
... 6 unchanged lines ...
11303 }11303 }
11304 else11304 else
11305 {11305 {
11306 g_pRIOMain->SetLampState (14, LAMP_DEFAULT);// 鉉11306 g_pRIOMain->SetLampState (14, LAMP_DEFAULT);// hyun
11307 }11307 }
11308}11308}
1130911309
... 18 unchanged lines ...
11328 Verify(message->messageID == PreviousFriendlyMessageID);11328 Verify(message->messageID == PreviousFriendlyMessageID);
1132911329
11330 if (GetShutdownState()) {11330 if (GetShutdownState()) {
11331 g_pRIOMain->SetLampState (13, LAMP_OFF);// 鉉11331 g_pRIOMain->SetLampState (13, LAMP_OFF);// hyun
11332 return;11332 return;
11333 }11333 }
11334 if(message->dataContents > 0)11334 if(message->dataContents > 0)
11335 {11335 {
11336 g_pRIOMain->SetLampState (13, LAMP_BRIGHT);// 鉉11336 g_pRIOMain->SetLampState (13, LAMP_BRIGHT);// hyun
11337 Entity *next_friendly = NULL;11337 Entity *next_friendly = NULL;
11338 Sensor *sensor = vehicle->GetSensor();11338 Sensor *sensor = vehicle->GetSensor();
11339 if(sensor)11339 if(sensor)
... 6 unchanged lines ...
11346 }11346 }
11347 else11347 else
11348 {11348 {
11349 g_pRIOMain->SetLampState (13, LAMP_DEFAULT);// 鉉11349 g_pRIOMain->SetLampState (13, LAMP_DEFAULT);// hyun
11350 }11350 }
11351}11351}
1135211352
... 18 unchanged lines ...
11371 Verify(message->messageID == NearestFriendlyMessageID);11371 Verify(message->messageID == NearestFriendlyMessageID);
1137211372
11373 if (GetShutdownState()) {11373 if (GetShutdownState()) {
11374 g_pRIOMain->SetLampState (15, LAMP_OFF);// 鉉11374 g_pRIOMain->SetLampState (15, LAMP_OFF);// hyun
11375 return;11375 return;
11376 }11376 }
11377 if(message->dataContents > 0)11377 if(message->dataContents > 0)
11378 {11378 {
11379 g_pRIOMain->SetLampState (15, LAMP_BRIGHT);// 鉉11379 g_pRIOMain->SetLampState (15, LAMP_BRIGHT);// hyun
11380 Entity *entity = NULL;11380 Entity *entity = NULL;
11381 Sensor *sensor = vehicle->GetSensor();11381 Sensor *sensor = vehicle->GetSensor();
11382 if(sensor)11382 if(sensor)
... 5 unchanged lines ...
11388 }11388 }
11389 else11389 else
11390 {11390 {
11391 g_pRIOMain->SetLampState (15, LAMP_DEFAULT);// 鉉11391 g_pRIOMain->SetLampState (15, LAMP_DEFAULT);// hyun
11392 }11392 }
11393}11393}
1139411394
... 83 unchanged lines ...
11478 if(message->dataContents > 0)11478 if(message->dataContents > 0)
11479 {11479 {
11480 //if (!GetShutdownState())11480 //if (!GetShutdownState())
11481 // g_pRIOMain->SetLampState (18, LAMP_BRIGHT);// 鉉11481 // g_pRIOMain->SetLampState (18, LAMP_BRIGHT);// hyun
11482 HeatManager *heat;11482 HeatManager *heat;
11483 if (vehicle->IsDerivedFrom (Mech::DefaultData))11483 if (vehicle->IsDerivedFrom (Mech::DefaultData))
11484 {11484 {
... 7 unchanged lines ...
11492 }11492 }
11493 else {11493 else {
11494 //if (!GetShutdownState())11494 //if (!GetShutdownState())
11495 // g_pRIOMain->SetLampState (18, LAMP_DEFAULT);// 鉉11495 // g_pRIOMain->SetLampState (18, LAMP_DEFAULT);// hyun
11496 }11496 }
11497}11497}
11498//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~11498//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 42 unchanged lines ...
1154111541
11542 if(message->dataContents > 0)11542 if(message->dataContents > 0)
11543 {11543 {
11544 g_pRIOMain->SetLampState (52, LAMP_BRIGHT);// 鉉11544 g_pRIOMain->SetLampState (52, LAMP_BRIGHT);// hyun
11545 if(MWGUIManager::GetInstance())11545 if(MWGUIManager::GetInstance())
11546 {11546 {
11547 Check_Object(MWGUIManager::GetInstance());11547 Check_Object(MWGUIManager::GetInstance());
... 4 unchanged lines ...
11552 }11552 }
11553 else11553 else
11554 {11554 {
11555 g_pRIOMain->SetLampState (52, LAMP_DEFAULT);// 鉉11555 g_pRIOMain->SetLampState (52, LAMP_DEFAULT);// hyun
11556 }11556 }
11557}11557}
1155811558
... 25 unchanged lines ...
11584 Verify(message->messageID == LeftMFDMessageID);11584 Verify(message->messageID == LeftMFDMessageID);
1158511585
11586 if (GetShutdownState()) {11586 if (GetShutdownState()) {
11587 g_pRIOMain->SetLampState (12, LAMP_OFF);// 鉉11587 g_pRIOMain->SetLampState (12, LAMP_OFF);// hyun
11588 return;11588 return;
11589 }11589 }
11590 if(message->dataContents > 0)11590 if(message->dataContents > 0)
11591 {11591 {
11592 g_pRIOMain->SetLampState (12, LAMP_BRIGHT);// 鉉11592 g_pRIOMain->SetLampState (12, LAMP_BRIGHT);// hyun
11593 if(MWGUIManager::GetInstance())11593 if(MWGUIManager::GetInstance())
11594 {11594 {
11595 Check_Object(MWGUIManager::GetInstance());11595 Check_Object(MWGUIManager::GetInstance());
... 14 unchanged lines ...
11610 }11610 }
11611 else11611 else
11612 {11612 {
11613 g_pRIOMain->SetLampState (12, LAMP_DEFAULT);// 鉉11613 g_pRIOMain->SetLampState (12, LAMP_DEFAULT);// hyun
11614 }11614 }
11615}11615}
11616//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~11616//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 15 unchanged lines ...
11632 Verify(message->messageID == ToggleRadarPassiveMessageID);11632 Verify(message->messageID == ToggleRadarPassiveMessageID);
1163311633
11634 if (GetShutdownState()) {11634 if (GetShutdownState()) {
11635 g_pRIOMain->SetLampState (25, LAMP_OFF);// 鉉11635 g_pRIOMain->SetLampState (25, LAMP_OFF);// hyun
11636 return;11636 return;
11637 }11637 }
11638 if(message->dataContents > 0)11638 if(message->dataContents > 0)
11639 {11639 {
11640 g_pRIOMain->SetLampState (25, LAMP_BRIGHT);// 鉉11640 g_pRIOMain->SetLampState (25, LAMP_BRIGHT);// hyun
11641 if(!vehicle->vehicleShutDown)11641 if(!vehicle->vehicleShutDown)
11642 {11642 {
11643 if(MWGUIManager::GetInstance())11643 if(MWGUIManager::GetInstance())
... 32 unchanged lines ...
11676 }11676 }
11677 else11677 else
11678 {11678 {
11679 g_pRIOMain->SetLampState (25, LAMP_DEFAULT);// 鉉11679 g_pRIOMain->SetLampState (25, LAMP_DEFAULT);// hyun
11680 }11680 }
11681}11681}
1168211682
... 19 unchanged lines ...
11702 Verify(message->messageID == ToggleRadarRangeMessageID);11702 Verify(message->messageID == ToggleRadarRangeMessageID);
1170311703
11704 if (GetShutdownState()) {11704 if (GetShutdownState()) {
11705 g_pRIOMain->SetLampState (24, LAMP_OFF);// 鉉11705 g_pRIOMain->SetLampState (24, LAMP_OFF);// hyun
11706 return;11706 return;
11707 }11707 }
11708 if(message->dataContents > 0)11708 if(message->dataContents > 0)
11709 {11709 {
11710 g_pRIOMain->SetLampState (24, LAMP_BRIGHT);// 鉉11710 g_pRIOMain->SetLampState (24, LAMP_BRIGHT);// hyun
11711 if(!vehicle->vehicleShutDown)11711 if(!vehicle->vehicleShutDown)
11712 {11712 {
11713 if(MWGUIManager::GetInstance())11713 if(MWGUIManager::GetInstance())
... 25 unchanged lines ...
11739 }11739 }
11740 else11740 else
11741 {11741 {
11742 g_pRIOMain->SetLampState (24, LAMP_DEFAULT);// 鉉11742 g_pRIOMain->SetLampState (24, LAMP_DEFAULT);// hyun
11743 }11743 }
11744}11744}
1174511745
... 1787 unchanged lines ...
13533 {13533 {
13534 if(message->dataContents > 0)13534 if(message->dataContents > 0)
13535 {13535 {
13536 g_pRIOMain->SetLampState (36, LAMP_BRIGHT);// 鉉13536 g_pRIOMain->SetLampState (36, LAMP_BRIGHT);// hyun
13537 g_bObjMode = !g_bObjMode;13537 g_bObjMode = !g_bObjMode;
13538// ObjectiveRenderer::Instance->ToggleObjective ();13538// ObjectiveRenderer::Instance->ToggleObjective ();
13539 }13539 }
13540 else13540 else
13541 {13541 {
13542 g_pRIOMain->SetLampState (36, LAMP_DEFAULT);// 鉉13542 g_pRIOMain->SetLampState (36, LAMP_DEFAULT);// hyun
13543 }13543 }
13544 }13544 }
13545 else13545 else
... 22 unchanged lines ...
1356813568
13569 if(message->dataContents > 0)13569 if(message->dataContents > 0)
13570 {13570 {
13571 g_pRIOMain->SetLampState (55, LAMP_BRIGHT);// 鉉13571 g_pRIOMain->SetLampState (55, LAMP_BRIGHT);// hyun
13572 g_bMuteMode = !g_bMuteMode;13572 g_bMuteMode = !g_bMuteMode;
13573 }13573 }
13574 else13574 else
13575 {13575 {
13576 g_pRIOMain->SetLampState (55, LAMP_DEFAULT);// 鉉13576 g_pRIOMain->SetLampState (55, LAMP_DEFAULT);// hyun
13577 }13577 }
13578}13578}
1357913579
... 109 unchanged lines ...
1368913689
13690 if (GetShutdownState()) {13690 if (GetShutdownState()) {
13691 if (!g_bJumpZoom)13691 if (!g_bJumpZoom)
13692 g_pRIOMain->SetLampState (16, LAMP_OFF);// 鉉13692 g_pRIOMain->SetLampState (16, LAMP_OFF);// hyun
13693 g_pRIOMain->SetLampState (51, LAMP_OFF);13693 g_pRIOMain->SetLampState (51, LAMP_OFF);
13694 return;13694 return;
13695 }13695 }
... 793 unchanged lines ...
14489 Check_Object(m_reticuleCamera);14489 Check_Object(m_reticuleCamera);
14490 m_reticuleCamera->GetPerspective(near_clip, far_clip, horizontal_fov, height_to_width);14490 m_reticuleCamera->GetPerspective(near_clip, far_clip, horizontal_fov, height_to_width);
14491 //m_reticuleCamera->SetPerspective(near_clip, far_clip, s_zoomFOV[0], height_to_width);14491 //m_reticuleCamera->SetPerspective(near_clip, far_clip, s_zoomFOV[0], height_to_width);
14492 //상훈14492 //sanghoon
14493 // jcem - begin14493 // jcem - begin
14494 float fZoom;14494 float fZoom;
14495 gosASSERT(g_fZoomFOVA >= g_fZoomFOVB);14495 gosASSERT(g_fZoomFOVA >= g_fZoomFOVB);
... 2358 unchanged lines ...
16854 return 1;16854 return 1;
16855 return 0; // mixed16855 return 0; // mixed
16856}16856}
+
+

Gameleap/code/mw4/Code/MW4/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/mw4/Code/MW4/hudchat.cpp

+
+38 -38 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2//상훈 앞2//sanghoon begin
3#include "MWMission.hpp"3#include "MWMission.hpp"
4#include "VehicleInterface.hpp"4#include "VehicleInterface.hpp"
5#include "Vehicle.hpp"5#include "Vehicle.hpp"
... 15 unchanged lines ...
21#include "mech.hpp"21#include "mech.hpp"
22#include "mechlabheaders.h"22#include "mechlabheaders.h"
23#include "bucket.hpp"23#include "bucket.hpp"
24//상훈 뒤24//sanghoon end
25#include "hudcomp.hpp"25#include "hudcomp.hpp"
26#include "HUDChat.hpp"26#include "HUDChat.hpp"
27#include "hudcomm.hpp"27#include "hudcomm.hpp"
... 2 unchanged lines ...
30#include "mwapplication.hpp"30#include "mwapplication.hpp"
31#include "..\missionlang\resource.h"31#include "..\missionlang\resource.h"
3232
33//상훈짱 begin33//sanghoon begin
34#include <windows.h>34#include <windows.h>
35#include <ddraw.h>35#include <ddraw.h>
36#include <d3d.h>36#include <d3d.h>
... 6 unchanged lines ...
43extern Scalar g_fLastStartTime;43extern Scalar g_fLastStartTime;
44extern Adept::ReplicatorID g_LastTarget;44extern Adept::ReplicatorID g_LastTarget;
4545
46//상훈짱 end46//sanghoon end
4747
48extern "C" char* _stdcall CharPrevA(const char* lpszStart, const char* lpszCurrent);48extern "C" char* _stdcall CharPrevA(const char* lpszStart, const char* lpszCurrent);
49#define CharPrev CharPrevA49#define CharPrev CharPrevA
... 114 unchanged lines ...
164// KillData ();164// KillData ();
165 comm = Cast_Object (HUDComm *, MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_COMM));165 comm = Cast_Object (HUDComm *, MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_COMM));
166166
167 //mr_device의 맵 데이타를 로드한다.167 //Load map data for mr_device.
168 if(hsh_mrdev_initialized){168 if(hsh_mrdev_initialized){
169 extern char AssetsDirectory1[MAX_PATH];169 extern char AssetsDirectory1[MAX_PATH];
170 const Map__GameModel *model = Map::GetInstance ()->GetGameModel ();170 const Map__GameModel *model = Map::GetInstance ()->GetGameModel ();
... 57 unchanged lines ...
228 { 0*2, 0*2}, //special2228 { 0*2, 0*2}, //special2
229};229};
230230
231//number: 0,1,2,3 lancemate의 순서..231//number: 0,1,2,3 lancemate order..
232//part: 해당 lancemate mech의 part232//part: mech part of the lancemate
233//color:해당 part의 color233//color: color for this part
234void RenderAux1SmallMech(int num,int part,int color)234void RenderAux1SmallMech(int num,int part,int color)
235{235{
236 //각각의 offset에 따라서 그린다.236 //Draw according to each offset.
237 if(sm1_texture[part][2]!=0){237 if(sm1_texture[part][2]!=0){
238 mfd_device.DrawTexture(238 mfd_device.DrawTexture(
239 sm1_offset[part][0]+190+num*160,239 sm1_offset[part][0]+190+num*160,
... 358 unchanged lines ...
598 #endif598 #endif
599599
600 if(draw_mr){600 if(draw_mr){
601 //미션 리뷰 내용을 그린다.601 //Draw mission review content.
602 //_______________________________________________________________________________________________________602 //_______________________________________________________________________________________________________
603 //603 //
604 // Mech상태 및 메시지604 // Mech status and messages
605 //_______________________________________________________________________________________________________605 //_______________________________________________________________________________________________________
606 if(!mr_device.map_loaded){606 if(!mr_device.map_loaded){
607 comm = Cast_Object (HUDComm *, MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_COMM));607 comm = Cast_Object (HUDComm *, MWGUIManager::GetInstance ()->Component (MWGUIManager::HUD_COMM));
608608
609 //mr_device의 맵 데이타를 로드한다.609 //Load map data for mr_device.
610 extern char AssetsDirectory1[MAX_PATH];610 extern char AssetsDirectory1[MAX_PATH];
611 const Map__GameModel *model = Map::GetInstance ()->GetGameModel ();611 const Map__GameModel *model = Map::GetInstance ()->GetGameModel ();
612 char temp[256];612 char temp[256];
... 16 unchanged lines ...
629 int mech_count=0;629 int mech_count=0;
630 PMechInfo pMechInfos = &g_aMechInfos[0];630 PMechInfo pMechInfos = &g_aMechInfos[0];
631 {631 {
632 //현재 다른 메크들의 이름 /Kill/Death를 그린다.632 //Draw the name/Kill/Death stats of other mechs.
633 mech_count=MWApplication::GetInstance()->GetMechInfos(2, g_aMechInfos, g_TeamOrderOthers);633 mech_count=MWApplication::GetInstance()->GetMechInfos(2, g_aMechInfos, g_TeamOrderOthers);
634 g_TeamOrderCount=mech_count;634 g_TeamOrderCount=mech_count;
635 if (mech_count > 8) // jcem635 if (mech_count > 8) // jcem
... 21 unchanged lines ...
657657
658658
659 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture);659 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture);
660 //메크의 Damage 상태를 그린다.660 //Draw mech Damage status.
661 for (j=0;j<11;j++){661 for (j=0;j<11;j++){
662 if (j==7 || j==9 || j==10)662 if (j==7 || j==9 || j==10)
663 continue;663 continue;
... 5 unchanged lines ...
669 }669 }
670 }670 }
671671
672 //메크의 Callsign/Score/Kills/Deaths를 그린다.672 //Draw mech Callsign/Score/Kills/Deaths.
673 int nScore = 0, nKills = 0, nDeaths = 0;673 int nScore = 0, nKills = 0, nDeaths = 0;
674 callsign=pMechInfos->m_pcszName;674 callsign=pMechInfos->m_pcszName;
675 if (hud) {675 if (hud) {
... 19 unchanged lines ...
695 pMechInfos++;695 pMechInfos++;
696 }696 }
697697
698 //채팅장의 내용을 그린다.698 //Draw the contents of the chat window.
699 stlport::list<ChatData>::iterator iter;699 stlport::list<ChatData>::iterator iter;
700 int cy=300+30;//chat_y700 int cy=300+30;//chat_y
701 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){701 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){
... 31 unchanged lines ...
733 int i;733 int i;
734734
735 // Secondary Maps735 // Secondary Maps
736 //맵과 맵 경계선을 그린다. (게임중에 변하지 않으므로 한번만 그린다.)736 //Draw map and boundary. (Drawn once since it does not change during game.)
737 //DrawMapBoundary();//다른 버전 구현할 것...737 //DrawMapBoundary();//Implement alternate version...
738 mr_device.pD3DDevice->SetRenderState(D3DRENDERSTATE_CLIPPING ,TRUE);738 mr_device.pD3DDevice->SetRenderState(D3DRENDERSTATE_CLIPPING ,TRUE);
739 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSMapTexture);739 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSMapTexture);
740 mr_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, TRUE );740 mr_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, TRUE );
... 7 unchanged lines ...
748 //MechWarrior4::VehicleInterface* p = MechWarrior4::VehicleInterface::GetInstance();748 //MechWarrior4::VehicleInterface* p = MechWarrior4::VehicleInterface::GetInstance();
749749
750750
751 //미션 리뷰에서는 현재 메크가 중심에 표시되므로 맵이 스크롤 되어 표시된다.751 //In mission review, current mech is shown at center so the map scrolls.
752 float MR_MSF=4.0f;//Mission Review - Map Scale Factor752 float MR_MSF=4.0f;//Mission Review - Map Scale Factor
753 const float ViewSize=300.0f;//Mission Review - Map Size753 const float ViewSize=300.0f;//Mission Review - Map Size
754 const float ViewLMargin=10;754 const float ViewLMargin=10;
... 3 unchanged lines ...
758758
759 D3DVIEWPORT7 viewport={ViewLMargin,ViewTMargin,ViewSize,ViewSize,0.0f,1.0f};759 D3DVIEWPORT7 viewport={ViewLMargin,ViewTMargin,ViewSize,ViewSize,0.0f,1.0f};
760 mr_device.pD3DDevice->SetViewport(&viewport);760 mr_device.pD3DDevice->SetViewport(&viewport);
761 ///////////////////// MAP 시작 //////////////////////761 ///////////////////// MAP BEGIN //////////////////////
762762
763 //Focus Mech를 설정하는 루틴을 넣어야한다.763 //Need to add routine to set Focus Mech.
764 Scalar multx,multz;764 Scalar multx,multz;
765765
766766
... 20 unchanged lines ...
787787
788 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture);788 mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture);
789789
790 //맵상에 메크들들 그리기.텍스트 먼저..790 //Draw mechs on map. Text first..
791 for(i=0,pMechInfos = &g_aMechInfos[0];i<mech_count;i++,pMechInfos++){791 for(i=0,pMechInfos = &g_aMechInfos[0];i<mech_count;i++,pMechInfos++){
792 Mech* pMech = pMechInfos->m_pMech;792 Mech* pMech = pMechInfos->m_pMech;
793 //메크의 위치를 구할 것..793 //TODO: get mech position..
794794
795 Stuff::Point3D pos;795 Stuff::Point3D pos;
796796
... 30 unchanged lines ...
827 color,callsign,TEXTALIGN_HCENTER|TEXTALIGN_TOP);827 color,callsign,TEXTALIGN_HCENTER|TEXTALIGN_TOP);
828828
829 }829 }
830 //아이콘 그리기.830 //Draw icon.
831 for(i=0,pMechInfos = &g_aMechInfos[0];i<mech_count;i++,pMechInfos++){831 for(i=0,pMechInfos = &g_aMechInfos[0];i<mech_count;i++,pMechInfos++){
832 Mech* pMech = pMechInfos->m_pMech;832 Mech* pMech = pMechInfos->m_pMech;
833 //메크의 위치를 구할 것..833 //TODO: get mech position..
834834
835 Stuff::Point3D pos;835 Stuff::Point3D pos;
836836
... 49 unchanged lines ...
886 mr_device.pD3DDevice->SetViewport(&viewport2);886 mr_device.pD3DDevice->SetViewport(&viewport2);
887887
888888
889 ///////////////////// MAP 끝 //////////////////////889 ///////////////////// MAP END //////////////////////
890890
891 //_______________________________________________________________________________________________________891 //_______________________________________________________________________________________________________
892 //892 //
... 1 unchanged lines ...
894 //_______________________________________________________________________________________________________894 //_______________________________________________________________________________________________________
895895
896896
897 //미션 시간 그리기...hudtimer.cpp에 DrawImplementation에서 따온것임..897 //Draw mission timer... taken from DrawImplementation in hudtimer.cpp..
898 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());898 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());
899 Verify (mwmiss);899 Verify (mwmiss);
900 Stuff::Scalar cur_time=mwmiss->GetMissionTime();//-mwmiss->GetMissionTime();900 Stuff::Scalar cur_time=mwmiss->GetMissionTime();//-mwmiss->GetMissionTime();
... 22 unchanged lines ...
923 if(g_nTeamOrderMode==TEAM_MODE){923 if(g_nTeamOrderMode==TEAM_MODE){
924 int i,j;924 int i,j;
925 int size=3;925 int size=3;
926 //메크들의 상태를 그린다.926 //Draw mech status.
927 PMechInfo pMechInfos = &g_aMechInfos[1];927 PMechInfo pMechInfos = &g_aMechInfos[1];
928 size=MWApplication::GetInstance()->GetMechInfos(0, g_aMechInfos, g_TeamOrderOthers);928 size=MWApplication::GetInstance()->GetMechInfos(0, g_aMechInfos, g_TeamOrderOthers);
929 size--;929 size--;
... 40 unchanged lines ...
970 pMechInfos++;970 pMechInfos++;
971 }971 }
972 mfd_device.DrawMFDBackText(mfd_text_comm1);972 mfd_device.DrawMFDBackText(mfd_text_comm1);
973 //채팅장의 내용을 그린다.973 //Draw the contents of the chat window.
974 stlport::list<ChatData>::iterator iter;974 stlport::list<ChatData>::iterator iter;
975 int cy=240;//chat_y975 int cy=240;//chat_y
976 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){976 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){
... 19 unchanged lines ...
996 }996 }
997997
998 }else if(g_nTeamOrderMode==FREEFORALL_MODE){998 }else if(g_nTeamOrderMode==FREEFORALL_MODE){
999 //현재 다른 메크들의 이름 /Kill/Death를 그린다.999 //Draw the name/Kill/Death stats of other mechs.
1000 int size=0;1000 int size=0;
1001 PMechInfo pMechInfos = &g_aMechInfos[1];1001 PMechInfo pMechInfos = &g_aMechInfos[1];
1002 size=MWApplication::GetInstance()->GetMechInfos(2, g_aMechInfos, g_TeamOrderOthers);1002 size=MWApplication::GetInstance()->GetMechInfos(2, g_aMechInfos, g_TeamOrderOthers);
... 3 unchanged lines ...
1006 size = 7;1006 size = 7;
10071007
1008 int i;1008 int i;
1009 //번호를 먼저 지운다.1009 //Clear the numbers first.
1010// MSL 5.03 Comm MFD1010// MSL 5.03 Comm MFD
1011 for(i=0;i<7;i++)mfd_text_comm3[i][0]=0;1011 for(i=0;i<7;i++)mfd_text_comm3[i][0]=0;
1012 //번호를 채워 넣는다.1012 //Fill in the numbers.
1013// MSL 5.03 Comm MFD1013// MSL 5.03 Comm MFD
1014 for(i=0;i<size;i++)itoa(i+1,mfd_text_comm3[i],10);1014 for(i=0;i<size;i++)itoa(i+1,mfd_text_comm3[i],10);
10151015
... 48 unchanged lines ...
1064 if(size.cx<160){1064 if(size.cx<160){
1065 mfd_device.pFont[1].DrawText((float)p2->x,(float)p2->y,0xFFFFFFFF,callsign,TEXTALIGN_ORG);1065 mfd_device.pFont[1].DrawText((float)p2->x,(float)p2->y,0xFFFFFFFF,callsign,TEXTALIGN_ORG);
1066 }else{1066 }else{
1067 //최소크기 폰트도.. 넘어선다...1067 //Even the minimum font size is exceeded...
1068 //2line으로 만든다.1068 //Split into 2 lines.
1069 char callsign2[128];1069 char callsign2[128];
1070 strcpy(callsign2,callsign);1070 strcpy(callsign2,callsign);
1071 int len2=strlen(callsign)/2;1071 int len2=strlen(callsign)/2;
... 48 unchanged lines ...
11201120
1121 pMechInfos++;1121 pMechInfos++;
1122 }1122 }
1123 //채팅장의 내용을 그린다.1123 //Draw the contents of the chat window.
1124 stlport::list<ChatData>::iterator iter;1124 stlport::list<ChatData>::iterator iter;
1125 int cy=180;//chat_y1125 int cy=180;//chat_y
1126 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){1126 for (iter = m_Messages.begin ();iter != m_Messages.end ();iter++){
... 18 unchanged lines ...
1145 iter = m_Messages.erase (iter);1145 iter = m_Messages.erase (iter);
1146 }1146 }
1147 /*1147 /*
1148 //MWMission.cpp에서 가져온것인1148 //Taken from MWMission.cpp
1149 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());1149 MWMission *mwmiss = Cast_Object (MWMission *,Mission::GetInstance ());
11501150
1151 int death=0,kill=0;//,score1151 int death=0,kill=0;//,score
... 15 unchanged lines ...
1167 }else if(g_nTeamOrderMode==TEAM_MESSAGE2){1167 }else if(g_nTeamOrderMode==TEAM_MESSAGE2){
1168 ;//do nothing1168 ;//do nothing
1169 }1169 }
1170 //상훈 뒤1170 //sanghoon end
1171 mfd_device.EndChannel();1171 mfd_device.EndChannel();
1172 } else {1172 } else {
1173 }//hsh_initialized1173 }//hsh_initialized
1174}1174}
11751175
11761176
+
+

Gameleap/code/mw4/Code/MW4/hudcomm.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2//상훈 앞2//sanghoon begin
3#include "MWMission.hpp"3#include "MWMission.hpp"
4#include "VehicleInterface.hpp"4#include "VehicleInterface.hpp"
5#include "Narc.hpp"5#include "Narc.hpp"
... 7 unchanged lines ...
13#include "mwguimanager.hpp"13#include "mwguimanager.hpp"
14#include "MWPlayer.hpp"14#include "MWPlayer.hpp"
15#include <Adept\Mission.hpp>15#include <Adept\Mission.hpp>
16//상훈 뒤16//sanghoon end
1717
18#include "hudcomp.hpp"18#include "hudcomp.hpp"
19#include "HUDComm.hpp"19#include "HUDComm.hpp"
... 5 unchanged lines ...
25#include "..\missionlang\resource.h"25#include "..\missionlang\resource.h"
26#include "mechlabheaders.h"26#include "mechlabheaders.h"
2727
28//상훈짱 begin28//sanghoon begin
29#include <windows.h>29#include <windows.h>
30#include <ddraw.h>30#include <ddraw.h>
31#include <d3d.h>31#include <d3d.h>
3232
33#include <GameOS\render.hpp>33#include <GameOS\render.hpp>
3434
35//상훈짱 end35//sanghoon end
3636
37using namespace MechWarrior4;37using namespace MechWarrior4;
3838
... 552 unchanged lines ...
591}591}
592592
593593
+
+

Gameleap/code/mw4/Code/MW4/hudcomp.hpp

+
+3 -3 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
1#pragma once1#pragma once
22
33
... 329 unchanged lines ...
333 { m_Justification = value; }333 { m_Justification = value; }
334 void Wrap (bool value)334 void Wrap (bool value)
335 { m_Wrap = value; }335 { m_Wrap = value; }
336 //상훈336 //sanghoon
337 void SetAsAlt(){337 void SetAsAlt(){
338 m_Font=altFontHandle;338 m_Font=altFontHandle;
339 }339 }
... 41 unchanged lines ...
381 virtual void EndPos (DWORD& x,DWORD& y, bool bAdjust = true);381 virtual void EndPos (DWORD& x,DWORD& y, bool bAdjust = true);
382 bool Empty (void)382 bool Empty (void)
383 { return (m_Text[0] == 0); }383 { return (m_Text[0] == 0); }
384 //상훈 앞384 //sanghoon begin
385 char *hsh_get_m_Text(){return m_Text;}385 char *hsh_get_m_Text(){return m_Text;}
386 //상훈 뒤386 //sanghoon end
387 };387 };
388388
389 class HUDNumberText : public HUDText389 class HUDNumberText : public HUDText
... 203 unchanged lines ...
593593
594}594}
595595
+
+

Gameleap/code/mw4/Code/MW4/hudcomp2.cpp

+
+10 -10 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "hudcomp2.hpp"3#include "hudcomp2.hpp"
... 91 unchanged lines ...
9595
96void HUDTargetArrow::DrawImplementation(void)96void HUDTargetArrow::DrawImplementation(void)
97{97{
98 //상훈-깜박임 처리는 어디서 하는지 찾아 볼것.98 //sanghoon - need to find where blink handling is done.
99 Point3D loc,size;99 Point3D loc,size;
100 DWORD color;100 DWORD color;
101 int textx,texty,ty2;101 int textx,texty,ty2;
... 106 unchanged lines ...
208 {208 {
209 size = m_Textures[5]->Size ();209 size = m_Textures[5]->Size ();
210 m_Textures[5]->Draw (Point3D (m_TargetX,m_TargetY,0.9f),size,color);210 m_Textures[5]->Draw (Point3D (m_TargetX,m_TargetY,0.9f),size,color);
211 //꺽쇠 네개가 하나로 합쳐진 텍스쳐...211 //Texture of four angle brackets merged into one...
212 }212 }
213 else213 else
214 {214 {
... 63 unchanged lines ...
278 Scalar currentxval,currentyval;278 Scalar currentxval,currentyval;
279 Point3D size,loc,texsize;279 Point3D size,loc,texsize;
280280
281 //x축을 나타내는 그래프를 그리는 루틴...281 //Routine to draw the graph representing the x-axis...
282 //_________________________________________________________________________282 //_________________________________________________________________________
283 size = TwistSize ();283 size = TwistSize ();
284 texsize = m_Textures[0]->Size ();284 texsize = m_Textures[0]->Size ();
... 4 unchanged lines ...
289 if (currentxval > 0)289 if (currentxval > 0)
290 loc.x += 1.0f;290 loc.x += 1.0f;
291 DWORD color = DarkerColor (Color ());291 DWORD color = DarkerColor (Color ());
292 //가로 ruler를 그린다.(화살표는 들어있지 않음)292 //Draw horizontal ruler. (arrows not included)
293 m_Textures[5]->Draw (loc,m_Textures[5]->Size (),color,HUDTexture::NO_FLIP,true);293 m_Textures[5]->Draw (loc,m_Textures[5]->Size (),color,HUDTexture::NO_FLIP,true);
294 color = Color ();294 color = Color ();
295 if (currentxval != 0)295 if (currentxval != 0)
... 19 unchanged lines ...
315 ty= (DWORD) (loc.y+size.y+10);315 ty= (DWORD) (loc.y+size.y+10);
316 if ((currentxval > 5) || (currentxval < -5))316 if ((currentxval > 5) || (currentxval < -5))
317 {317 {
318 //과도한 twist시에 방향표시해줌..318 //Shows direction indicator when torso twist is excessive..
319 m_TwistText->Draw (Point3D ((Scalar) tx,(Scalar) ty,0.9f));319 m_TwistText->Draw (Point3D ((Scalar) tx,(Scalar) ty,0.9f));
320 }320 }
321 //상체표시 사각형..321 //Upper body indicator rectangle..
322// Changed Torso Bar from Green to Yellow322// Changed Torso Bar from Green to Yellow
323// MSL 5.00323// MSL 5.00
324 color = MakeColor (255,255,0,250);324 color = MakeColor (255,255,0,250);
325 my_DrawRect (min,(int) loc.y,max,(int) (loc.y+size.y),color);325 my_DrawRect (min,(int) loc.y,max,(int) (loc.y+size.y),color);
326326
327 color = DarkerColor (Color ());327 color = DarkerColor (Color ());
328 //위쪽, 상체 방향표시 화살표..328 //Top arrow indicating upper body direction..
329 m_Textures[2]->Draw (Point3D (loc.x-currentxval,loc.y-1,0.9f),texsize,color);329 m_Textures[2]->Draw (Point3D (loc.x-currentxval,loc.y-1,0.9f),texsize,color);
330 //아래쪽. 중심표시 화살표..330 //Bottom arrow indicating center position..
331 m_Textures[3]->Draw (Point3D (loc.x-1,loc.y+size.y+1,0.9f),texsize,color);331 m_Textures[3]->Draw (Point3D (loc.x-1,loc.y+size.y+1,0.9f),texsize,color);
332// DrawLine ((int) (loc.x-currentxval),(int) (loc.y-1),(int) (loc.x-currentxval),(int) (loc.y+size.y),color);332// DrawLine ((int) (loc.x-currentxval),(int) (loc.y-1),(int) (loc.x-currentxval),(int) (loc.y+size.y),color);
333 }333 }
... 5 unchanged lines ...
339// DrawLine ((int) (loc.x),(int) (loc.y-1),(int) (loc.x),(int) (loc.y+size.y),color);339// DrawLine ((int) (loc.x),(int) (loc.y-1),(int) (loc.x),(int) (loc.y+size.y),color);
340 }340 }
341341
342 //y축을 나타내는 그래프를 그리는 루틴...<==여기는 과도한 상하를 나타내는 텍스트가 없다.342 //Routine to draw graph for y-axis... <== no excessive up/down text here.
343 //_________________________________________________________________________343 //_________________________________________________________________________
344 size = PitchSize ();344 size = PitchSize ();
345 currentyval = (m_TorsoPitch*size.y)/100.0f; // 33 is the width of the bar345 currentyval = (m_TorsoPitch*size.y)/100.0f; // 33 is the width of the bar
... 36 unchanged lines ...
382 m_Textures[1]->Draw (Point3D (loc.x+size.x,loc.y,0.9f),texsize,color);382 m_Textures[1]->Draw (Point3D (loc.x+size.x,loc.y,0.9f),texsize,color);
383// DrawLine ((int) (loc.x-1),(int) (loc.y),(int) (loc.x+size.x+2),(int) (loc.y),color);383// DrawLine ((int) (loc.x-1),(int) (loc.y),(int) (loc.x+size.x+2),(int) (loc.y),color);
384 }384 }
385 //끝.. DrawImplementation.385 //End.. DrawImplementation.
386}386}
387387
388388
... 189 unchanged lines ...
578 }578 }
579}579}
580580
+
+

Gameleap/code/mw4/Code/MW4/huddamage.cpp

+
+34 -34 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "hudcomp2.hpp"3#include "hudcomp2.hpp"
... 5 unchanged lines ...
9#include "mwapplication.hpp"9#include "mwapplication.hpp"
10#include "..\missionlang\resource.h"10#include "..\missionlang\resource.h"
1111
12//상훈짱 begin12//sanghoon begin
13#include <windows.h>13#include <windows.h>
14#include <ddraw.h>14#include <ddraw.h>
15#include <d3d.h>15#include <d3d.h>
... 18 unchanged lines ...
34bool g_bCrossTargetMode = false;34bool g_bCrossTargetMode = false;
35// MSL 5.03 Secondary Damage Display35// MSL 5.03 Secondary Damage Display
36int g_nAuxilMode = 0;36int g_nAuxilMode = 0;
37//상훈짱 end37//sanghoon end
3838
39using namespace MechWarrior4;39using namespace MechWarrior4;
40namespace HUDDAMAGE40namespace HUDDAMAGE
... 289 unchanged lines ...
330 Color (MakeColor (0,175,0,150));330 Color (MakeColor (0,175,0,150));
331 m_DamageFlashTime = 0;331 m_DamageFlashTime = 0;
332 m_HitFlashTime = 0;332 m_HitFlashTime = 0;
333 //상훈 앞333 //sanghoon begin
334 VehicleInterface::GetInstance()->hudDamageMode=false;334 VehicleInterface::GetInstance()->hudDamageMode=false;
335 //상훈 뒤335 //sanghoon end
336 m_ArmorMode = VehicleInterface::GetInstance()->hudDamageMode;336 m_ArmorMode = VehicleInterface::GetInstance()->hudDamageMode;
337 for (i=0;i<MAX_HUD_DAMAGE_ZONE+1;i++)337 for (i=0;i<MAX_HUD_DAMAGE_ZONE+1;i++)
338 {338 {
... 71 unchanged lines ...
410 }410 }
411 else411 else
412 {412 {
413 //상훈413 //sanghoon
414 mfd_device.LoadDamageTexture(texturename[m_MechID]);414 mfd_device.LoadDamageTexture(texturename[m_MechID]);
415 radar_device.LoadRadarDamageTexture(texturename[m_MechID]);415 radar_device.LoadRadarDamageTexture(texturename[m_MechID]);
416 }416 }
... 47 unchanged lines ...
464 m_ArmorValues[i] = values[i];464 m_ArmorValues[i] = values[i];
465 }465 }
466}466}
467//상훈 앞467//sanghoon begin
468468
469//nst DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFCCCCCC,0xFF999999,0xFF666666,0xFF333333,0xFF000000};469//nst DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFCCCCCC,0xFF999999,0xFF666666,0xFF333333,0xFF000000};
470const DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFDDDDDD,0xFFBBBBBB,0xFF999999,0xFF777777,0xFF333333};470const DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFDDDDDD,0xFFBBBBBB,0xFF999999,0xFF777777,0xFF333333};
... 95 unchanged lines ...
566 {504,245,566,382},566 {504,245,566,382},
567 {573,245,634,382},567 {573,245,634,382},
568};568};
569//상훈 뒤569//sanghoon end
570570
571void HUDDamage::DrawImplementation(void)571void HUDDamage::DrawImplementation(void)
572{572{
... 59 unchanged lines ...
632 color = Color ();632 color = Color ();
633 for (i=0;i<10;i++)633 for (i=0;i<10;i++)
634 {634 {
635 //글자를 그리는 곳인가??635 //Is this where text is drawn??
636 m_Textures[20+i]->Draw (Point3D ((Scalar) bartable[i]+1.0f,(Scalar) y,0.9f),size,MakeColor (255,255,255,255),HUDTexture::NO_FLIP,true);636 m_Textures[20+i]->Draw (Point3D ((Scalar) bartable[i]+1.0f,(Scalar) y,0.9f),size,MakeColor (255,255,255,255),HUDTexture::NO_FLIP,true);
637 if (!(m_HitFlashCount[trans_array[i]] & 0x01))637 if (!(m_HitFlashCount[trans_array[i]] & 0x01))
638 {638 {
... 113 unchanged lines ...
752 fred = 0;752 fred = 0;
753753
754 for (i=0;i<11;i++)754 for (i=0;i<11;i++)
755 {//13이라는 숫자가 의미하는 것은 무엇일까?755 {//What does the number 13 mean here?
756#if 0756#if 0
757 if (i != fred)757 if (i != fred)
758 {758 {
... 113 unchanged lines ...
872 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA );872 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA );
873 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA );873 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA );
874874
875 //원래것은..13,14,14,14,14,14,14,14,16,14의 간격을 두고 있다.875 //The original spacing is 13,14,14,14,14,14,14,14,16,14.
876 const hsh_bartable[11] = {26+61*0,26+61*1,26+61*2,26+61*3,26+61*4,26+61*5,26+61*6,26+61*7,522,591,540};876 const hsh_bartable[11] = {26+61*0,26+61*1,26+61*2,26+61*3,26+61*4,26+61*5,26+61*6,26+61*7,522,591,540};
877877
878 DWORD color=0xFFFFFFFF;878 DWORD color=0xFFFFFFFF;
... 28 unchanged lines ...
907 radar_device.pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);907 radar_device.pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);
908908
909 for (i=0;i<11;i++)909 for (i=0;i<11;i++)
910 {//13이라는 숫자가 의미하는 것은 무엇일까?910 {//What does the number 13 mean here?
911 int dv=m_DamageValues[i];911 int dv=m_DamageValues[i];
912 DWORD color=0xFF000000;912 DWORD color=0xFF000000;
913 if(0<=dv && dv<=5)913 if(0<=dv && dv<=5)
... 34 unchanged lines ...
948 {948 {
949 if (m_ArmorValues[trans_array[i]] != -1)949 if (m_ArmorValues[trans_array[i]] != -1)
950 {950 {
951 hsh_x=hsh_bartable[i];//7에서는 예외이다.951 hsh_x=hsh_bartable[i];//Exception at index 7.
952 int tr=trans_array[i];952 int tr=trans_array[i];
953953
954 DWORD color=(m_HitFlashCount[tr] & 0x01)? 0xFFFFFFFF : SH_DamageColor[m_DamageValues[tr]];954 DWORD color=(m_HitFlashCount[tr] & 0x01)? 0xFFFFFFFF : SH_DamageColor[m_DamageValues[tr]];
... 44 unchanged lines ...
999 mfd_device.LoadDamageTexture(texturename[m_MechID]);999 mfd_device.LoadDamageTexture(texturename[m_MechID]);
10001000
1001 for (i=0;i<13;i++)1001 for (i=0;i<13;i++)
1002 {//13이라는 숫자가 의미하는 것은 무엇일까?1002 {//What does the number 13 mean here?
1003 int dv=m_DamageValues[i];1003 int dv=m_DamageValues[i];
1004 DWORD color=0xFF000000;1004 DWORD color=0xFF000000;
1005 if(0<=dv && dv<=5)color=SH_DamageColor[dv];1005 if(0<=dv && dv<=5)color=SH_DamageColor[dv];
... 243 unchanged lines ...
1249 m_TargetName->Justification (HUDText::LEFT_ALIGN);1249 m_TargetName->Justification (HUDText::LEFT_ALIGN);
1250 m_TargetRangeText = new HUDNumberText ();1250 m_TargetRangeText = new HUDNumberText ();
1251 m_TargetRangeText->Justification (HUDText::LEFT_ALIGN);1251 m_TargetRangeText->Justification (HUDText::LEFT_ALIGN);
1252 //상훈1252 //sanghoon
1253// m_TargetRangeText->SetSize(HUDText::LARGE_SIZE);1253// m_TargetRangeText->SetSize(HUDText::LARGE_SIZE);
1254 m_TargetRangeText->SetSize(HUDText::MEDIUM_SIZE);1254 m_TargetRangeText->SetSize(HUDText::MEDIUM_SIZE);
1255 m_TargetAlignment = 0;1255 m_TargetAlignment = 0;
... 13 unchanged lines ...
1269 m_TargetMechID = 0;1269 m_TargetMechID = 0;
12701270
1271 m_Weapons.clear ();1271 m_Weapons.clear ();
1272 //상훈 앞1272 //sanghoon begin
1273 VehicleInterface::GetInstance()->hudTargetDamageMode=false;1273 VehicleInterface::GetInstance()->hudTargetDamageMode=false;
1274 //상훈 뒤1274 //sanghoon end
1275 m_ArmorMode = VehicleInterface::GetInstance()->hudTargetDamageMode;1275 m_ArmorMode = VehicleInterface::GetInstance()->hudTargetDamageMode;
1276 m_LastMechMode = false;1276 m_LastMechMode = false;
1277}1277}
... 37 unchanged lines ...
1315 }1315 }
1316 else1316 else
1317 {1317 {
1318 //상훈1318 //sanghoon
1319 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);1319 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);
1320 }1320 }
13211321
... 442 unchanged lines ...
17641764
1765 if (m_TargetTonnage == -1)1765 if (m_TargetTonnage == -1)
1766 {1766 {
1767 //타켓이 메크가 아닐때..1767 //When target is not a mech..
1768 Verify (!m_ArmorMode); // only mechs show armor mode1768 Verify (!m_ArmorMode); // only mechs show armor mode
1769 if (m_TargetVehicle.GetCurrent()->IsDerivedFrom (MWObject::DefaultData))1769 if (m_TargetVehicle.GetCurrent()->IsDerivedFrom (MWObject::DefaultData))
1770 {1770 {
... 34 unchanged lines ...
1805 }1805 }
1806 else1806 else
1807 {1807 {
1808 //타켓이 메크일때..1808 //When target is a mech..
1809 Verify (m_TargetVehicle.GetCurrent ()->IsDerivedFrom (Mech::DefaultData));1809 Verify (m_TargetVehicle.GetCurrent ()->IsDerivedFrom (Mech::DefaultData));
1810 Mech *mech = Cast_Object(Mech *, m_TargetVehicle.GetCurrent());1810 Mech *mech = Cast_Object(Mech *, m_TargetVehicle.GetCurrent());
1811 Check_Object (mech);1811 Check_Object (mech);
... 14 unchanged lines ...
18261826
1827 if (m_ArmorMode)1827 if (m_ArmorMode)
1828 {1828 {
1829 //타켓이 메크이고 아머 모드일때1829 //When target is a mech and in armor mode
1830 int x,y;1830 int x,y;
1831 size = m_Textures[20]->Size ();1831 size = m_Textures[20]->Size ();
18321832
... 64 unchanged lines ...
1897 }1897 }
1898 else1898 else
1899 {1899 {
1900 //상훈1900 //sanghoon
1901 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);1901 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);
1902 }1902 }
19031903
... 6 unchanged lines ...
1910 fred = 0;1910 fred = 0;
19111911
1912 for (i=0;i<11;i++)1912 for (i=0;i<11;i++)
1913 {//13이라는 숫자가 의미하는 것은 무엇일까?1913 {//What does the number 13 mean here?
1914#if 01914#if 0
1915 if (i != fred)1915 if (i != fred)
1916 {1916 {
... 66 unchanged lines ...
19831983
1984 if (m_TargetVehicle.GetCurrent ())1984 if (m_TargetVehicle.GetCurrent ())
1985 {1985 {
1986 //3D target 또는 2D Target을 그린다.1986 //Draw 3D target or 2D target.
1987 if (!m_ArmorMode)1987 if (!m_ArmorMode)
1988 {1988 {
1989 if(g_f3dtarget)1989 if(g_f3dtarget)
... 16 unchanged lines ...
2006 int mechindex=GetMechIndex(model->mechID);2006 int mechindex=GetMechIndex(model->mechID);
2007 if(mechindex>=0)2007 if(mechindex>=0)
2008 {2008 {
2009 //지원되는 mech만 그린다.2009 //Draw only supported mechs.
2010// MSL 5.02 Target MFD Image2010// MSL 5.02 Target MFD Image
2011 int x=(mechindex%8)*128;2011 int x=(mechindex%8)*128;
2012 int y=(mechindex/8)*128;2012 int y=(mechindex/8)*128;
2013// int x=(mechindex%4)*128;2013// int x=(mechindex%4)*128;
2014// int y=(mechindex/4)*128;2014// int y=(mechindex/4)*128;
20152015
2016 //Target을 2D로 그린다.2016 //Draw target in 2D.
2017 mfd_device.pD3DDevice->SetTexture(0,mfd_device.pDDSMechTexture);2017 mfd_device.pD3DDevice->SetTexture(0,mfd_device.pDDSMechTexture);
2018 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, FALSE);2018 mfd_device.pD3DDevice->SetRenderState( D3DRENDERSTATE_ALPHABLENDENABLE, FALSE);
2019 mfd_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MAGFILTER,D3DTFG_LINEAR);2019 mfd_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MAGFILTER,D3DTFG_LINEAR);
2020 mfd_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MINFILTER,D3DTFG_LINEAR);2020 mfd_device.pD3DDevice->SetTextureStageState(0,D3DTSS_MINFILTER,D3DTFG_LINEAR);
2021 //메크의 종류별로 좌표를 계산하는.. 루틴을 작성하여 집어 넣을것...2021 //Need to write routine to calculate coordinates per mech type...
2022// MSL 5.02 Target MFD Image2022// MSL 5.02 Target MFD Image
2023 mfd_device.tw=1024,mfd_device.th=1024;2023 mfd_device.tw=1024,mfd_device.th=1024;
2024// MSL 5.02 Target MFD Image Resize2024// MSL 5.02 Target MFD Image Resize
... 35 unchanged lines ...
2060 radar_device.pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);2060 radar_device.pDDSTarget->Blt(&rc,NULL,NULL,DDBLT_COLORFILL ,&fx);
20612061
2062 for (int i=0;i<11;i++)2062 for (int i=0;i<11;i++)
2063 {//13이라는 숫자가 의미하는 것은 무엇일까?2063 {//What does the number 13 mean here?
2064 int dv=m_DamageValues[i];2064 int dv=m_DamageValues[i];
2065 DWORD color=0xFF000000;2065 DWORD color=0xFF000000;
2066 if(0<=dv && dv<=5)2066 if(0<=dv && dv<=5)
... 36 unchanged lines ...
2103 if (m_ShowData)2103 if (m_ShowData)
2104 {2104 {
21052105
2106 //좌측 하단의 target의 무기의 상태를 표시하는 루틴..2106 //Routine to display weapon status of target in lower-left..
2107 if (!m_ArmorMode)2107 if (!m_ArmorMode)
2108 {2108 {
2109 stlport::vector<WeaponData>::iterator iter;2109 stlport::vector<WeaponData>::iterator iter;
... 24 unchanged lines ...
21342134
2135 if (m_TargetTonnage == -1)2135 if (m_TargetTonnage == -1)
2136 {2136 {
2137 //타켓이 메크가 아닐때..2137 //When target is not a mech..
2138 Verify (!m_ArmorMode); // only mechs show armor mode2138 Verify (!m_ArmorMode); // only mechs show armor mode
2139 if (m_TargetVehicle.GetCurrent()->IsDerivedFrom (MWObject::DefaultData))2139 if (m_TargetVehicle.GetCurrent()->IsDerivedFrom (MWObject::DefaultData))
2140 {2140 {
... 4 unchanged lines ...
2145 m_ArmorValues[0] = (veh->m_HitPoints / veh->m_MaxHitPoints);2145 m_ArmorValues[0] = (veh->m_HitPoints / veh->m_MaxHitPoints);
2146 if (m_ArmorValues[0] != -1)2146 if (m_ArmorValues[0] != -1)
2147 {2147 {
2148 //데미지 막대 그래프를 그린다. 높이와 색상 동시에 표현된다.2148 //Draw damage bar graph. Height and color are expressed simultaneously.
2149 int level;2149 int level;
2150 level = (int) ((m_ArmorValues[0]*(MAX_HUD_DAMAGE_LEVEL))+0.5f);2150 level = (int) ((m_ArmorValues[0]*(MAX_HUD_DAMAGE_LEVEL))+0.5f);
2151 level = MAX_HUD_DAMAGE_LEVEL - level;2151 level = MAX_HUD_DAMAGE_LEVEL - level;
... 8 unchanged lines ...
2160 }//When the target is not a mech.2160 }//When the target is not a mech.
2161 else2161 else
2162 {2162 {
2163 //타켓이 메크일때..2163 //When target is a mech..
2164 Verify (m_TargetVehicle.GetCurrent ()->IsDerivedFrom (Mech::DefaultData));2164 Verify (m_TargetVehicle.GetCurrent ()->IsDerivedFrom (Mech::DefaultData));
2165 Mech *mech = Cast_Object(Mech *, m_TargetVehicle.GetCurrent());2165 Mech *mech = Cast_Object(Mech *, m_TargetVehicle.GetCurrent());
2166 Check_Object (mech);2166 Check_Object (mech);
... 11 unchanged lines ...
21782178
2179 if (m_ArmorMode)2179 if (m_ArmorMode)
2180 {2180 {
2181 //타켓이 메크이고 아머 모드일때2181 //When target is a mech and in armor mode
2182 for (i=0;i<MAX_HUD_DAMAGE_ZONE;i++)2182 for (i=0;i<MAX_HUD_DAMAGE_ZONE;i++)
2183 {2183 {
2184 int tr=trans_array[i];2184 int tr=trans_array[i];
... 23 unchanged lines ...
2208// MSL 5.03 Target Damage Display2208// MSL 5.03 Target Damage Display
2209 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);2209 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);
22102210
2211 //타켓이 메크이고 아머 모드가 아닐때..2211 //When target is a mech and NOT in armor mode..
2212 if(mfd_device.pDDSTargetTexture==0)2212 if(mfd_device.pDDSTargetTexture==0)
2213 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);2213 mfd_device.LoadTargetTexture(texturename[m_TargetMechID]);
22142214
2215 for (i=0;i<11;i++)2215 for (i=0;i<11;i++)
2216 {//13이라는 숫자가 의미하는 것은 무엇일까?2216 {//What does the number 13 mean here?
2217 int dv=m_DamageValues[i];2217 int dv=m_DamageValues[i];
2218 DWORD color=0xFF000000;2218 DWORD color=0xFF000000;
2219 if(0<=dv && dv<=5)color=SH_DamageColor[dv];2219 if(0<=dv && dv<=5)color=SH_DamageColor[dv];
... 40 unchanged lines ...
2260}2260}
22612261
22622262
+
+

Gameleap/code/mw4/Code/MW4/huddamage.hpp

+
+6 -6 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
11
2#pragma once2#pragma once
33
... 73 unchanged lines ...
77 int m_TargetMechID;77 int m_TargetMechID;
78 bool m_ShowData;78 bool m_ShowData;
79 bool m_LastMechMode;79 bool m_LastMechMode;
80 //상훈 앞80 //sanghoon begin
81 public:81 public:
82 char hsh_targetname[64];82 char hsh_targetname[64];
83 char hsh_targetrange[64];83 char hsh_targetrange[64];
84 //상훈 뒤84 //sanghoon end
8585
86 public:86 public:
87 HUDTargetDamage();87 HUDTargetDamage();
... 9 unchanged lines ...
97 void TargetName (char *name)97 void TargetName (char *name)
98 {98 {
99 m_TargetName->UpdateText (name);99 m_TargetName->UpdateText (name);
100 //상훈 앞100 //sanghoon begin
101 strncpy(hsh_targetname,name,sizeof(hsh_targetname));101 strncpy(hsh_targetname,name,sizeof(hsh_targetname));
102 hsh_targetname[sizeof(hsh_targetname)-1]=0;102 hsh_targetname[sizeof(hsh_targetname)-1]=0;
103 //상훈 뒤103 //sanghoon end
104 }104 }
105 void TargetRange (Stuff::Scalar value)105 void TargetRange (Stuff::Scalar value)
106 {106 {
... 1 unchanged lines ...
108 int temp = (int) value;108 int temp = (int) value;
109 sprintf (text,"%dm",temp);109 sprintf (text,"%dm",temp);
110 m_TargetRangeText->UpdateText (text);110 m_TargetRangeText->UpdateText (text);
111 //상훈 앞111 //sanghoon begin
112 strncpy(hsh_targetrange,text,sizeof(hsh_targetrange));112 strncpy(hsh_targetrange,text,sizeof(hsh_targetrange));
113 hsh_targetrange[sizeof(hsh_targetrange)-1]=0;113 hsh_targetrange[sizeof(hsh_targetrange)-1]=0;
114 //상훈 뒤114 //sanghoon end
115 }115 }
116 void TargetTonnage (Stuff::Scalar value);116 void TargetTonnage (Stuff::Scalar value);
117 void TargetAlignment (int value)117 void TargetAlignment (int value)
... 9 unchanged lines ...
127 };127 };
128}128}
129129
+
+

Gameleap/code/mw4/Code/MW4/hudmap.cpp

+
+8 -8 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "HUDMap.hpp"3#include "HUDMap.hpp"
... 4 unchanged lines ...
8#include "mwapplication.hpp"8#include "mwapplication.hpp"
9// MSL 5.02 Nav Points9// MSL 5.02 Nav Points
10#include "navpoint.hpp"10#include "navpoint.hpp"
11//상훈짱 begin11//sanghoon begin
12#include <windows.h>12#include <windows.h>
13#include <ddraw.h>13#include <ddraw.h>
14#include <d3d.h>14#include <d3d.h>
1515
16#include <GameOS\render.hpp>16#include <GameOS\render.hpp>
17extern char AssetsDirectory1[MAX_PATH];17extern char AssetsDirectory1[MAX_PATH];
18//상훈짱 end18//sanghoon end
1919
20const Stuff::Time SHOT_TIME = 2.0;20const Stuff::Time SHOT_TIME = 2.0;
2121
... 15 unchanged lines ...
37 AddTexture ("hud\\map",0,28,28,228,228);37 AddTexture ("hud\\map",0,28,28,228,228);
38 else{38 else{
39 AddTexture (model->m_HudMap,0,0,0,255,255);39 AddTexture (model->m_HudMap,0,0,0,255,255);
40 //상훈 앞40 //sanghoon begin
41 radar_device.MapDrawn=false;41 radar_device.MapDrawn=false;
42 /*42 /*
43 if(hsh_initialized){43 if(hsh_initialized){
... 5 unchanged lines ...
49 radar_device.MapDrawn=true;49 radar_device.MapDrawn=true;
50 }50 }
51 */51 */
52 //상훈 뒤52 //sanghoon end
53 }53 }
5454
55 Location (Point3D (301,399,0.9f));55 Location (Point3D (301,399,0.9f));
... 98 unchanged lines ...
154 Point3D loc,size;154 Point3D loc,size;
155 int i;155 int i;
156156
157 //맵을 그린다.157 //Draw the map.
158 Vehicle *vehicle = m_Vehicle.GetCurrent();158 Vehicle *vehicle = m_Vehicle.GetCurrent();
159159
160 loc = Location ();160 loc = Location ();
... 2 unchanged lines ...
163// loc.y -= (size.y/2.0f);163// loc.y -= (size.y/2.0f);
164 m_Textures[0]->Draw (loc,size,MakeColor (255,255,255,255),HUDTexture::NO_FLIP,true);164 m_Textures[0]->Draw (loc,size,MakeColor (255,255,255,255),HUDTexture::NO_FLIP,true);
165165
166 //Torso Sweep(파이모양 시야각 표시도형)을 표시한다.166 //Display Torso Sweep (pie-shaped field-of-view indicator).
167 if (NULL == vehicle)167 if (NULL == vehicle)
168 return;168 return;
169169
... 44 unchanged lines ...
214214
215215
216 //Draw Radar Blips216 //Draw Radar Blips
217 //레이다의 오브젝트들을 표시한다.217 //Display radar objects.
218218
219 MWObject *current_object;219 MWObject *current_object;
220 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++)220 for(i=0;i<vehicle->GetSensor()->numberOfContacts;i++)
... 111 unchanged lines ...
332 color = MakeColor (255,255,255,250);332 color = MakeColor (255,255,255,250);
333 m_Textures[id+20]->Draw (Point3D (object_display_pos.x,object_display_pos.y,0.9f),size,color,HUDTexture::NO_FLIP,true);333 m_Textures[id+20]->Draw (Point3D (object_display_pos.x,object_display_pos.y,0.9f),size,color,HUDTexture::NO_FLIP,true);
334 }334 }
335 //작전 범위(Boundary) 표시 다각형(주황빨강)335 //Operation boundary display polygon (orange-red)
336 size = Size ();336 size = Size ();
337 loc = Location ();337 loc = Location ();
338 Mission *miss;338 Mission *miss;
... 109 unchanged lines ...
448 m_ShotList.push_back (ShotEntry (who,gos_GetElapsedTime ()));448 m_ShotList.push_back (ShotEntry (who,gos_GetElapsedTime ()));
449}449}
450450
+
+

Gameleap/code/mw4/Code/MW4/hudmap.hpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + +
11
2#pragma once2#pragma once
33
... 30 unchanged lines ...
34 void DrawImplementation(void);34 void DrawImplementation(void);
35 void ConvertMapCoords (float& x,float& y);35 void ConvertMapCoords (float& x,float& y);
36 void ConvertMapCoords (Point3D& pt);36 void ConvertMapCoords (Point3D& pt);
37 //상훈 앞37 //sanghoon begin
38 bool hsh_fdraw;38 bool hsh_fdraw;
39 //상훈 뒤39 //sanghoon end
4040
41 public:41 public:
42 HUDMap();42 HUDMap();
... 12 unchanged lines ...
55 }55 }
56 };56 };
57}57}
+
+

Gameleap/code/mw4/Code/MW4/hudscore.cpp

+
+5 -5 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "HUDscore.hpp"3#include "HUDscore.hpp"
... 86 unchanged lines ...
90HUDScore::HUDScore()90HUDScore::HUDScore()
91{91{
92 m_AnimTime = 0;92 m_AnimTime = 0;
93 //상훈93 //sanghoon
94 Location (Point3D (0,0,0.9f));94 Location (Point3D (0,0,0.9f));
95// Location (Point3D (200,100,0.9f));95// Location (Point3D (200,100,0.9f));
96 Size (Point3D (310,300,0.9f));96 Size (Point3D (310,300,0.9f));
... 31 unchanged lines ...
128128
129 m_PingHeader = new HUDText ();129 m_PingHeader = new HUDText ();
130 m_PingHeader ->SetAsAlt();130 m_PingHeader ->SetAsAlt();
131 //상훈131 //sanghoon
132 /*132 /*
133 m_PingHeader->Justification (HUDText::LEFT_ALIGN);133 m_PingHeader->Justification (HUDText::LEFT_ALIGN);
134 m_PingHeader->UpdateText (app->GetLocString (IDS_PINGHEADER));134 m_PingHeader->UpdateText (app->GetLocString (IDS_PINGHEADER));
... 309 unchanged lines ...
444 m_TimeLeftText->UpdateText (text);444 m_TimeLeftText->UpdateText (text);
445 }445 }
446446
447 //상훈447 //sanghoon
448 count+=1;448 count+=1;
449 loc = Location ();449 loc = Location ();
450 loc.y=600-count*LINE_HEIGHT;450 loc.y=600-count*LINE_HEIGHT;
... 4 unchanged lines ...
455455
456 DWORD bcolor = BrighterColor (Color ());456 DWORD bcolor = BrighterColor (Color ());
457457
458 //상훈..458 //sanghoon
459 {459 {
460 Stuff::Point3D loc2(800-size.x,600-LINE_HEIGHT-1,0.9f);460 Stuff::Point3D loc2(800-size.x,600-LINE_HEIGHT-1,0.9f);
461 LDrawRect (loc2,0,0,size.x,LINE_HEIGHT,MakeColor (0,150,0,128));461 LDrawRect (loc2,0,0,size.x,LINE_HEIGHT,MakeColor (0,150,0,128));
... 19 unchanged lines ...
481 m_PlayerTitle->Draw (Point3D (loc.x+10,yvalue,0.9f));481 m_PlayerTitle->Draw (Point3D (loc.x+10,yvalue,0.9f));
482482
483 DWORD h;483 DWORD h;
484 //상훈484 //sanghoon
485 //m_PingHeader->DrawSize (pingwidth,h);485 //m_PingHeader->DrawSize (pingwidth,h);
486 //pingx = loc.x + size.x - pingwidth - 10;486 //pingx = loc.x + size.x - pingwidth - 10;
487 pingx = loc.x + size.x ;487 pingx = loc.x + size.x ;
... 395 unchanged lines ...
883883
884 return 0;884 return 0;
885}885}
+
+

Gameleap/code/mw4/Code/MW4/hudtarg.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "hudtarg.hpp"3#include "hudtarg.hpp"
... 363 unchanged lines ...
367 m_Textures[36]->Draw (loc,size,m_LeftCenterColor);367 m_Textures[36]->Draw (loc,size,m_LeftCenterColor);
368 m_Textures[37]->Draw (loc,size,m_RightCenterColor);368 m_Textures[37]->Draw (loc,size,m_RightCenterColor);
369369
370 for (i=0;i<3;i++)//상훈 원래 6이었음370 for (i=0;i<3;i++)//sanghoon: originally 6
371 {371 {
372 size = m_Textures[20+i]->Size ();372 size = m_Textures[20+i]->Size ();
373 //CanHit는 Hudweapon에서 set한다...373 //CanHit is set in Hudweapon...
374 if (m_Weapons->CanHit (i))374 if (m_Weapons->CanHit (i))
375 color = MakeColor (0,255,0,255);375 color = MakeColor (0,255,0,255);
376 else {376 else {
... 96 unchanged lines ...
473}473}
474474
475475
+
+

Gameleap/code/mw4/Code/MW4/hudweapon.cpp

+
+14 -14 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "MW4Headers.hpp"1#include "MW4Headers.hpp"
2#include "hudcomp.hpp"2#include "hudcomp.hpp"
3#include "hudcomp2.hpp"3#include "hudcomp2.hpp"
... 11 unchanged lines ...
15// MSL 5.03 Ammo Bay Fire15// MSL 5.03 Ammo Bay Fire
16static float TIME_AMMO_BAY_FIRE = 7.0f;16static float TIME_AMMO_BAY_FIRE = 7.0f;
1717
18//상훈짱 begin18//sanghoon begin
19#include <windows.h>19#include <windows.h>
20#include <ddraw.h>20#include <ddraw.h>
21#include <d3d.h>21#include <d3d.h>
2222
23#include <GameOS\render.hpp>23#include <GameOS\render.hpp>
24extern bool g_bNoWeaponRangeCheck;24extern bool g_bNoWeaponRangeCheck;
25//상훈짱 end25//sanghoon end
2626
27static void MakeStringCaps(char* buffer)27static void MakeStringCaps(char* buffer)
28{28{
... 526 unchanged lines ...
555555
556556
557 int rh=25;//row_height557 int rh=25;//row_height
558 //16개의 row를 가질수 있는것으로 가정한다.(row포함)558 //Assumes up to 16 rows (including header row).
559 // background boxes559 // background boxes
560560
561 mfd_device.DrawQuad(0+lm,0+tm,96+lm,(totalcount+1)*rh+10+tm,0xFF404040);561 mfd_device.DrawQuad(0+lm,0+tm,96+lm,(totalcount+1)*rh+10+tm,0xFF404040);
... 47 unchanged lines ...
609609
610 DWORD hsh_color1=0,hsh_color2=0;610 DWORD hsh_color1=0,hsh_color2=0;
611611
612 //무기 발사가능 상태: 각각의 색상에 대해 정확히 정의 할것.612 //Weapon fire-ready status: define exact color for each state.
613613
614 //정상(타겟안에 있음)(발사가능) 0xFFFFFFFF614 //Normal (target in range)(can fire) 0xFFFFFFFF
615 //정상(타겟밖에 있음)(발사가능) 0xFFFFFFFF615 //Normal (target out of range)(can fire) 0xFFFFFFFF
616 //로딩중(발사 불가) 0xFFA0A0A0616 //Reloading (cannot fire) 0xFFA0A0A0
617 //탄알이 떨어짐(발사불가) 0xFF808080617 //Out of ammo (cannot fire) 0xFF808080
618 //고장남(발사불가) 0xFF606060618 //Destroyed (cannot fire) 0xFF606060
619 DWORD nameheight=30;619 DWORD nameheight=30;
620 int top=5+(weapony+1)*rh;620 int top=5+(weapony+1)*rh;
621 int bottom = top+rh;621 int bottom = top+rh;
... 72 unchanged lines ...
694 char *weapon_string[3]={"1","2","3"};694 char *weapon_string[3]={"1","2","3"};
695695
696696
697 //해당 무기의 그룹의 상태를 표시한다.697 //Display the status of the weapon group.
698 for(int i=0;i<3;i++){698 for(int i=0;i<3;i++){
699 DWORD weapon_color=weapon_flag[i]?normal_color:nogroup_color;699 DWORD weapon_color=weapon_flag[i]?normal_color:nogroup_color;
700// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo nogroup_color700// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo nogroup_color
... 6 unchanged lines ...
707707
708 Point3D numsize = m_Textures[20]->Size ();708 Point3D numsize = m_Textures[20]->Size ();
709709
710 //무기 이름을 표시한다.710 //Display weapon name.
711// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo out_color711// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo out_color
712 switch (weapon->m_status)712 switch (weapon->m_status)
713 {713 {
... 72 unchanged lines ...
786 }786 }
787 }787 }
788788
789 //현재 엔터키로 발사되는 선택된 무기에 대해서 프레임을 표시한다.789 //Display frame for the selected weapon currently fired with Enter.
790 if (weapon->m_weapon == m_SingleFire.GetCurrent ()){790 if (weapon->m_weapon == m_SingleFire.GetCurrent ()){
791 mfd_device.DrawFrame(155+lm,top+1+tm,545+lm,bottom-1+tm,0xFFFFFFFF);791 mfd_device.DrawFrame(155+lm,top+1+tm,545+lm,bottom-1+tm,0xFFFFFFFF);
792 }792 }
... 2 unchanged lines ...
795 if ((ammocount > -1) && (weapon->m_status != 2)){795 if ((ammocount > -1) && (weapon->m_status != 2)){
796 mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,text,TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);796 mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,text,TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);
797 }else if (ammocount == -1){797 }else if (ammocount == -1){
798 //무기수가 제한이 없는 무기의 종류에는 '-'를 표시한다.798 //Display '-' for weapon types with unlimited ammo.
799 mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,"-",TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);799 mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,"-",TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);
800 }800 }
801 weapony ++;801 weapony ++;
... 95 unchanged lines ...
897{897{
898 m_SelectedWeaponGroup = selected;898 m_SelectedWeaponGroup = selected;
899}899}
+
+

Gameleap/code/mw4/Code/MW4/recscore.cpp

+
+46 -46 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__RECSCORE_CPP__)1#if !defined(__RECSCORE_CPP__)
2#define __RECSCORE_CPP__2#define __RECSCORE_CPP__
33
... 1004 unchanged lines ...
1008 case Adept::DamageObject::NullArmorZone:1008 case Adept::DamageObject::NullArmorZone:
1009 return "()";1009 return "()";
1010 case Adept::DamageObject::LeftLegArmorZone:1010 case Adept::DamageObject::LeftLegArmorZone:
1011 return "왼발";1011 return "Left Leg";
1012 case Adept::DamageObject::RightLegArmorZone:1012 case Adept::DamageObject::RightLegArmorZone:
1013 return "오른발";1013 return "Right Leg";
1014 case Adept::DamageObject::LeftArmArmorZone:1014 case Adept::DamageObject::LeftArmArmorZone:
1015 return "왼팔";1015 return "Left Arm";
1016 case Adept::DamageObject::RightArmArmorZone:1016 case Adept::DamageObject::RightArmArmorZone:
1017 return "오른팔";1017 return "Right Arm";
1018 case Adept::DamageObject::RightTorsoArmorZone:1018 case Adept::DamageObject::RightTorsoArmorZone:
1019 return "우측";1019 return "Right Torso";
1020 case Adept::DamageObject::LeftTorsoArmorZone:1020 case Adept::DamageObject::LeftTorsoArmorZone:
1021 return "좌측";1021 return "Left Torso";
1022 case Adept::DamageObject::CenterTorsoArmorZone:1022 case Adept::DamageObject::CenterTorsoArmorZone:
1023 return "전면";1023 return "Front";
1024 case Adept::DamageObject::CenterRearTorsoArmorZone:1024 case Adept::DamageObject::CenterRearTorsoArmorZone:
1025 return "후면";1025 return "Rear";
1026 case Adept::DamageObject::HeadArmorZone:1026 case Adept::DamageObject::HeadArmorZone:
1027 return "머리";1027 return "Head";
1028 case Adept::DamageObject::SpecialArmorZone1:1028 case Adept::DamageObject::SpecialArmorZone1:
1029 return "보조장치1";1029 return "Aux Device 1";
1030 case Adept::DamageObject::SpecialArmorZone2:1030 case Adept::DamageObject::SpecialArmorZone2:
1031 return "보조장치2";1031 return "Aux Device 2";
1032 case Adept::DamageObject::DefaultArmorZone:1032 case Adept::DamageObject::DefaultArmorZone:
1033 return "Default";1033 return "Default";
1034 }1034 }
... 955 unchanged lines ...
1990static SMSGFMT s_aKill[20][2] = {1990static SMSGFMT s_aKill[20][2] = {
1991 {1991 {
1992 { "%s's %s destroys %s's %s!", 0 }, // ok!1992 { "%s's %s destroys %s's %s!", 0 }, // ok!
1993 { "%s의 %s, %s의 %s을(를) 파괴하다!", 0 }, // ok!1993 { "%s's %s destroyed %s's %s!", 0 }, // ok!
1994 },1994 },
1995 {1995 {
1996 { "%s's %s explodes in a fire-ball, thanks to %s.", 1 }, // ok!1996 { "%s's %s explodes in a fire-ball, thanks to %s.", 1 }, // ok!
1997 { "%s의 %s, 각 기관부의 화염으로 폭발! %s의 절묘한 공격성공!", 1 }, // ok!1997 { "%s's %s explodes in flames! %s lands a perfect hit!", 1 }, // ok!
1998 },1998 },
1999 {1999 {
2000 { "%s delivers the last blow as %s's %s explodes in flames!", 2 }, // ok!2000 { "%s delivers the last blow as %s's %s explodes in flames!", 2 }, // ok!
2001 { "%s는 %s의 %s에!", 2 - 100}, // ok!2001 { "%s took a hit to %s's %s!", 2 - 100}, // ok!
2002 },2002 },
2003 {2003 {
2004 { "Smoking wreckage is all that's left of %s's %s after %s delivers the fatal blow!", 1 },2004 { "Smoking wreckage is all that's left of %s's %s after %s delivers the fatal blow!", 1 },
2005 { "%s의 무자비한 공격으로 %s의 %s 불타는 잔해만 남길 것이다.", 2 }, // ok!2005 { "%s's merciless assault leaves only burning wreckage of %s's %s.", 2 }, // ok!
2006 },2006 },
2007 {2007 {
2008 { "Glorious victory goes to %s as the wreckage from %s's %s lies burning on the battlefield!", 2 },2008 { "Glorious victory goes to %s as the wreckage from %s's %s lies burning on the battlefield!", 2 },
2009 { "전황은 급속도로 진전, %s의 생존가능성은 0%%!", 8 }, // ok!2009 { "The battle escalates rapidly - %s's survival probability is 0%%!", 8 }, // ok!
2010 },2010 },
2011 {2011 {
2012 { "%s's %s is put out of it's misery by a devastating shot from %s.", 1 },2012 { "%s's %s is put out of it's misery by a devastating shot from %s.", 1 },
2013 { "%s의 압도적인 화력 앞에 %s 처참히 무너지고 있다.", 4 }, // ok!2013 { "Under %s's overwhelming firepower, %s crumbles miserably.", 4 }, // ok!
2014 },2014 },
2015 {2015 {
2016 { "%s racks up another kill marker from reducing %s's %s to rubble!", 2 },2016 { "%s racks up another kill marker from reducing %s's %s to rubble!", 2 },
2017 { "%s %s의 %s을(를) 때려 눕히고, 새로운 킬마크를 얻었다.", 2 }, // ok!2017 { "%s knocked out %s's %s and earned a new kill mark.", 2 }, // ok!
2018 },2018 },
2019 {2019 {
2020 { "Fresh paint is applied to %s's %s to mark the destruction of %s's %s!", 0 }, // ok!2020 { "Fresh paint is applied to %s's %s to mark the destruction of %s's %s!", 0 }, // ok!
2021 { "%s는 %s를 격추한 킬마크를 %s에 추가했다.", 0 - 100 },2021 { "%s added a kill mark on %s for shooting down %s.", 0 - 100 },
2022 },2022 },
2023 {2023 {
2024 { "The burning wreckage of %s's %s is a reminder to all of the prowess of %s's battle skills!", 1 },2024 { "The burning wreckage of %s's %s is a reminder to all of the prowess of %s's battle skills!", 1 },
2025 { "%s의 잔해는 %s이(가) 가져갈 승리의 기념품이 될것이다.", 7 }, // ok!2025 { "The wreckage of %s will be %s's trophy of victory.", 7 }, // ok!
2026 },2026 },
2027 {2027 {
2028 { "The thunderous explosion of %s's %s is music to the ears of %s!", 1 },2028 { "The thunderous explosion of %s's %s is music to the ears of %s!", 1 },
2029 { "%s의 귀에 들려오는 죽음의 전주곡. 지휘자는 %s.", 7 }, // ok!2029 { "A death prelude echoes in %s's ears. The conductor: %s.", 7 }, // ok!
2030 },2030 },
2031 {2031 {
2032 { "%s's %s is destroyed by %s's %s.", 3 },2032 { "%s's %s is destroyed by %s's %s.", 3 },
2033 { "%s'의 %s, %s의 %s에게 파괴되었다.", 3 }, // ok!2033 { "%s's %s was destroyed by %s's %s.", 3 }, // ok!
2034 },2034 },
2035 {2035 {
2036 { "%s brings the four horseman of the apocalypse down upon %s.", 4 },2036 { "%s brings the four horseman of the apocalypse down upon %s.", 4 },
2037 { "%s(이)가 휘두르는 심판의 추가 %s에게 작렬했다.", 4 }, // ok!2037 { "The pendulum of judgment swung by %s strikes %s.", 4 }, // ok!
2038 },2038 },
2039 {2039 {
2040 { "%s's life flashes as %s reduces the %s to a burning wreck.", 5 },2040 { "%s's life flashes as %s reduces the %s to a burning wreck.", 5 },
2041 { "%s의 마지막 생명줄에, %s !", 7 - 100 }, // ok!2041 { "On %s's last lifeline, %s!", 7 - 100 }, // ok!
2042 },2042 },
2043 {2043 {
2044 { "%s is deafened by the resounding roar of the exploding %s, thanks to %s.", 1 },2044 { "%s is deafened by the resounding roar of the exploding %s, thanks to %s.", 1 },
2045 { "%s 기체의 폭발소리와 함께, 저 하늘로 날아갔다. %s에게 영광을!", 7 }, // ok!2045 { "%s's mech explodes skyward. Glory to %s!", 7 }, // ok!
2046 },2046 },
2047 {2047 {
2048 { "A kill marker is placed on %s's %s to mark the victory over %s.", 6 },2048 { "A kill marker is placed on %s's %s to mark the victory over %s.", 6 },
2049 { "%s의 %s에 새로운 킬마크를 추가해야 할 듯, 희생자는 %s", 6 }, // ok!2049 { "A new kill mark should be added to %s's %s, victim: %s", 6 }, // ok!
2050 },2050 },
2051 {2051 {
2052 { "%s is delivered unto the inferno with regards from %s.", 7 },2052 { "%s is delivered unto the inferno with regards from %s.", 7 },
2053 { "%s, %s의 호위하에 지옥으로 향했다. %s에게 명복을!", 9 }, // ok!2053 { "%s headed to hell under %s's escort. Rest in peace, %s!", 9 }, // ok!
2054 },2054 },
2055 {2055 {
2056 { "Another kill marker is given up by %s, as %s celebrates victory.", 7 },2056 { "Another kill marker is given up by %s, as %s celebrates victory.", 7 },
2057 { "%s, %s의 새로운 킬 마크가 되었다. 영원한 안식을…", 7 - 100 },2057 { "%s became %s's new kill mark. Rest in peace...", 7 - 100 },
2058 },2058 },
2059 {2059 {
2060 { "Best wishes in the afterlife are presented to %s from %s.", 7 },2060 { "Best wishes in the afterlife are presented to %s from %s.", 7 },
2061 { "%s에게 남은 것은 오직 %s에 대한 복수뿐!", 7 }, // ok!2061 { "All that remains for %s is revenge against %s!", 7 }, // ok!
2062 },2062 },
2063 {2063 {
2064 { "Tragedy strikes %s as %s guns the %s down.", 5 },2064 { "Tragedy strikes %s as %s guns the %s down.", 5 },
2065 { "%s 모든 화력을 동원해 %s의 %s을(를) 파괴했다.", 2 }, // ok!2065 { "%s brought all firepower to bear and destroyed %s's %s.", 2 }, // ok!
2066 },2066 },
2067 {2067 {
2068 { "%s earns the revenge of %s after the tragic destruction of the %s.", 2 },2068 { "%s earns the revenge of %s after the tragic destruction of the %s.", 2 },
2069 { "%s의 비극적인 최후! %s 절망하는 %s을(를) 지켜볼 뿐이다.", 9 }, // ok!2069 { "A tragic end for %s! %s can only watch %s in despair.", 9 }, // ok!
2070 },2070 },
2071};2071};
20722072
... 4 unchanged lines ...
2077static SMSGFMT s_aSuicide[2][2] = {2077static SMSGFMT s_aSuicide[2][2] = {
2078 {2078 {
2079 { "%s leaves the battlefield in disgrace after causing the destruction of the %s.", 0 },2079 { "%s leaves the battlefield in disgrace after causing the destruction of the %s.", 0 },
2080 { "%s 자폭! %s 불명예스럽게 전장을 떠났다!", 2 },2080 { "%s self-destructed! %s left the battlefield in disgrace!", 2 },
2081 },2081 },
2082 {2082 {
2083 { "%s will not grace the halls of the honored mechwarriors after self-destructing the %s.", 0 },2083 { "%s will not grace the halls of the honored mechwarriors after self-destructing the %s.", 0 },
2084 { "%s 자폭! 비겁자여, 진실로 승리를 원하는가?", 3 },2084 { "%s self-destructed! Coward, do you truly desire victory?", 3 },
2085 },2085 },
2086};2086};
20872087
... 18 unchanged lines ...
2106static SMSGFMT s_aShot[10][2] = {2106static SMSGFMT s_aShot[10][2] = {
2107 {2107 {
2108 { "%s's %s fires the %s and damages the %s of %s's %s.", 0 },2108 { "%s's %s fires the %s and damages the %s of %s's %s.", 0 },
2109 { "%s %s의 %s에 %s으로 공격했다", 1 }, // ok!2109 { "%s attacked %s's %s with %s", 1 }, // ok!
2110 },2110 },
2111 {2111 {
2112 { "%s fires the %s's %s and decimates the %s of %s's %s.", 2 },2112 { "%s fires the %s's %s and decimates the %s of %s's %s.", 2 },
2113 { "%s이(가) 탑승한 %s, %s로 %s이(가) 탑승한 %s의 %s에 피해를 입혔다.", 2 },2113 { "%s piloting %s damaged %s's %s on %s's %s.", 2 },
2114 },2114 },
2115 {2115 {
2116 { "%s's %s takes a devastating hit in the %s from %s.", 3 },2116 { "%s's %s takes a devastating hit in the %s from %s.", 3 },
2117 { "%s의 %s, %s의 압도적인 공격에 %s에 피해를 입었다.", 4 }, // ok!2117 { "%s's %s took damage to the %s under %s's overwhelming attack.", 4 }, // ok!
2118 },2118 },
2119 {2119 {
2120 { "%s's %s suffers a direct hit to it's %s from %s's %s.", 5 },2120 { "%s's %s suffers a direct hit to it's %s from %s's %s.", 5 },
2121 { "%s의 %s은(는) %s의 %s에 직접적인 피해를 받았다. 피해 %s!", 6 -100},2121 { "%s's %s took direct damage from %s's %s. Damage: %s!", 6 -100},
2122 },2122 },
2123 {2123 {
2124 { "%s damages %s's %s.", 7 },2124 { "%s damages %s's %s.", 7 },
2125 { "%s, %s의 %s에 피해를 입혔다..", 7 }, // ok!2125 { "%s dealt damage to %s's %s..", 7 }, // ok!
2126 },2126 },
2127 {2127 {
2128 { "Dense black smoke pours from %s's %s as a result of %s's targeted hit.", 8 },2128 { "Dense black smoke pours from %s's %s as a result of %s's targeted hit.", 8 },
2129 { "%s의 절묘한 공격으로 %s의 %s에서 검은 연기가 퍼지고 있다.", 7 }, // ok!2129 { "Black smoke billows from %s's %s from %s's precise attack.", 7 }, // ok!
2130 },2130 },
2131 {2131 {
2132 { "Fire boils from the damaged %s of %s's %s after %s hits it with a %s.", 9 },2132 { "Fire boils from the damaged %s of %s's %s after %s hits it with a %s.", 9 },
2133 { "%s %s을(를) 발사하여, %s이(가) 탑승한 %s의 %s에 피해를 발생시켰다.", 10 }, // ok!2133 { "%s fired %s, dealing damage to the %s of %s's %s.", 10 }, // ok!
2134 },2134 },
2135 {2135 {
2136 { "Smoke and fire are trailing from %s's %s, all results of the %s blast inflicted by %s.", 11 },2136 { "Smoke and fire are trailing from %s's %s, all results of the %s blast inflicted by %s.", 11 },
2137 { "%s의 %s 공격에, 불과 연기가 %s의 기체를 뒤덮고 있다.", 15 }, // ok!2137 { "Fire and smoke engulf %s's mech from %s's %s attack.", 15 }, // ok!
2138 },2138 },
2139 {2139 {
2140 { "%s targets and fires the %s; %s cries in dismay as the %s's %s is damaged.", 10 },2140 { "%s targets and fires the %s; %s cries in dismay as the %s's %s is damaged.", 10 },
2141 { "%s %s을(를) 조준하여 %s이(가) 탑승한 %s의 %s에 맞춘 후 방아쇠를 당겼다.", 10 }, // ok!2141 { "%s aimed %s and pulled the trigger, hitting the %s of %s's %s.", 10 }, // ok!
2142 },2142 },
2143 {2143 {
2144 { "%s takes a severe wound to the %s as %s aims for the %s again.", 13 },2144 { "%s takes a severe wound to the %s as %s aims for the %s again.", 13 },
2145 { "%s 다시 %s의 %s을(를) 조준하여 사격했다. %s, %s에 심각한 피해를 입은 듯.", 14 -100},2145 { "%s aimed again at %s's %s and fired. %s seems to have taken serious damage to %s.", 14 -100},
2146 },2146 },
2147};2147};
21482148
... 1 unchanged lines ...
2150static SMSGFMT s_aCTF[1][2] = {2150static SMSGFMT s_aCTF[1][2] = {
2151 {2151 {
2152 { "%s captured flag.", 0 },2152 { "%s captured flag.", 0 },
2153 { "%s, 깃발 획득!.", 0 },2153 { "%s captured the flag!", 0 },
2154 },2154 },
2155};2155};
2156static SMSGFMT s_aFBK[1][2] = {2156static SMSGFMT s_aFBK[1][2] = {
2157 {2157 {
2158 { "%s destroyed friendly building.", 0 },2158 { "%s destroyed friendly building.", 0 },
2159 { "%s, 깃발 획득!.", 0 },2159 { "%s captured the flag!", 0 },
2160 },2160 },
2161};2161};
2162static SMSGFMT s_aEBK[1][2] = {2162static SMSGFMT s_aEBK[1][2] = {
2163 {2163 {
2164 { "%s destroyed enemy building.", 0 },2164 { "%s destroyed enemy building.", 0 },
2165 { "%s, 깃발 획득!.", 0 },2165 { "%s captured the flag!", 0 },
2166 },2166 },
2167};2167};
2168const SMSGFMT* pcFMT;2168const SMSGFMT* pcFMT;
... 1338 unchanged lines ...
3507//3507//
35083508
3509#endif // !defined(__RECSCORE_CPP__)3509#endif // !defined(__RECSCORE_CPP__)
+
+

Gameleap/code/mw4/Code/MW4Application/Cstr.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#define __INTERNAL__1#define __INTERNAL__
2#include "stdafx.h"2#include "stdafx.h"
3#include "malloc.h"3#include "malloc.h"
... 1073 unchanged lines ...
1077 int nTotalLength;1077 int nTotalLength;
1078 int i, nSize = GetSize();1078 int i, nSize = GetSize();
10791079
1080 nTotalLength = nSize; // nSize개의 '\0'1080 nTotalLength = nSize; // nSize null terminators '\0'
1081 for(i = 0; i < nSize; i++) {1081 for(i = 0; i < nSize; i++) {
1082 nTotalLength += strlen(GetAt(i));1082 nTotalLength += strlen(GetAt(i));
1083 }1083 }
... 208 unchanged lines ...
1292 }1292 }
1293}1293}
1294#endif // _DEBUG1294#endif // _DEBUG
+
+

Gameleap/code/mw4/Code/MW4Application/Eula.cpp

+
+11 -6 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include"MW4AppHeaders.hpp"1#include"MW4AppHeaders.hpp"
2#include<Windows.h>2#include<Windows.h>
33
4//4//
5//Do not use5//Do not use ....\EulaTest\\1.0 as the key for your game; use your game name and version instead...
6.\EulaTest\\1.0 as the key for your game; use your game name and version instead
7
86
9// PLEASE NOTE: do not place backslashes on beginning or end of regkey.7// PLEASE NOTE: do not place backslashes on beginning or end of regkey.
10//8//
... 2 unchanged lines ...
13typedef DWORD (*EBUPROC) (LPCTSTR lpRegKeyLocation, LPCTSTR lpEULAFileName, LPCSTR lpWarrantyFileName, BOOL fCheckForFirstRun);11typedef DWORD (*EBUPROC) (LPCTSTR lpRegKeyLocation, LPCTSTR lpEULAFileName, LPCSTR lpWarrantyFileName, BOOL fCheckForFirstRun);
1412
15//13//
16//The game application’s .RC file should define strings for the EULA and WARRANTY pathnames14//The game application's .RC file should define strings for the EULA and WARRANTY pathnames...
17
1815
19//16//
2017
... 10 unchanged lines ...
31 if (NULL == hMod)28 if (NULL == hMod)
32 hMod = LoadLibrary("EBUEula.dll");29 hMod = LoadLibrary("EBUEula.dll");
3330
34 if (NULL == hMod) // can’t attach to DLL31 if (NULL == hMod) // can't attach to DLL
35 {32 {
36 STOP(("Cannot Load EBUEula.dll"));33 STOP(("Cannot Load EBUEula.dll"));
37 }34 }
38 pfnEBUEula = (EBUPROC) GetProcAddress(hMod, "EBUEula");35 pfnEBUEula = (EBUPROC) GetProcAddress(hMod, "EBUEula");
3936
40 if (NULL == pfnEBUEula) // can’t find entry point37 if (NULL == pfnEBUEula) // can't find entry point
41 {38 {
42 FreeLibrary(hMod);39 FreeLibrary(hMod);
43 STOP(("Cannot Find Entry Point to EBUEula.dll"));40 STOP(("Cannot Find Entry Point to EBUEula.dll"));
... 2 unchanged lines ...
4643
47 //44 //
48 //This call enables both EULA and warranty accepting/viewing/printing. If your45 //This call enables both EULA and warranty accepting/viewing/printing. If your
49 //game doesn’t ship with a WARRANTY file, specifiy NULL instead of szWarranty46 //game doesn't ship with a WARRANTY file, specifiy NULL instead of szWarranty...
5047
5148 //The code below, for instance, works with both OEM and retail builds...
52 //The code below, for instance, works with both OEM and retail builds
53
5449
55 //50 //
56 const char *pszWarrantyParam = 0xFFFFFFFF != GetFileAttributes(warranty_filename) ? warranty_filename : NULL;51 const char *pszWarrantyParam = 0xFFFFFFFF != GetFileAttributes(warranty_filename) ? warranty_filename : NULL;
... 50 unchanged lines ...
107 if(needflip) gos_EnableSetting(gos_Set_MinMaxApp,1);102 if(needflip) gos_EnableSetting(gos_Set_MinMaxApp,1);
108 return res;103 return res;
109}104}
+
+

Gameleap/code/mw4/Code/MW4Application/MW4Application.cpp

+
+10 -10 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: MW4Application.cpp //2// File: MW4Application.cpp //
3//---------------------------------------------------------------------------//3//---------------------------------------------------------------------------//
... 186 unchanged lines ...
190extern bool(__cdecl *NoCDMessageFunction)(void);190extern bool(__cdecl *NoCDMessageFunction)(void);
191191
192extern bool gNoDialogs;192extern bool gNoDialogs;
193//상훈.. begin193//sanghoon begin
194extern bool use_shgui;194extern bool use_shgui;
195extern int SCREENS;195extern int SCREENS;
196//상훈.. end196//sanghoon end
197197
198bool gRunEula=true;198bool gRunEula=true;
199bool gNoCD=false;199bool gNoCD=false;
... 90 unchanged lines ...
290290
291291
292// bool needflip=Environment.fullScreen && IsFirstRun();292// bool needflip=Environment.fullScreen && IsFirstRun();
293 //상훈 앞293 //sanghoon begin
294 bool needflip=false;294 bool needflip=false;
295 //상훈 뒤295 //sanghoon end
296 if(needflip){296 if(needflip){
297 //상훈 앞297 //sanghoon begin
298 //MessageBeep(MB_ICONEXCLAMATION);298 //MessageBeep(MB_ICONEXCLAMATION);
299 //상훈 뒤299 //sanghoon end
300300
301 EnterWindowMode();301 EnterWindowMode();
302 }302 }
... 33 unchanged lines ...
336 {336 {
337 //Original337 //Original
338 //page->GetEntry("videodriverindex",&Environment.FullScreenDevice);338 //page->GetEntry("videodriverindex",&Environment.FullScreenDevice);
339 //상훈339 //sanghoon
340 Environment.FullScreenDevice=0;340 Environment.FullScreenDevice=0;
341 page->GetEntry("antialias",&Environment.AntiAlias);341 page->GetEntry("antialias",&Environment.AntiAlias);
342 page->GetEntry("bitdepth",&Environment.bitDepth);342 page->GetEntry("bitdepth",&Environment.bitDepth);
... 12 unchanged lines ...
355 //Original355 //Original
356 //page->GetEntry("HudDamageMode",&VehicleInterface::hudDamageMode);356 //page->GetEntry("HudDamageMode",&VehicleInterface::hudDamageMode);
357 //page->GetEntry("HudTargetDamageMode",&VehicleInterface::hudTargetDamageMode);357 //page->GetEntry("HudTargetDamageMode",&VehicleInterface::hudTargetDamageMode);
358 //상훈358 //sanghoon
359 VehicleInterface::hudDamageMode=false;359 VehicleInterface::hudDamageMode=false;
360 VehicleInterface::hudTargetDamageMode=false;360 VehicleInterface::hudTargetDamageMode=false;
361 }361 }
... 726 unchanged lines ...
1088 Environment.soundDisable = (strstr(all_lower, "-nosound") != NULL);1088 Environment.soundDisable = (strstr(all_lower, "-nosound") != NULL);
1089 Environment.fullScreen = (strstr(all_lower, "-window") == NULL);1089 Environment.fullScreen = (strstr(all_lower, "-window") == NULL);
10901090
1091 //상훈짱.. begin1091 //sanghoon begin
1092 use_shgui=Environment.fullScreen?1:0;1092 use_shgui=Environment.fullScreen?1:0;
1093 //상훈짱.. end1093 //sanghoon end
10941094
1095 gNoAutoConfig= (strstr(all_lower, "-noautoconfig") != NULL);1095 gNoAutoConfig= (strstr(all_lower, "-noautoconfig") != NULL);
10961096
... 815 unchanged lines ...
1912 return g_nCTCL;1912 return g_nCTCL;
1913}1913}
1914// jcem - end1914// jcem - end
+
+

Gameleap/code/mw4/Code/MW4Application/ctcl.cpp

+
+26 -26 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1// ctcl.cpp : Defines the entry point for the DLL application.1// ctcl.cpp : Defines the entry point for the DLL application.
2//2//
33
... 513 unchanged lines ...
517 BYTE bCode;517 BYTE bCode;
518 if (Disassemble("B", &bCode)) {518 if (Disassemble("B", &bCode)) {
519 ASSERT((bCode == 0) || (bCode == 3));519 ASSERT((bCode == 0) || (bCode == 3));
520 // 받아가시오 from Game to console...520 // Receiving from Game to console...
521 SYSTEMTIME* pSysTime;521 SYSTEMTIME* pSysTime;
522 WORD wSysTimeSize;522 WORD wSysTimeSize;
523 GUID* pGUID;523 GUID* pGUID;
... 9 unchanged lines ...
533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);
534 if (pSF) {534 if (pSF) {
535 if (bCode == 3) {535 if (bCode == 3) {
536 // 미션리뷰 서버가 mission review 받았다는 것을 받았느냐?536 // Did we receive confirmation the mission review server got the mission review?
537 pSF->m_bProcessed = true;537 pSF->m_bProcessed = true;
538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);
539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);
... 370 unchanged lines ...
910 BYTE bCode;910 BYTE bCode;
911 if (Disassemble("B", &bCode)) {911 if (Disassemble("B", &bCode)) {
912 ASSERT((bCode == 1) || (bCode == 2));912 ASSERT((bCode == 1) || (bCode == 2));
913 // 받았오 from console to Game...913 // Received from console to Game...
914 SYSTEMTIME* pSysTime;914 SYSTEMTIME* pSysTime;
915 WORD wSysTimeSize;915 WORD wSysTimeSize;
916 GUID* pGUID;916 GUID* pGUID;
... 520 unchanged lines ...
1437#endif // !defined(CTCL_LAUNCHER)1437#endif // !defined(CTCL_LAUNCHER)
1438 } else {1438 } else {
1439 /*1439 /*
1440 클라이언트나 서버의 경우 실행되는 코드이다.1440 Code executed for both client and server.
14411441
1442 *있을수 있는 상태들1442 *Possible states:
1443 서버/클라이언트가 결정되기전.. 명령 대기상태1443 Before server/client role is determined: waiting for commands
1444 (종료/서버시작/클라이언트 시작등의 명령이 올수 있다.)1444 (Commands such as exit/start-server/start-client may arrive.)
14451445
1446 서버로 실행되어 서버 메크 설정에 대한 데이타를 기다리는 상태1446 Running as server, waiting for server mech configuration data
1447 (CreateSession가 실행된 상태이다.)1447 (State after CreateSession has been called.)
1448 서버로 실행되어 Bot들에 대한 정보를 기다리는 상태1448 Running as server, waiting for Bot information
1449 (클라이언트의 참여는 클라이언트와 서버간에 자동으로 이루어진다.)1449 (Client joining happens automatically between client and server.)
1450 서버로 실행되어 Launch를 기다리는 상태1450 Running as server, waiting for Launch
14511451
1452 ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다.1452 ==>Client has no waiting state as data is transferred immediately on startup.
14531453
1454 ==>각각의 상태를 정의하고 각 상태에 맞는 처리를 해주면 된다.1454 ==>Define each state and implement the appropriate handling for each.
1455 switch(state){1455 switch(state){
1456 }1456 }
1457 */1457 */
... 75 unchanged lines ...
1533 }1533 }
1534 break;1534 break;
1535 case 1:1535 case 1:
1536 //서버/클라이언트로서 실행준비하도록 명령을 전달한다.1536 //Send command to prepare for execution as server/client.
1537 //또한 서버를 실행하는데 필요한 모든 파라미터도 함께 전달한다.1537 //Also transmit all parameters required to run the server.
1538 for(i = 0; i < g_nPlayerInfos; i++) {1538 for(i = 0; i < g_nPlayerInfos; i++) {
1539 SPlayerInfo& pi = g_aPlayerInfos[i];1539 SPlayerInfo& pi = g_aPlayerInfos[i];
1540 if (!pi.m_bBot) {1540 if (!pi.m_bBot) {
... 20 unchanged lines ...
1561 }1561 }
1562 }1562 }
1563 if (i == g_nPlayerInfos) {1563 if (i == g_nPlayerInfos) {
1564 // Bot들에 대한 정보를 모두 한데 묶어서 보낸다.1564 // Bundle and send all Bot information together.
1565 CPacket pak(&SVR.GetGameSOC());1565 CPacket pak(&SVR.GetGameSOC());
15661566
1567 pak.Assemble("B", C_BOTS);1567 pak.Assemble("B", C_BOTS);
1568 for(i = 0; i < g_nPlayerInfos; i++) {1568 for(i = 0; i < g_nPlayerInfos; i++) {
1569 if (i != g_nServer) { // 원래 Bot만 지금은 서버를 제외한 전부...1569 if (i != g_nServer) { // Originally bots only; now everyone except the server...
1570 SPlayerInfo& pi = g_aPlayerInfos[i];1570 SPlayerInfo& pi = g_aPlayerInfos[i];
1571 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);1571 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);
1572 }1572 }
... 4 unchanged lines ...
1577 }1577 }
1578 break;1578 break;
1579 case 4:1579 case 4:
1580 // 게임이 성공적으로 만들어지면 서버와 클라이언트들의 Mech에 대한 정보들을 Set한다...1580 // Once the game is successfully created, set Mech info for server and all clients...
1581 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {1581 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {
1582 for(i = 0; i < g_nPlayerInfos; i++) {1582 for(i = 0; i < g_nPlayerInfos; i++) {
1583 if (i != g_nServer) { // 서버는 이미 SetMech에 진입한 상태...1583 if (i != g_nServer) { // Server has already entered SetMech...
1584 SPlayerInfo& pi = g_aPlayerInfos[i];1584 SPlayerInfo& pi = g_aPlayerInfos[i];
1585 if (!pi.m_bBot) {1585 if (!pi.m_bBot) {
1586 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);1586 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);
... 6 unchanged lines ...
1593 }1593 }
1594 break;1594 break;
1595 case 6:1595 case 6:
1596 //모든 클라이언드들이 서버에 참여하기를 기다린다.<==이 응답은 서버로 부터 얻을 수 있다.1596 //Wait for all clients to join the server. <==This response comes from the server.
1597 //참여가 모두 끝났으면, 서버로 하여금 게임을 Launch시키도록 한다.1597 //Once all clients have joined, instruct the server to Launch the game.
1598 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {1598 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {
1599 g_nMech4Comm = 9;1599 g_nMech4Comm = 9;
1600 }1600 }
... 385 unchanged lines ...
1986}1986}
1987#endif // !defined(CTCL_LAUNCHER)1987#endif // !defined(CTCL_LAUNCHER)
1988#endif // !defined(CTCLS_EXPORTS)1988#endif // !defined(CTCLS_EXPORTS)
+
+

Gameleap/code/mw4/Code/MW4Application/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/mw4/Code/MW4Application/ctime.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
22
3#ifdef _DEBUG3#ifdef _DEBUG
... 40 unchanged lines ...
4444
45long GetTotalSeconds(int nYear, int nMonth, int nDay)45long GetTotalSeconds(int nYear, int nMonth, int nDay)
46{46{
47 // nYear, nMonth, nDay날의 0시 0분 0초를 0으로 한 초단위 수...47 // Seconds elapsed since 00:00:00 on the date nYear/nMonth/nDay...
48 ASSERT(nYear >= 1970);48 ASSERT(nYear >= 1970);
49 ASSERT((1 <= nMonth) && (nMonth <= 12));49 ASSERT((1 <= nMonth) && (nMonth <= 12));
50 ASSERT(1 <= nDay);50 ASSERT(1 <= nDay);
... 6 unchanged lines ...
57 if (IsLeapYear(nStart)) {57 if (IsLeapYear(nStart)) {
58 nDays++;58 nDays++;
59 }59 }
60 lTotal += nDays * 24 * 60 * 60; // 24시간 60분 60초60 lTotal += nDays * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
61 }61 }
62 for(nStart = 1; nStart < nMonth; nStart++) {62 for(nStart = 1; nStart < nMonth; nStart++) {
63 int nDayEnd = GetDayEnd(nYear, nStart);63 int nDayEnd = GetDayEnd(nYear, nStart);
64 lTotal += nDayEnd * 24 * 60 * 60; // 24시간 60분 60초64 lTotal += nDayEnd * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
65 }65 }
66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24시간 60분 60초66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
6767
68 return lTotal;68 return lTotal;
69}69}
... 119 unchanged lines ...
189 t = *localtime(&m_lTime);189 t = *localtime(&m_lTime);
190}190}
191191
+
+

Gameleap/code/mw4/Code/MW4Application/ctime.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTIME__)1#if !defined(__CTIME__)
2#define __CTIME__2#define __CTIME__
33
... 12 unchanged lines ...
16public:16public:
17 union {17 union {
18 struct {18 struct {
19 // Bit Field는 앞쪽에 지정된 것이 LowBit이다.19 // Bit Fields declared first are at the low-bit end.
20 DWORD m_xDay: 5; // 2^0, 2^5-120 DWORD m_xDay: 5; // 2^0, 2^5-1
21 DWORD m_xMonth: 4; // 2^5, 2^4-121 DWORD m_xMonth: 4; // 2^5, 2^4-1
22 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-122 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1
... 30 unchanged lines ...
53};53};
5454
55#endif //!defined(__CTIME__)55#endif //!defined(__CTIME__)
+
+

Gameleap/code/mw4/Code/MW4Application/mugSocs.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include <fcntl.h>2#include <fcntl.h>
3#include <sys/types.h>3#include <sys/types.h>
... 1371 unchanged lines ...
1375{1375{
1376 if (pcszAddr) {1376 if (pcszAddr) {
1377 sin_addr.s_addr = inet_addr(pcszAddr);1377 sin_addr.s_addr = inet_addr(pcszAddr);
1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0이기 때문에 HOST/Network Addr무관1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0, HOST/Network Addr irrelevant
1379 hostent* pHN = gethostbyname(pcszAddr);1379 hostent* pHN = gethostbyname(pcszAddr);
1380 if (pHN) {1380 if (pHN) {
1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;
... 2285 unchanged lines ...
3667 pSOCListen = new CSOCListen(nPort);3667 pSOCListen = new CSOCListen(nPort);
3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);
3669 if (!DoListen(pSOCListen, nPort)) {3669 if (!DoListen(pSOCListen, nPort)) {
3670 // 같은 포트를 2번 Listen 하는 경우?...3670 // Case of Listen on the same port twice?...
3671 pSOCListen = NULL;3671 pSOCListen = NULL;
3672 }3672 }
36733673
... 472 unchanged lines ...
4146{4146{
4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);
4148}4148}
+
+

Gameleap/code/mw4/Code/MW4Application/mugsocs.h

+
+25 -25 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__MUGSOCS__)1#if !defined(__MUGSOCS__)
2#define __MUGSOCS__2#define __MUGSOCS__
33
... 37 unchanged lines ...
41#endif // !MAX_PACKET41#endif // !MAX_PACKET
42#ifndef MAX_FTPBUF42#ifndef MAX_FTPBUF
43#define MAX_FTPBUF 102443#define MAX_FTPBUF 1024
44// MAX_FTPBUF는 MAX_PACKET보다 반드시 작아야 한다?44// MAX_FTPBUF must be smaller than MAX_PACKET?
45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size
46#endif // !MAX_FTPBUF46#endif // !MAX_FTPBUF
4747
... 203 unchanged lines ...
251251
252#define ESTRF_USER_START 100252#define ESTRF_USER_START 100
253253
254#define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜254#define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in
255255
256void Randomize();256void Randomize();
257257
... 10 unchanged lines ...
268268
269class CDAPacket : public SOCBase_Class269class CDAPacket : public SOCBase_Class
270{270{
271// Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터...271// Variable parameters in the tail portion after processing the packet header...
272public:272public:
273 BYTE m_bCmd;273 BYTE m_bCmd;
274 BYTE m_bReserved;274 BYTE m_bReserved;
... 86 unchanged lines ...
361#define C_ROOM_MAKE 232361#define C_ROOM_MAKE 232
362// s - name, s - password362// s - name, s - password
363#define C_ROOM_JOIN 233363#define C_ROOM_JOIN 233
364// d - number(Room을 떠나는 것은 -1), s - password364// d - number (leaving a Room = -1), s - password
365#define S_ROOM_JOIN 233 // C_ROOM_MAKE/C_ROOM_JOIN의 결과...365#define S_ROOM_JOIN 233 // Result of C_ROOM_MAKE/C_ROOM_JOIN...
366// b - code(CSCODE_OK or error code), d - number366// b - code(CSCODE_OK or error code), d - number
367#define C_ROOM_UPDS 234 // CSCODE_... + @367#define C_ROOM_UPDS 234 // CSCODE_... + @
368368
... 15 unchanged lines ...
384#define S_FTP 254 //... see ftp.txt384#define S_FTP 254 //... see ftp.txt
385#define X_KEEPALIVE 255 // no parameters, should be ignored...385#define X_KEEPALIVE 255 // no parameters, should be ignored...
386386
387#define TX_SYSTEM 0 // 시스템 메시지...387#define TX_SYSTEM 0 // System message...
388#define TX_NORMAL 1 // 일반 채팅 텍스트388#define TX_NORMAL 1 // Regular chat text
389#define TX_WARNING 2 // 경고389#define TX_WARNING 2 // Warning
390#define TX_ERROR 3 // 오류390#define TX_ERROR 3 // Error
391#define TX_FATAL 4 // 치명적인 오류391#define TX_FATAL 4 // Fatal error
392#define TX_INFO 5 // 사용자 정보 등의 Information Result...392#define TX_INFO 5 // Information result (e.g. user info)...
393#define TX_SAY 6 // 귓속말393#define TX_SAY 6 // Whisper
394#define TX_LOCAL 7 // local echo....394#define TX_LOCAL 7 // local echo....
395#define TX_UNKNOWN 0xffff // unknown...395#define TX_UNKNOWN 0xffff // unknown...
396396
... 96 unchanged lines ...
493protected:493protected:
494 CSOC* m_pSOC;494 CSOC* m_pSOC;
495private:495private:
496 // 이 안의 블럭은 반드시 연속해야 한다...496 // The block within must be contiguous...
497 WORD m_wLen;497 WORD m_wLen;
498 BYTE m_ba[MAX_PACKET];498 BYTE m_ba[MAX_PACKET];
499 //499 //
... 87 unchanged lines ...
587class CFileTransfer : public TDBLNK(CFileTransfer*)587class CFileTransfer : public TDBLNK(CFileTransfer*)
588{588{
589public:589public:
590 // 서버로 부터 받은 정보... - 혹은 클라이언트에게 전해줄 정보...590 // Information received from server... - or information to relay to client...
591 BOOL m_bClientSite;591 BOOL m_bClientSite;
592 DWORD m_dwFTID;592 DWORD m_dwFTID;
593 DWORD m_dwGUARD;593 DWORD m_dwGUARD;
... 86 unchanged lines ...
680 // time out to Drop...680 // time out to Drop...
681 DWORD m_dwKARcvTimeOut;681 DWORD m_dwKARcvTimeOut;
682#ifdef WIN32682#ifdef WIN32
683 // 보통 Login과정에 쓰이는 윈도우 핸들683 // Window handle typically used during Login process
684 HWND m_hWndOwner;684 HWND m_hWndOwner;
685#endif // WIN32685#endif // WIN32
686 // 보통 글로벌 변수로 쓰이는 소켓포인터에 대한 자동 NULL Assign을 위하여686 // For auto NULL assignment of socket pointer typically used as a global variable
687 PSOC* m_ppSOC;687 PSOC* m_ppSOC;
688 // 소켓을 구분하기 위하여 사용자 프로그램에서 쓰이는 아이디688 // ID used in user program to identify a socket
689 // 주로 서버의 경우에는 클라이언트가 접속할 때마다 고유 아이디를 부여하여 사용689 // Mainly for servers: assigns a unique ID each time a client connects
690 // 하나의 Client가 다수의 서버에 접속할 때(주로 Star형) 각각의 접속을 구분할 때 사용690 // Used to distinguish each connection when a client connects to multiple servers (Star topology)
691 // 클라이언트가 하나의 서버에만 접속하는 경우 클라이언트가 서버에 접속 중인지 혹은 접속했는지를 판단할 때691 // When a client connects to only one server: used to check if client is connecting or already connected
692 // CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState()를 사용.692 // Use CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState().
693 // limits.h를 include해야함.693 // Must include limits.h.
694 // CSOC생성시의 기본값: CSOCServer == CSOC_SERVER_ID(=INT_MIN), CSOCClient == CSOC_CLIENT_ID(=0), CSOCListen == CSOC_LISTEN_ID(=-1)694 // Default values at CSOC creation: CSOCServer==CSOC_SERVER_ID(INT_MIN), CSOCClient==CSOC_CLIENT_ID(0), CSOCListen==CSOC_LISTEN_ID(-1)
695 union {695 union {
696 int m_nID;696 int m_nID;
697 UINT m_uID;697 UINT m_uID;
... 27 unchanged lines ...
725 DWORD m_xGracefulRemote: 1;725 DWORD m_xGracefulRemote: 1;
726 DWORD m_xAbortyLocal: 1;726 DWORD m_xAbortyLocal: 1;
727 DWORD m_xAbortyRemote: 1;727 DWORD m_xAbortyRemote: 1;
728 DWORD m_xLoginStarted: 1; // 사용자가 직접 값을 Setting해야 한다.728 DWORD m_xLoginStarted: 1; // Must be set directly by the caller.
729 DWORD m_xLoginOK: 1; // 사용자가 직접 값을 Setting해야 한다.729 DWORD m_xLoginOK: 1; // Must be set directly by the caller.
730 } m_DW;730 } m_DW;
731 DWORD m_dwVarFlags;731 DWORD m_dwVarFlags;
732 };732 };
... 536 unchanged lines ...
1269};1269};
12701270
1271#endif // !defined(__MUGSOCS__)1271#endif // !defined(__MUGSOCS__)
+
+

Gameleap/code/mw4/Code/MW4Application/nonmfc.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#ifdef _DEBUG1#ifdef _DEBUG
22
3#define AssertDebugBreak() _asm { int 3 }3#define AssertDebugBreak() _asm { int 3 }
... 2 unchanged lines ...
6{6{
7 char szBuf[MAX_PATH * 2];7 char szBuf[MAX_PATH * 2];
88
9 sprintf(szBuf, "\"%s\" 파일의 %d줄에서 ASSERT!!!\n\n디버깅을 하시겠습니까?", pcszfile, nLine);9 sprintf(szBuf, "ASSERT!!! in \"%s\" at line %d\n\nDo you want to debug?", pcszfile, nLine);
1010
11#ifdef WIN3211#ifdef WIN32
12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;
... 93 unchanged lines ...
106106
107#endif // _DEBUG107#endif // _DEBUG
108108
+
+

Gameleap/code/mw4/Code/MW4GameEd2/Cstr.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#define __INTERNAL__1#define __INTERNAL__
2#include "stdafx.h"2#include "stdafx.h"
3#include "malloc.h"3#include "malloc.h"
... 1073 unchanged lines ...
1077 int nTotalLength;1077 int nTotalLength;
1078 int i, nSize = GetSize();1078 int i, nSize = GetSize();
10791079
1080 nTotalLength = nSize; // nSize개의 '\0'1080 nTotalLength = nSize; // nSize null terminators '\0'
1081 for(i = 0; i < nSize; i++) {1081 for(i = 0; i < nSize; i++) {
1082 nTotalLength += strlen(GetAt(i));1082 nTotalLength += strlen(GetAt(i));
1083 }1083 }
... 208 unchanged lines ...
1292 }1292 }
1293}1293}
1294#endif // _DEBUG1294#endif // _DEBUG
+
+

Gameleap/code/mw4/Code/MW4GameEd2/GameInterface.cpp

+
+7 -5 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include <MW4\MW4.hpp>2#include <MW4\MW4.hpp>
3#include <MW4\MW4.hpp>3#include <MW4\MW4.hpp>
... 3088 unchanged lines ...
3092 if (NULL == hMod)3092 if (NULL == hMod)
3093 hMod = LoadLibrary("EBUEula.dll");3093 hMod = LoadLibrary("EBUEula.dll");
30943094
3095 if (NULL == hMod) // can’t attach to DLL3095 if (NULL == hMod) // can't attach to DLL
3096 {3096 {
3097 STOP(("Cannot Load EBUEula.dll"));3097 STOP(("Cannot Load EBUEula.dll"));
3098 }3098 }
3099 pfnEBUEula = (EBUPROC) GetProcAddress(hMod, "EBUEula");3099 pfnEBUEula = (EBUPROC) GetProcAddress(hMod, "EBUEula");
31003100
3101 if (NULL == pfnEBUEula) // can’t find entry point3101 if (NULL == pfnEBUEula) // can't find entry point
3102 {3102 {
3103 FreeLibrary(hMod);3103 FreeLibrary(hMod);
3104 STOP(("Cannot Find Entry Point to EBUEula.dll"));3104 STOP(("Cannot Find Entry Point to EBUEula.dll"));
... 2 unchanged lines ...
31073107
3108 //3108 //
3109 //This call enables both EULA and warranty accepting/viewing/printing. If your3109 //This call enables both EULA and warranty accepting/viewing/printing. If your
3110 //game doesn’t ship with a WARRANTY file, specifiy NULL instead of szWarranty3110 //game doesn't ship with a WARRANTY file, specifiy NULL instead of szWarranty...
31113111
31123112 //The code below, for instance, works with both OEM and retail builds...
3113 //The code below, for instance, works with both OEM and retail builds
3114
31153113
3116 //3114 //
3117 const char *pszWarrantyParam = 0xFFFFFFFF != GetFileAttributes(warranty_filename) ? warranty_filename : NULL;3115 const char *pszWarrantyParam = 0xFFFFFFFF != GetFileAttributes(warranty_filename) ? warranty_filename : NULL;
... 39 unchanged lines ...
3157SCRIPTCALLBACK(InitConnectionWizard) { gosASSERT(FALSE); return 0; }3155SCRIPTCALLBACK(InitConnectionWizard) { gosASSERT(FALSE); return 0; }
3158SCRIPTCALLBACK(LoadMPConnectionSettings) { gosASSERT(FALSE); return 0; }3156SCRIPTCALLBACK(LoadMPConnectionSettings) { gosASSERT(FALSE); return 0; }
3159SCRIPTCALLBACK(CancelDialup) { gosASSERT(FALSE); return 0; }3157SCRIPTCALLBACK(CancelDialup) { gosASSERT(FALSE); return 0; }
+
+

Gameleap/code/mw4/Code/MW4GameEd2/ctcl.cpp

+
+26 -26 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1// ctcl.cpp : Defines the entry point for the DLL application.1// ctcl.cpp : Defines the entry point for the DLL application.
2//2//
33
... 513 unchanged lines ...
517 BYTE bCode;517 BYTE bCode;
518 if (Disassemble("B", &bCode)) {518 if (Disassemble("B", &bCode)) {
519 ASSERT((bCode == 0) || (bCode == 3));519 ASSERT((bCode == 0) || (bCode == 3));
520 // 받아가시오 from Game to console...520 // Receiving from Game to console...
521 SYSTEMTIME* pSysTime;521 SYSTEMTIME* pSysTime;
522 WORD wSysTimeSize;522 WORD wSysTimeSize;
523 GUID* pGUID;523 GUID* pGUID;
... 9 unchanged lines ...
533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);
534 if (pSF) {534 if (pSF) {
535 if (bCode == 3) {535 if (bCode == 3) {
536 // 미션리뷰 서버가 mission review 받았다는 것을 받았느냐?536 // Did we receive confirmation the mission review server got the mission review?
537 pSF->m_bProcessed = true;537 pSF->m_bProcessed = true;
538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);
539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);
... 370 unchanged lines ...
910 BYTE bCode;910 BYTE bCode;
911 if (Disassemble("B", &bCode)) {911 if (Disassemble("B", &bCode)) {
912 ASSERT((bCode == 1) || (bCode == 2));912 ASSERT((bCode == 1) || (bCode == 2));
913 // 받았오 from console to Game...913 // Received from console to Game...
914 SYSTEMTIME* pSysTime;914 SYSTEMTIME* pSysTime;
915 WORD wSysTimeSize;915 WORD wSysTimeSize;
916 GUID* pGUID;916 GUID* pGUID;
... 521 unchanged lines ...
1438#endif // !defined(CTCL_LAUNCHER)1438#endif // !defined(CTCL_LAUNCHER)
1439 } else {1439 } else {
1440 /*1440 /*
1441 클라이언트나 서버의 경우 실행되는 코드이다.1441 Code executed for both client and server.
14421442
1443 *있을수 있는 상태들1443 *Possible states:
1444 서버/클라이언트가 결정되기전.. 명령 대기상태1444 Before server/client role is determined: waiting for commands
1445 (종료/서버시작/클라이언트 시작등의 명령이 올수 있다.)1445 (Commands such as exit/start-server/start-client may arrive.)
14461446
1447 서버로 실행되어 서버 메크 설정에 대한 데이타를 기다리는 상태1447 Running as server, waiting for server mech configuration data
1448 (CreateSession가 실행된 상태이다.)1448 (State after CreateSession has been called.)
1449 서버로 실행되어 Bot들에 대한 정보를 기다리는 상태1449 Running as server, waiting for Bot information
1450 (클라이언트의 참여는 클라이언트와 서버간에 자동으로 이루어진다.)1450 (Client joining happens automatically between client and server.)
1451 서버로 실행되어 Launch를 기다리는 상태1451 Running as server, waiting for Launch
14521452
1453 ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다.1453 ==>Client has no waiting state as data is transferred immediately on startup.
14541454
1455 ==>각각의 상태를 정의하고 각 상태에 맞는 처리를 해주면 된다.1455 ==>Define each state and implement the appropriate handling for each.
1456 switch(state){1456 switch(state){
1457 }1457 }
1458 */1458 */
... 75 unchanged lines ...
1534 }1534 }
1535 break;1535 break;
1536 case 1:1536 case 1:
1537 //서버/클라이언트로서 실행준비하도록 명령을 전달한다.1537 //Send command to prepare for execution as server/client.
1538 //또한 서버를 실행하는데 필요한 모든 파라미터도 함께 전달한다.1538 //Also transmit all parameters required to run the server.
1539 for(i = 0; i < g_nPlayerInfos; i++) {1539 for(i = 0; i < g_nPlayerInfos; i++) {
1540 SPlayerInfo& pi = g_aPlayerInfos[i];1540 SPlayerInfo& pi = g_aPlayerInfos[i];
1541 if (!pi.m_bBot) {1541 if (!pi.m_bBot) {
... 20 unchanged lines ...
1562 }1562 }
1563 }1563 }
1564 if (i == g_nPlayerInfos) {1564 if (i == g_nPlayerInfos) {
1565 // Bot들에 대한 정보를 모두 한데 묶어서 보낸다.1565 // Bundle and send all Bot information together.
1566 CPacket pak(&SVR.GetGameSOC());1566 CPacket pak(&SVR.GetGameSOC());
15671567
1568 pak.Assemble("B", C_BOTS);1568 pak.Assemble("B", C_BOTS);
1569 for(i = 0; i < g_nPlayerInfos; i++) {1569 for(i = 0; i < g_nPlayerInfos; i++) {
1570 if (i != g_nServer) { // 원래 Bot만 지금은 서버를 제외한 전부...1570 if (i != g_nServer) { // Originally bots only; now everyone except the server...
1571 SPlayerInfo& pi = g_aPlayerInfos[i];1571 SPlayerInfo& pi = g_aPlayerInfos[i];
1572 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);1572 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);
1573 }1573 }
... 4 unchanged lines ...
1578 }1578 }
1579 break;1579 break;
1580 case 4:1580 case 4:
1581 // 게임이 성공적으로 만들어지면 서버와 클라이언트들의 Mech에 대한 정보들을 Set한다...1581 // Once the game is successfully created, set Mech info for server and all clients...
1582 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {1582 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {
1583 for(i = 0; i < g_nPlayerInfos; i++) {1583 for(i = 0; i < g_nPlayerInfos; i++) {
1584 if (i != g_nServer) { // 서버는 이미 SetMech에 진입한 상태...1584 if (i != g_nServer) { // Server has already entered SetMech...
1585 SPlayerInfo& pi = g_aPlayerInfos[i];1585 SPlayerInfo& pi = g_aPlayerInfos[i];
1586 if (!pi.m_bBot) {1586 if (!pi.m_bBot) {
1587 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);1587 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);
... 6 unchanged lines ...
1594 }1594 }
1595 break;1595 break;
1596 case 6:1596 case 6:
1597 //모든 클라이언드들이 서버에 참여하기를 기다린다.<==이 응답은 서버로 부터 얻을 수 있다.1597 //Wait for all clients to join the server. <==This response comes from the server.
1598 //참여가 모두 끝났으면, 서버로 하여금 게임을 Launch시키도록 한다.1598 //Once all clients have joined, instruct the server to Launch the game.
1599 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {1599 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {
1600 g_nMech4Comm = 9;1600 g_nMech4Comm = 9;
1601 }1601 }
... 385 unchanged lines ...
1987}1987}
1988#endif // !defined(CTCL_LAUNCHER)1988#endif // !defined(CTCL_LAUNCHER)
1989#endif // !defined(CTCLS_EXPORTS)1989#endif // !defined(CTCLS_EXPORTS)
+
+

Gameleap/code/mw4/Code/MW4GameEd2/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/mw4/Code/MW4GameEd2/ctime.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
22
3#ifdef _DEBUG3#ifdef _DEBUG
... 40 unchanged lines ...
4444
45long GetTotalSeconds(int nYear, int nMonth, int nDay)45long GetTotalSeconds(int nYear, int nMonth, int nDay)
46{46{
47 // nYear, nMonth, nDay날의 0시 0분 0초를 0으로 한 초단위 수...47 // Seconds elapsed since 00:00:00 on the date nYear/nMonth/nDay...
48 ASSERT(nYear >= 1970);48 ASSERT(nYear >= 1970);
49 ASSERT((1 <= nMonth) && (nMonth <= 12));49 ASSERT((1 <= nMonth) && (nMonth <= 12));
50 ASSERT(1 <= nDay);50 ASSERT(1 <= nDay);
... 6 unchanged lines ...
57 if (IsLeapYear(nStart)) {57 if (IsLeapYear(nStart)) {
58 nDays++;58 nDays++;
59 }59 }
60 lTotal += nDays * 24 * 60 * 60; // 24시간 60분 60초60 lTotal += nDays * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
61 }61 }
62 for(nStart = 1; nStart < nMonth; nStart++) {62 for(nStart = 1; nStart < nMonth; nStart++) {
63 int nDayEnd = GetDayEnd(nYear, nStart);63 int nDayEnd = GetDayEnd(nYear, nStart);
64 lTotal += nDayEnd * 24 * 60 * 60; // 24시간 60분 60초64 lTotal += nDayEnd * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
65 }65 }
66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24시간 60분 60초66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
6767
68 return lTotal;68 return lTotal;
69}69}
... 119 unchanged lines ...
189 t = *localtime(&m_lTime);189 t = *localtime(&m_lTime);
190}190}
191191
+
+

Gameleap/code/mw4/Code/MW4GameEd2/ctime.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTIME__)1#if !defined(__CTIME__)
2#define __CTIME__2#define __CTIME__
33
... 12 unchanged lines ...
16public:16public:
17 union {17 union {
18 struct {18 struct {
19 // Bit Field는 앞쪽에 지정된 것이 LowBit이다.19 // Bit Fields declared first are at the low-bit end.
20 DWORD m_xDay: 5; // 2^0, 2^5-120 DWORD m_xDay: 5; // 2^0, 2^5-1
21 DWORD m_xMonth: 4; // 2^5, 2^4-121 DWORD m_xMonth: 4; // 2^5, 2^4-1
22 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-122 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1
... 30 unchanged lines ...
53};53};
5454
55#endif //!defined(__CTIME__)55#endif //!defined(__CTIME__)
+
+

Gameleap/code/mw4/Code/MW4GameEd2/mugSocs.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include <fcntl.h>2#include <fcntl.h>
3#include <sys/types.h>3#include <sys/types.h>
... 1371 unchanged lines ...
1375{1375{
1376 if (pcszAddr) {1376 if (pcszAddr) {
1377 sin_addr.s_addr = inet_addr(pcszAddr);1377 sin_addr.s_addr = inet_addr(pcszAddr);
1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0이기 때문에 HOST/Network Addr무관1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0, HOST/Network Addr irrelevant
1379 hostent* pHN = gethostbyname(pcszAddr);1379 hostent* pHN = gethostbyname(pcszAddr);
1380 if (pHN) {1380 if (pHN) {
1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;
... 2285 unchanged lines ...
3667 pSOCListen = new CSOCListen(nPort);3667 pSOCListen = new CSOCListen(nPort);
3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);
3669 if (!DoListen(pSOCListen, nPort)) {3669 if (!DoListen(pSOCListen, nPort)) {
3670 // 같은 포트를 2번 Listen 하는 경우?...3670 // Case of Listen on the same port twice?...
3671 pSOCListen = NULL;3671 pSOCListen = NULL;
3672 }3672 }
36733673
... 472 unchanged lines ...
4146{4146{
4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);
4148}4148}
+
+

Gameleap/code/mw4/Code/MW4GameEd2/mugsocs.h

+
+25 -25 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__MUGSOCS__)1#if !defined(__MUGSOCS__)
2#define __MUGSOCS__2#define __MUGSOCS__
33
... 37 unchanged lines ...
41#endif // !MAX_PACKET41#endif // !MAX_PACKET
42#ifndef MAX_FTPBUF42#ifndef MAX_FTPBUF
43#define MAX_FTPBUF 102443#define MAX_FTPBUF 1024
44// MAX_FTPBUF는 MAX_PACKET보다 반드시 작아야 한다?44// MAX_FTPBUF must be smaller than MAX_PACKET?
45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size
46#endif // !MAX_FTPBUF46#endif // !MAX_FTPBUF
4747
... 203 unchanged lines ...
251251
252#define ESTRF_USER_START 100252#define ESTRF_USER_START 100
253253
254#define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜254#define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in
255255
256void Randomize();256void Randomize();
257257
... 10 unchanged lines ...
268268
269class CDAPacket : public SOCBase_Class269class CDAPacket : public SOCBase_Class
270{270{
271// Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터...271// Variable parameters in the tail portion after processing the packet header...
272public:272public:
273 BYTE m_bCmd;273 BYTE m_bCmd;
274 BYTE m_bReserved;274 BYTE m_bReserved;
... 86 unchanged lines ...
361#define C_ROOM_MAKE 232361#define C_ROOM_MAKE 232
362// s - name, s - password362// s - name, s - password
363#define C_ROOM_JOIN 233363#define C_ROOM_JOIN 233
364// d - number(Room을 떠나는 것은 -1), s - password364// d - number (leaving a Room = -1), s - password
365#define S_ROOM_JOIN 233 // C_ROOM_MAKE/C_ROOM_JOIN의 결과...365#define S_ROOM_JOIN 233 // Result of C_ROOM_MAKE/C_ROOM_JOIN...
366// b - code(CSCODE_OK or error code), d - number366// b - code(CSCODE_OK or error code), d - number
367#define C_ROOM_UPDS 234 // CSCODE_... + @367#define C_ROOM_UPDS 234 // CSCODE_... + @
368368
... 15 unchanged lines ...
384#define S_FTP 254 //... see ftp.txt384#define S_FTP 254 //... see ftp.txt
385#define X_KEEPALIVE 255 // no parameters, should be ignored...385#define X_KEEPALIVE 255 // no parameters, should be ignored...
386386
387#define TX_SYSTEM 0 // 시스템 메시지...387#define TX_SYSTEM 0 // System message...
388#define TX_NORMAL 1 // 일반 채팅 텍스트388#define TX_NORMAL 1 // Regular chat text
389#define TX_WARNING 2 // 경고389#define TX_WARNING 2 // Warning
390#define TX_ERROR 3 // 오류390#define TX_ERROR 3 // Error
391#define TX_FATAL 4 // 치명적인 오류391#define TX_FATAL 4 // Fatal error
392#define TX_INFO 5 // 사용자 정보 등의 Information Result...392#define TX_INFO 5 // Information result (e.g. user info)...
393#define TX_SAY 6 // 귓속말393#define TX_SAY 6 // Whisper
394#define TX_LOCAL 7 // local echo....394#define TX_LOCAL 7 // local echo....
395#define TX_UNKNOWN 0xffff // unknown...395#define TX_UNKNOWN 0xffff // unknown...
396396
... 96 unchanged lines ...
493protected:493protected:
494 CSOC* m_pSOC;494 CSOC* m_pSOC;
495private:495private:
496 // 이 안의 블럭은 반드시 연속해야 한다...496 // The block within must be contiguous...
497 WORD m_wLen;497 WORD m_wLen;
498 BYTE m_ba[MAX_PACKET];498 BYTE m_ba[MAX_PACKET];
499 //499 //
... 87 unchanged lines ...
587class CFileTransfer : public TDBLNK(CFileTransfer*)587class CFileTransfer : public TDBLNK(CFileTransfer*)
588{588{
589public:589public:
590 // 서버로 부터 받은 정보... - 혹은 클라이언트에게 전해줄 정보...590 // Information received from server... - or information to relay to client...
591 BOOL m_bClientSite;591 BOOL m_bClientSite;
592 DWORD m_dwFTID;592 DWORD m_dwFTID;
593 DWORD m_dwGUARD;593 DWORD m_dwGUARD;
... 86 unchanged lines ...
680 // time out to Drop...680 // time out to Drop...
681 DWORD m_dwKARcvTimeOut;681 DWORD m_dwKARcvTimeOut;
682#ifdef WIN32682#ifdef WIN32
683 // 보통 Login과정에 쓰이는 윈도우 핸들683 // Window handle typically used during Login process
684 HWND m_hWndOwner;684 HWND m_hWndOwner;
685#endif // WIN32685#endif // WIN32
686 // 보통 글로벌 변수로 쓰이는 소켓포인터에 대한 자동 NULL Assign을 위하여686 // For auto NULL assignment of socket pointer typically used as a global variable
687 PSOC* m_ppSOC;687 PSOC* m_ppSOC;
688 // 소켓을 구분하기 위하여 사용자 프로그램에서 쓰이는 아이디688 // ID used in user program to identify a socket
689 // 주로 서버의 경우에는 클라이언트가 접속할 때마다 고유 아이디를 부여하여 사용689 // Mainly for servers: assigns a unique ID each time a client connects
690 // 하나의 Client가 다수의 서버에 접속할 때(주로 Star형) 각각의 접속을 구분할 때 사용690 // Used to distinguish each connection when a client connects to multiple servers (Star topology)
691 // 클라이언트가 하나의 서버에만 접속하는 경우 클라이언트가 서버에 접속 중인지 혹은 접속했는지를 판단할 때691 // When a client connects to only one server: used to check if client is connecting or already connected
692 // CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState()를 사용.692 // Use CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState().
693 // limits.h를 include해야함.693 // Must include limits.h.
694 // CSOC생성시의 기본값: CSOCServer == CSOC_SERVER_ID(=INT_MIN), CSOCClient == CSOC_CLIENT_ID(=0), CSOCListen == CSOC_LISTEN_ID(=-1)694 // Default values at CSOC creation: CSOCServer==CSOC_SERVER_ID(INT_MIN), CSOCClient==CSOC_CLIENT_ID(0), CSOCListen==CSOC_LISTEN_ID(-1)
695 union {695 union {
696 int m_nID;696 int m_nID;
697 UINT m_uID;697 UINT m_uID;
... 27 unchanged lines ...
725 DWORD m_xGracefulRemote: 1;725 DWORD m_xGracefulRemote: 1;
726 DWORD m_xAbortyLocal: 1;726 DWORD m_xAbortyLocal: 1;
727 DWORD m_xAbortyRemote: 1;727 DWORD m_xAbortyRemote: 1;
728 DWORD m_xLoginStarted: 1; // 사용자가 직접 값을 Setting해야 한다.728 DWORD m_xLoginStarted: 1; // Must be set directly by the caller.
729 DWORD m_xLoginOK: 1; // 사용자가 직접 값을 Setting해야 한다.729 DWORD m_xLoginOK: 1; // Must be set directly by the caller.
730 } m_DW;730 } m_DW;
731 DWORD m_dwVarFlags;731 DWORD m_dwVarFlags;
732 };732 };
... 536 unchanged lines ...
1269};1269};
12701270
1271#endif // !defined(__MUGSOCS__)1271#endif // !defined(__MUGSOCS__)
+
+

Gameleap/code/mw4/Code/MW4GameEd2/nonmfc.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#ifdef _DEBUG1#ifdef _DEBUG
22
3#define AssertDebugBreak() _asm { int 3 }3#define AssertDebugBreak() _asm { int 3 }
... 2 unchanged lines ...
6{6{
7 char szBuf[MAX_PATH * 2];7 char szBuf[MAX_PATH * 2];
88
9 sprintf(szBuf, "\"%s\" 파일의 %d줄에서 ASSERT!!!\n\n디버깅을 하시겠습니까?", pcszfile, nLine);9 sprintf(szBuf, "ASSERT!!! in \"%s\" at line %d\n\nDo you want to debug?", pcszfile, nLine);
1010
11#ifdef WIN3211#ifdef WIN32
12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;
... 93 unchanged lines ...
106106
107#endif // _DEBUG107#endif // _DEBUG
108108
+
+

Gameleap/code/mw4/Code/mw4print/Cstr.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#define __INTERNAL__1#define __INTERNAL__
2#include "stdafx.h"2#include "stdafx.h"
3#include "malloc.h"3#include "malloc.h"
... 1073 unchanged lines ...
1077 int nTotalLength;1077 int nTotalLength;
1078 int i, nSize = GetSize();1078 int i, nSize = GetSize();
10791079
1080 nTotalLength = nSize; // nSize개의 '\0'1080 nTotalLength = nSize; // nSize null terminators '\0'
1081 for(i = 0; i < nSize; i++) {1081 for(i = 0; i < nSize; i++) {
1082 nTotalLength += strlen(GetAt(i));1082 nTotalLength += strlen(GetAt(i));
1083 }1083 }
... 208 unchanged lines ...
1292 }1292 }
1293}1293}
1294#endif // _DEBUG1294#endif // _DEBUG
+
+

Gameleap/code/mw4/Code/mw4print/cspcfd.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include "cspcfd.h"2#include "cspcfd.h"
33
... 76 unchanged lines ...
80 m_ofn.lpstrCustomFilter = p;80 m_ofn.lpstrCustomFilter = p;
8181
82 if (!pcszName) {82 if (!pcszName) {
83 pcszName = "사용자 정의 파일";83 pcszName = "User-defined file";
84 }84 }
85 strcpy(p, pcszName);85 strcpy(p, pcszName);
86 p = &p[strlen(pcszName)];86 p = &p[strlen(pcszName)];
... 24 unchanged lines ...
111 switch(uMsg) {111 switch(uMsg) {
112 case WM_INITDIALOG:112 case WM_INITDIALOG:
113 if (m_dwStyle) {113 if (m_dwStyle) {
114 //0x480 // 파일 이름 Edit114 //0x480 // File Name Edit
115 HWND hReadOnly = ::GetDlgItem(hParent, 0x0410); // Read Only115 HWND hReadOnly = ::GetDlgItem(hParent, 0x0410); // Read Only
116 if (hReadOnly) {116 if (hReadOnly) {
117 if (m_dwStyle == (DWORD)(-1)) {117 if (m_dwStyle == (DWORD)(-1)) {
... 85 unchanged lines ...
203 m_Combo.Detach();203 m_Combo.Detach();
204 }204 }
205}205}
+
+

Gameleap/code/mw4/Code/mw4print/cspcfd.h

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + +
1#if !defined(__CSpcFileDialog__)1#if !defined(__CSpcFileDialog__)
2#define __CSpcFileDialog__2#define __CSpcFileDialog__
33
... 17 unchanged lines ...
21 CSpcFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL);21 CSpcFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL);
22 void SetTitle(const char* pcszTitle);22 void SetTitle(const char* pcszTitle);
23 void SetWorkingDir(const char* pcszWorkingDir);23 void SetWorkingDir(const char* pcszWorkingDir);
24 void SetFilterIndex(int nFilterIndex); // 1 기준한 값, 0은 사용자 필터24 void SetFilterIndex(int nFilterIndex); // 1-based index, 0 = user-defined filter
25 int GetFilterIndex() const; // 1 기준한 값, 0은 사용자 필터25 int GetFilterIndex() const; // 1-based index, 0 = user-defined filter
26 void SetCustomFilter(const char* pcszName = NULL, const char* pcszExt = NULL);26 void SetCustomFilter(const char* pcszName = NULL, const char* pcszExt = NULL);
27 void EnableHook(const char* pcszWindowText, DWORD dwStyle = (DWORD)(-1));27 void EnableHook(const char* pcszWindowText, DWORD dwStyle = (DWORD)(-1));
2828
... 17 unchanged lines ...
46};46};
4747
48#endif // !defined(__CSpcFileDialog__)48#endif // !defined(__CSpcFileDialog__)
+
+

Gameleap/code/mw4/Code/mw4print/recscore.cpp

+
+46 -46 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__RECSCORE_CPP__)1#if !defined(__RECSCORE_CPP__)
2#define __RECSCORE_CPP__2#define __RECSCORE_CPP__
33
... 1004 unchanged lines ...
1008 case Adept::DamageObject::NullArmorZone:1008 case Adept::DamageObject::NullArmorZone:
1009 return "()";1009 return "()";
1010 case Adept::DamageObject::LeftLegArmorZone:1010 case Adept::DamageObject::LeftLegArmorZone:
1011 return "왼발";1011 return "Left Leg";
1012 case Adept::DamageObject::RightLegArmorZone:1012 case Adept::DamageObject::RightLegArmorZone:
1013 return "오른발";1013 return "Right Leg";
1014 case Adept::DamageObject::LeftArmArmorZone:1014 case Adept::DamageObject::LeftArmArmorZone:
1015 return "왼팔";1015 return "Left Arm";
1016 case Adept::DamageObject::RightArmArmorZone:1016 case Adept::DamageObject::RightArmArmorZone:
1017 return "오른팔";1017 return "Right Arm";
1018 case Adept::DamageObject::RightTorsoArmorZone:1018 case Adept::DamageObject::RightTorsoArmorZone:
1019 return "우측";1019 return "Right Torso";
1020 case Adept::DamageObject::LeftTorsoArmorZone:1020 case Adept::DamageObject::LeftTorsoArmorZone:
1021 return "좌측";1021 return "Left Torso";
1022 case Adept::DamageObject::CenterTorsoArmorZone:1022 case Adept::DamageObject::CenterTorsoArmorZone:
1023 return "전면";1023 return "Front";
1024 case Adept::DamageObject::CenterRearTorsoArmorZone:1024 case Adept::DamageObject::CenterRearTorsoArmorZone:
1025 return "후면";1025 return "Rear";
1026 case Adept::DamageObject::HeadArmorZone:1026 case Adept::DamageObject::HeadArmorZone:
1027 return "머리";1027 return "Head";
1028 case Adept::DamageObject::SpecialArmorZone1:1028 case Adept::DamageObject::SpecialArmorZone1:
1029 return "보조장치1";1029 return "Aux Device 1";
1030 case Adept::DamageObject::SpecialArmorZone2:1030 case Adept::DamageObject::SpecialArmorZone2:
1031 return "보조장치2";1031 return "Aux Device 2";
1032 case Adept::DamageObject::DefaultArmorZone:1032 case Adept::DamageObject::DefaultArmorZone:
1033 return "Default";1033 return "Default";
1034 }1034 }
... 961 unchanged lines ...
1996static SMSGFMT s_aKill[20][2] = {1996static SMSGFMT s_aKill[20][2] = {
1997 {1997 {
1998 { "%s's %s destroys %s's %s!", 0 }, // ok!1998 { "%s's %s destroys %s's %s!", 0 }, // ok!
1999 { "%s의 %s, %s의 %s을(를) 파괴하다!", 0 }, // ok!1999 { "%s's %s destroyed %s's %s!", 0 }, // ok!
2000 },2000 },
2001 {2001 {
2002 { "%s's %s explodes in a fire-ball, thanks to %s.", 1 }, // ok!2002 { "%s's %s explodes in a fire-ball, thanks to %s.", 1 }, // ok!
2003 { "%s의 %s, 각 기관부의 화염으로 폭발! %s의 절묘한 공격성공!", 1 }, // ok!2003 { "%s's %s explodes in flames! %s lands a perfect hit!", 1 }, // ok!
2004 },2004 },
2005 {2005 {
2006 { "%s delivers the last blow as %s's %s explodes in flames!", 2 }, // ok!2006 { "%s delivers the last blow as %s's %s explodes in flames!", 2 }, // ok!
2007 { "%s는 %s의 %s에!", 2 - 100}, // ok!2007 { "%s took a hit to %s's %s!", 2 - 100}, // ok!
2008 },2008 },
2009 {2009 {
2010 { "Smoking wreckage is all that's left of %s's %s after %s delivers the fatal blow!", 1 },2010 { "Smoking wreckage is all that's left of %s's %s after %s delivers the fatal blow!", 1 },
2011 { "%s의 무자비한 공격으로 %s의 %s 불타는 잔해만 남길 것이다.", 2 }, // ok!2011 { "%s's merciless assault leaves only burning wreckage of %s's %s.", 2 }, // ok!
2012 },2012 },
2013 {2013 {
2014 { "Glorious victory goes to %s as the wreckage from %s's %s lies burning on the battlefield!", 2 },2014 { "Glorious victory goes to %s as the wreckage from %s's %s lies burning on the battlefield!", 2 },
2015 { "전황은 급속도로 진전, %s의 생존가능성은 0%%!", 8 }, // ok!2015 { "The battle escalates rapidly - %s's survival probability is 0%%!", 8 }, // ok!
2016 },2016 },
2017 {2017 {
2018 { "%s's %s is put out of it's misery by a devastating shot from %s.", 1 },2018 { "%s's %s is put out of it's misery by a devastating shot from %s.", 1 },
2019 { "%s의 압도적인 화력 앞에 %s 처참히 무너지고 있다.", 4 }, // ok!2019 { "Under %s's overwhelming firepower, %s crumbles miserably.", 4 }, // ok!
2020 },2020 },
2021 {2021 {
2022 { "%s racks up another kill marker from reducing %s's %s to rubble!", 2 },2022 { "%s racks up another kill marker from reducing %s's %s to rubble!", 2 },
2023 { "%s %s의 %s을(를) 때려 눕히고, 새로운 킬마크를 얻었다.", 2 }, // ok!2023 { "%s knocked out %s's %s and earned a new kill mark.", 2 }, // ok!
2024 },2024 },
2025 {2025 {
2026 { "Fresh paint is applied to %s's %s to mark the destruction of %s's %s!", 0 }, // ok!2026 { "Fresh paint is applied to %s's %s to mark the destruction of %s's %s!", 0 }, // ok!
2027 { "%s는 %s를 격추한 킬마크를 %s에 추가했다.", 0 - 100 },2027 { "%s added a kill mark on %s for shooting down %s.", 0 - 100 },
2028 },2028 },
2029 {2029 {
2030 { "The burning wreckage of %s's %s is a reminder to all of the prowess of %s's battle skills!", 1 },2030 { "The burning wreckage of %s's %s is a reminder to all of the prowess of %s's battle skills!", 1 },
2031 { "%s의 잔해는 %s이(가) 가져갈 승리의 기념품이 될것이다.", 7 }, // ok!2031 { "The wreckage of %s will be %s's trophy of victory.", 7 }, // ok!
2032 },2032 },
2033 {2033 {
2034 { "The thunderous explosion of %s's %s is music to the ears of %s!", 1 },2034 { "The thunderous explosion of %s's %s is music to the ears of %s!", 1 },
2035 { "%s의 귀에 들려오는 죽음의 전주곡. 지휘자는 %s.", 7 }, // ok!2035 { "A death prelude echoes in %s's ears. The conductor: %s.", 7 }, // ok!
2036 },2036 },
2037 {2037 {
2038 { "%s's %s is destroyed by %s's %s.", 3 },2038 { "%s's %s is destroyed by %s's %s.", 3 },
2039 { "%s'의 %s, %s의 %s에게 파괴되었다.", 3 }, // ok!2039 { "%s's %s was destroyed by %s's %s.", 3 }, // ok!
2040 },2040 },
2041 {2041 {
2042 { "%s brings the four horsemen of the apocalypse down upon %s.", 4 },2042 { "%s brings the four horsemen of the apocalypse down upon %s.", 4 },
2043 { "%s(이)가 휘두르는 심판의 추가 %s에게 작렬했다.", 4 }, // ok!2043 { "The pendulum of judgment swung by %s strikes %s.", 4 }, // ok!
2044 },2044 },
2045 {2045 {
2046 { "%s's life flashes as %s reduces the %s to a burning wreck.", 5 },2046 { "%s's life flashes as %s reduces the %s to a burning wreck.", 5 },
2047 { "%s의 마지막 생명줄에, %s !", 7 - 100 }, // ok!2047 { "On %s's last lifeline, %s!", 7 - 100 }, // ok!
2048 },2048 },
2049 {2049 {
2050 { "%s is deafened by the resounding roar of the exploding %s, thanks to %s.", 1 },2050 { "%s is deafened by the resounding roar of the exploding %s, thanks to %s.", 1 },
2051 { "%s 기체의 폭발소리와 함께, 저 하늘로 날아갔다. %s에게 영광을!", 7 }, // ok!2051 { "%s's mech explodes skyward. Glory to %s!", 7 }, // ok!
2052 },2052 },
2053 {2053 {
2054 { "A kill marker is placed on %s's %s to mark the victory over %s.", 6 },2054 { "A kill marker is placed on %s's %s to mark the victory over %s.", 6 },
2055 { "%s의 %s에 새로운 킬마크를 추가해야 할 듯, 희생자는 %s", 6 }, // ok!2055 { "A new kill mark should be added to %s's %s, victim: %s", 6 }, // ok!
2056 },2056 },
2057 {2057 {
2058 { "%s is delivered unto the inferno with regards from %s.", 7 },2058 { "%s is delivered unto the inferno with regards from %s.", 7 },
2059 { "%s, %s의 호위하에 지옥으로 향했다. %s에게 명복을!", 9 }, // ok!2059 { "%s headed to hell under %s's escort. Rest in peace, %s!", 9 }, // ok!
2060 },2060 },
2061 {2061 {
2062 { "Another kill marker is given up by %s, as %s celebrates victory.", 7 },2062 { "Another kill marker is given up by %s, as %s celebrates victory.", 7 },
2063 { "%s, %s의 새로운 킬 마크가 되었다. 영원한 안식을…", 7 - 100 },2063 { "%s became %s's new kill mark. Rest in peace...", 7 - 100 },
2064 },2064 },
2065 {2065 {
2066 { "Best wishes in the afterlife are presented to %s from %s.", 7 },2066 { "Best wishes in the afterlife are presented to %s from %s.", 7 },
2067 { "%s에게 남은 것은 오직 %s에 대한 복수뿐!", 7 }, // ok!2067 { "All that remains for %s is revenge against %s!", 7 }, // ok!
2068 },2068 },
2069 {2069 {
2070 { "Tragedy strikes %s as %s guns the %s down.", 5 },2070 { "Tragedy strikes %s as %s guns the %s down.", 5 },
2071 { "%s 모든 화력을 동원해 %s의 %s을(를) 파괴했다.", 2 }, // ok!2071 { "%s brought all firepower to bear and destroyed %s's %s.", 2 }, // ok!
2072 },2072 },
2073 {2073 {
2074 { "%s earns the revenge of %s after the tragic destruction of the %s.", 2 },2074 { "%s earns the revenge of %s after the tragic destruction of the %s.", 2 },
2075 { "%s의 비극적인 최후! %s 절망하는 %s을(를) 지켜볼 뿐이다.", 9 }, // ok!2075 { "A tragic end for %s! %s can only watch %s in despair.", 9 }, // ok!
2076 },2076 },
2077};2077};
20782078
... 4 unchanged lines ...
2083static SMSGFMT s_aSuicide[2][2] = {2083static SMSGFMT s_aSuicide[2][2] = {
2084 {2084 {
2085 { "%s leaves the battlefield in disgrace after causing the destruction of the %s.", 0 },2085 { "%s leaves the battlefield in disgrace after causing the destruction of the %s.", 0 },
2086 { "%s 자폭! %s 불명예스럽게 전장을 떠났다!", 2 },2086 { "%s self-destructed! %s left the battlefield in disgrace!", 2 },
2087 },2087 },
2088 {2088 {
2089 { "%s will not grace the halls of the honored mechwarriors after self-destructing the %s.", 0 },2089 { "%s will not grace the halls of the honored mechwarriors after self-destructing the %s.", 0 },
2090 { "%s 자폭! 비겁자여, 진실로 승리를 원하는가?", 3 },2090 { "%s self-destructed! Coward, do you truly desire victory?", 3 },
2091 },2091 },
2092};2092};
20932093
... 18 unchanged lines ...
2112static SMSGFMT s_aShot[10][2] = {2112static SMSGFMT s_aShot[10][2] = {
2113 {2113 {
2114 { "%s's %s fires the %s and damages the %s of %s's %s.", 0 },2114 { "%s's %s fires the %s and damages the %s of %s's %s.", 0 },
2115 { "%s %s의 %s에 %s으로 공격했다", 1 }, // ok!2115 { "%s attacked %s's %s with %s", 1 }, // ok!
2116 },2116 },
2117 {2117 {
2118 { "%s fires the %s's %s and decimates the %s of %s's %s.", 2 },2118 { "%s fires the %s's %s and decimates the %s of %s's %s.", 2 },
2119 { "%s이(가) 탑승한 %s, %s로 %s이(가) 탑승한 %s의 %s에 피해를 입혔다.", 2 },2119 { "%s piloting %s damaged %s's %s on %s's %s.", 2 },
2120 },2120 },
2121 {2121 {
2122 { "%s's %s takes a devastating hit in the %s from %s.", 3 },2122 { "%s's %s takes a devastating hit in the %s from %s.", 3 },
2123 { "%s의 %s, %s의 압도적인 공격에 %s에 피해를 입었다.", 4 }, // ok!2123 { "%s's %s took damage to the %s under %s's overwhelming attack.", 4 }, // ok!
2124 },2124 },
2125 {2125 {
2126 { "%s's %s suffers a direct hit to it's %s from %s's %s.", 5 },2126 { "%s's %s suffers a direct hit to it's %s from %s's %s.", 5 },
2127 { "%s의 %s은(는) %s의 %s에 직접적인 피해를 받았다. 피해 %s!", 6 -100},2127 { "%s's %s took direct damage from %s's %s. Damage: %s!", 6 -100},
2128 },2128 },
2129 {2129 {
2130 { "%s damages %s's %s.", 7 },2130 { "%s damages %s's %s.", 7 },
2131 { "%s, %s의 %s에 피해를 입혔다..", 7 }, // ok!2131 { "%s dealt damage to %s's %s..", 7 }, // ok!
2132 },2132 },
2133 {2133 {
2134 { "Dense black smoke pours from %s's %s as a result of %s's targeted hit.", 8 },2134 { "Dense black smoke pours from %s's %s as a result of %s's targeted hit.", 8 },
2135 { "%s의 절묘한 공격으로 %s의 %s에서 검은 연기가 퍼지고 있다.", 7 }, // ok!2135 { "Black smoke billows from %s's %s from %s's precise attack.", 7 }, // ok!
2136 },2136 },
2137 {2137 {
2138 { "Fire boils from the damaged %s of %s's %s after %s hits it with a %s.", 9 },2138 { "Fire boils from the damaged %s of %s's %s after %s hits it with a %s.", 9 },
2139 { "%s %s을(를) 발사하여, %s이(가) 탑승한 %s의 %s에 피해를 발생시켰다.", 10 }, // ok!2139 { "%s fired %s, dealing damage to the %s of %s's %s.", 10 }, // ok!
2140 },2140 },
2141 {2141 {
2142 { "Smoke and fire are trailing from %s's %s, all results of the %s blast inflicted by %s.", 11 },2142 { "Smoke and fire are trailing from %s's %s, all results of the %s blast inflicted by %s.", 11 },
2143 { "%s의 %s 공격에, 불과 연기가 %s의 기체를 뒤덮고 있다.", 15 }, // ok!2143 { "Fire and smoke engulf %s's mech from %s's %s attack.", 15 }, // ok!
2144 },2144 },
2145 {2145 {
2146 { "%s targets and fires the %s; %s cries in dismay as the %s's %s is damaged.", 10 },2146 { "%s targets and fires the %s; %s cries in dismay as the %s's %s is damaged.", 10 },
2147 { "%s %s을(를) 조준하여 %s이(가) 탑승한 %s의 %s에 맞춘 후 방아쇠를 당겼다.", 10 }, // ok!2147 { "%s aimed %s and pulled the trigger, hitting the %s of %s's %s.", 10 }, // ok!
2148 },2148 },
2149 {2149 {
2150 { "%s takes a severe wound to the %s as %s aims for the %s again.", 13 },2150 { "%s takes a severe wound to the %s as %s aims for the %s again.", 13 },
2151 { "%s 다시 %s의 %s을(를) 조준하여 사격했다. %s, %s에 심각한 피해를 입은 듯.", 14 -100},2151 { "%s aimed again at %s's %s and fired. %s seems to have taken serious damage to %s.", 14 -100},
2152 },2152 },
2153};2153};
21542154
... 1 unchanged lines ...
2156static SMSGFMT s_aCTF[1][2] = {2156static SMSGFMT s_aCTF[1][2] = {
2157 {2157 {
2158 { "%s captured flag.", 0 },2158 { "%s captured flag.", 0 },
2159 { "%s, 깃발 획득!.", 0 },2159 { "%s captured the flag!", 0 },
2160 },2160 },
2161};2161};
2162static SMSGFMT s_aFBK[1][2] = {2162static SMSGFMT s_aFBK[1][2] = {
2163 {2163 {
2164 { "%s destroyed friendly building.", 0 },2164 { "%s destroyed friendly building.", 0 },
2165 { "%s, 깃발 획득!.", 0 },2165 { "%s captured the flag!", 0 },
2166 },2166 },
2167};2167};
2168static SMSGFMT s_aEBK[1][2] = {2168static SMSGFMT s_aEBK[1][2] = {
2169 {2169 {
2170 { "%s destroyed enemy building.", 0 },2170 { "%s destroyed enemy building.", 0 },
2171 { "%s, 깃발 획득!.", 0 },2171 { "%s captured the flag!", 0 },
2172 },2172 },
2173};2173};
2174 const SMSGFMT* pcFMT;2174 const SMSGFMT* pcFMT;
... 1361 unchanged lines ...
3536//3536//
35373537
3538#endif // !defined(__RECSCORE_CPP__)3538#endif // !defined(__RECSCORE_CPP__)
+
+

Gameleap/code/mw4/Libraries/3dsmax4/Include/IDataChannel.h

+
+3 -3 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 /**********************************************************************1 /**********************************************************************
22
3 FILE: IDataChannel.h3 FILE: IDataChannel.h
... 24 unchanged lines ...
28// forward declaration28// forward declaration
29class FPInterface;29class FPInterface;
3030
31//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯31//----------------------------------------------------------------------
32// A data channel is a homogeneous collection of objects of a user defined32// A data channel is a homogeneous collection of objects of a user defined
33// type (data objects). Data channels are uniquely identified by a Class_ID.33// type (data objects). Data channels are uniquely identified by a Class_ID.
34//34//
... 17 unchanged lines ...
52#define DATACHANNEL_INTERFACE Interface_ID(0x38a718a8, 0x14685b4b)52#define DATACHANNEL_INTERFACE Interface_ID(0x38a718a8, 0x14685b4b)
53#define GetDataChannelInterface(obj) ((IDataChannel*)obj->GetInterface(DATACHANNEL_INTERFACE))53#define GetDataChannelInterface(obj) ((IDataChannel*)obj->GetInterface(DATACHANNEL_INTERFACE))
5454
55//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯55//----------------------------------------------------------------------
56// Face-data channel interface56// Face-data channel interface
57//57//
58// This is an abstraction of a collection of data objects that is58// This is an abstraction of a collection of data objects that is
... 90 unchanged lines ...
149#define FACEDATACHANNEL_INTERFACE Interface_ID(0x181358d5, 0x3cab1bc9)149#define FACEDATACHANNEL_INTERFACE Interface_ID(0x181358d5, 0x3cab1bc9)
150#define GetFaceDataChannelInterface(obj) ((IFaceDataChannel*)obj->GetInterface(FACEDATACHANNEL_INTERFACE))150#define GetFaceDataChannelInterface(obj) ((IFaceDataChannel*)obj->GetInterface(FACEDATACHANNEL_INTERFACE))
151151
152//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯152//----------------------------------------------------------------------
153// Interface class that allows to execute a callback method (Proc) for all153// Interface class that allows to execute a callback method (Proc) for all
154// face-data channels of an object.154// face-data channels of an object.
155//155//
... 23 unchanged lines ...
179179
180180
181#endif181#endif
+
+

Gameleap/code/mw4/Libraries/3dsmax4/Include/IFaceDataMgr.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1 /**********************************************************************1 /**********************************************************************
22
3 FILE: IFaceDataMgr.h3 FILE: IFaceDataMgr.h
... 17 unchanged lines ...
21// GUID that identifies this ifc (interface)21// GUID that identifies this ifc (interface)
22#define FACEDATAMGR_INTERFACE Interface_ID(0x1b454148, 0x6a066927)22#define FACEDATAMGR_INTERFACE Interface_ID(0x1b454148, 0x6a066927)
2323
24//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯24//----------------------------------------------------------------------
25// Interface for managing face-data channels.25// Interface for managing face-data channels.
26// Objects that want to have face-data channels should implement this ifc26// Objects that want to have face-data channels should implement this ifc
27//27//
... 53 unchanged lines ...
81};81};
8282
83#endif83#endif
+
+

Gameleap/code/mw4/Libraries/3dsmax4/Include/IFaceDataMgrImpl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1 /**********************************************************************1 /**********************************************************************
22
3 FILE: IMeshFaceDataMgrmpl.h3 FILE: IMeshFaceDataMgrmpl.h
... 16 unchanged lines ...
20#include <map>20#include <map>
21#include "export.h"21#include "export.h"
2222
23//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯23//----------------------------------------------------------------------
24// Face-data management implementation24// Face-data management implementation
25//________________________________________________________________________25//________________________________________________________________________
26class IFaceDataMgrImpl : public IFaceDataMgr26class IFaceDataMgrImpl : public IFaceDataMgr
... 43 unchanged lines ...
7070
7171
72#endif72#endif
+
+

Gameleap/code/mw4/Libraries/3dsmax4/Include/IPipelineClient.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1 /**********************************************************************1 /**********************************************************************
22
3 FILE: IPipelineClient.h3 FILE: IPipelineClient.h
... 16 unchanged lines ...
20// GUID that identifies this ifc (interface)20// GUID that identifies this ifc (interface)
21#define PIPELINECLIENT_INTERFACE Interface_ID(0x62383d51, 0x2d0f7d6a)21#define PIPELINECLIENT_INTERFACE Interface_ID(0x62383d51, 0x2d0f7d6a)
2222
23//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯23//----------------------------------------------------------------------
24// This interface should be implemented by objects that flow up the24// This interface should be implemented by objects that flow up the
25// geometry pipeline and have data members that belong to the pipeline25// geometry pipeline and have data members that belong to the pipeline
26// channels (geometry, topology, texmap, etc)26// channels (geometry, topology, texmap, etc)
... 16 unchanged lines ...
43};43};
4444
45#endif45#endif
+
+

Gameleap/code/mw4/Libraries/3dsmax4/Include/Osnap.h

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + +
1/**********************************************************************1/**********************************************************************
2 *<2 *<
3 FILE: osnap.h3 FILE: osnap.h
... 91 unchanged lines ...
95 virtual int NumCallbacks(){return 0;}95 virtual int NumCallbacks(){return 0;}
96 virtual DllExport BOOL GetSupportedObject(INode *iNode, TimeValue t, ObjectState *os);96 virtual DllExport BOOL GetSupportedObject(INode *iNode, TimeValue t, ObjectState *os);
9797
98 virtual TSTR *snapname(int index)=0; // the snap뭩 name to be displayed in the UI98 virtual TSTR *snapname(int index)=0; // the snap's name to be displayed in the UI
99 virtual TSTR *tooltip(int index){return NULL;} // the snap뭩 name to be displayed in the UI99 virtual TSTR *tooltip(int index){return NULL;} // the snap's name to be displayed in the UI
100 virtual boolean ValidInput(SClass_ID scid, Class_ID cid)=0;//the objects it supports100 virtual boolean ValidInput(SClass_ID scid, Class_ID cid)=0;//the objects it supports
101 virtual OsnapMarker *GetMarker(int index)=0; // single object might contain subsnaps101 virtual OsnapMarker *GetMarker(int index)=0; // single object might contain subsnaps
102 virtual WORD HiliteMode(){return HILITE_NORMAL;}102 virtual WORD HiliteMode(){return HILITE_NORMAL;}
... 25 unchanged lines ...
128128
129129
130#endif // _OSNAP_H_130#endif // _OSNAP_H_
+
+

Gameleap/code/mw4/Libraries/Adept/VideoRenderer.cpp

+
+8 -8 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1//===========================================================================//1//===========================================================================//
2// File: videorenderer.cpp //2// File: videorenderer.cpp //
3// Project: MUNGA Brick: Video Renderer //3// Project: MUNGA Brick: Video Renderer //
... 205 unchanged lines ...
209 Renderer::SetRendererStatus(status);209 Renderer::SetRendererStatus(status);
210}210}
211211
212//상훈짱 begin212//sanghoon begin
213#include <ddraw.h>213#include <ddraw.h>
214#include <d3d.h>214#include <d3d.h>
215215
216#include "GameOS\render.hpp"216#include "GameOS\render.hpp"
217extern IDirectDrawSurface7* SH_TargetBufferSurface;217extern IDirectDrawSurface7* SH_TargetBufferSurface;
218extern IDirect3DDevice7* d3dDevice7;218extern IDirect3DDevice7* d3dDevice7;
219//상훈짱 end219//sanghoon end
220220
221221
222//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~222//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 28 unchanged lines ...
251 SortedChainIteratorOf<CameraComponent *, int> camera_iterator(&secondaryCameras);251 SortedChainIteratorOf<CameraComponent *, int> camera_iterator(&secondaryCameras);
252 CameraComponent *camera;252 CameraComponent *camera;
253253
254 //상훈 앞254 //sanghoon begin
255 if(hsh_initialized){255 if(hsh_initialized){
256 if((camera = camera_iterator.ReadAndNext()) != NULL)256 if((camera = camera_iterator.ReadAndNext()) != NULL)
257 {257 {
... 71 unchanged lines ...
329 }329 }
330 }330 }
331 }331 }
332 //상훈 뒤332 //sanghoon end
333333
334 sceneCamera->Execute();334 sceneCamera->Execute();
335335
... 17 unchanged lines ...
353 }353 }
354 }354 }
355 }355 }
356 //상훈 앞356 //sanghoon begin
357#if 1357#if 1
358 //여기에 swirling effect를 그린다.358 //Draw swirling effect here.
359 extern LPDIRECT3DDEVICE7 d3dDevice7;359 extern LPDIRECT3DDEVICE7 d3dDevice7;
360360
361 extern IDirectDrawSurface7* SH_SwirlTexture;361 extern IDirectDrawSurface7* SH_SwirlTexture;
... 7 unchanged lines ...
369 preload_isdeathmode=true;369 preload_isdeathmode=true;
370 }370 }
371#endif371#endif
372 //상훈 뒤372 //sanghoon end
373//상훈.. end373//sanghoon end
374}374}
375375
376//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~376//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 446 unchanged lines ...
823{823{
824 Verify(IsDerivedFrom(DefaultData));824 Verify(IsDerivedFrom(DefaultData));
825}825}
+
+

Gameleap/code/mw4/Libraries/Adept/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/mw4/Libraries/elementrenderer/CameraElement.cpp

+
+7 -7 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "ElementRendererHeaders.hpp"1#include "ElementRendererHeaders.hpp"
2#include <MLR\MLRFootstep.hpp>2#include <MLR\MLRFootstep.hpp>
3#include <MLR\MLRSortByOrder.hpp>3#include <MLR\MLRSortByOrder.hpp>
... 212 unchanged lines ...
216216
217 m_acceptingElement = NULL;217 m_acceptingElement = NULL;
218218
219 //상훈 앞219 //sanghoon begin
220 m_hsh_special_flag=false;220 m_hsh_special_flag=false;
221 //상훈 뒤221 //sanghoon end
222}222}
223223
224//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~224//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... 227 unchanged lines ...
452 return (camera != this) ? -1 : 0;452 return (camera != this) ? -1 : 0;
453}453}
454454
455//상훈 앞455//sanghoon begin
456void __cdecl ClearTargetCameraBackBuffer();456void __cdecl ClearTargetCameraBackBuffer();
457//상훈 뒤457//sanghoon end
458458
459//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~459//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
460//460//
... 85 unchanged lines ...
546 //-----------------------------------------546 //-----------------------------------------
547 //547 //
548548
549 //상훈 앞549 //sanghoon begin
550 if(m_hsh_special_flag){550 if(m_hsh_special_flag){
551 ClearTargetCameraBackBuffer();551 ClearTargetCameraBackBuffer();
552 }552 }
553 //상훈 뒤553 //sanghoon end
554554
555 m_clipper->StartDraw(555 m_clipper->StartDraw(
556 m_localToWorld,556 m_localToWorld,
... 75 unchanged lines ...
632 {632 {
633 ELEMENT_RENDER("Rasterizing");633 ELEMENT_RENDER("Rasterizing");
634 Start_Timer(Render);634 Start_Timer(Render);
635//상훈635//sanghoon
636extern bool sh_isdeathmode;636extern bool sh_isdeathmode;
637 if(!sh_isdeathmode)637 if(!sh_isdeathmode)
638 m_clipper->RenderNow();638 m_clipper->RenderNow();
... 295 unchanged lines ...
934934
935 return NULL;935 return NULL;
936}936}
+
+

Gameleap/code/mw4/Libraries/elementrenderer/CameraElement.hpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + +
1#pragma once1#pragma once
22
3#include "ElementRenderer.hpp"3#include "ElementRenderer.hpp"
... 279 unchanged lines ...
283 m_viewPortBottom;283 m_viewPortBottom;
284 Stuff::RGBAColor m_tintColor;284 Stuff::RGBAColor m_tintColor;
285 bool m_useTintColor;285 bool m_useTintColor;
286 //상훈 앞286 //sanghoon begin
287 public:287 public:
288 bool m_hsh_special_flag;288 bool m_hsh_special_flag;
289 void SetHSHSpecialFlag(bool new_flag){289 void SetHSHSpecialFlag(bool new_flag){
290 m_hsh_special_flag=new_flag;290 m_hsh_special_flag=new_flag;
291 }291 }
292 //상훈 뒤292 //sanghoon end
293 };293 };
294294
295}295}
+
+

Gameleap/code/mw4/Tools/AnimScript/Cstr.cpp

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#define __INTERNAL__1#define __INTERNAL__
2#include "stdafx.h"2#include "stdafx.h"
3#include "malloc.h"3#include "malloc.h"
... 1073 unchanged lines ...
1077 int nTotalLength;1077 int nTotalLength;
1078 int i, nSize = GetSize();1078 int i, nSize = GetSize();
10791079
1080 nTotalLength = nSize; // nSize개의 '\0'1080 nTotalLength = nSize; // nSize null terminators '\0'
1081 for(i = 0; i < nSize; i++) {1081 for(i = 0; i < nSize; i++) {
1082 nTotalLength += strlen(GetAt(i));1082 nTotalLength += strlen(GetAt(i));
1083 }1083 }
... 208 unchanged lines ...
1292 }1292 }
1293}1293}
1294#endif // _DEBUG1294#endif // _DEBUG
+
+

Gameleap/code/mw4/Tools/AnimScript/ctcl.cpp

+
+26 -26 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1// ctcl.cpp : Defines the entry point for the DLL application.1// ctcl.cpp : Defines the entry point for the DLL application.
2//2//
33
... 513 unchanged lines ...
517 BYTE bCode;517 BYTE bCode;
518 if (Disassemble("B", &bCode)) {518 if (Disassemble("B", &bCode)) {
519 ASSERT((bCode == 0) || (bCode == 3));519 ASSERT((bCode == 0) || (bCode == 3));
520 // 받아가시오 from Game to console...520 // Receiving from Game to console...
521 SYSTEMTIME* pSysTime;521 SYSTEMTIME* pSysTime;
522 WORD wSysTimeSize;522 WORD wSysTimeSize;
523 GUID* pGUID;523 GUID* pGUID;
... 9 unchanged lines ...
533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);533 pSF = g_pCTCLManager->m_SFM_Recv.Find(*pGUID, nType);
534 if (pSF) {534 if (pSF) {
535 if (bCode == 3) {535 if (bCode == 3) {
536 // 미션리뷰 서버가 mission review 받았다는 것을 받았느냐?536 // Did we receive confirmation the mission review server got the mission review?
537 pSF->m_bProcessed = true;537 pSF->m_bProcessed = true;
538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);538 g_pCTCLManager->m_SFM_Recv.Cut(pSF);
539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);539 g_pCTCLManager->m_SFM_Done.AddTail(pSF);
... 370 unchanged lines ...
910 BYTE bCode;910 BYTE bCode;
911 if (Disassemble("B", &bCode)) {911 if (Disassemble("B", &bCode)) {
912 ASSERT((bCode == 1) || (bCode == 2));912 ASSERT((bCode == 1) || (bCode == 2));
913 // 받았오 from console to Game...913 // Received from console to Game...
914 SYSTEMTIME* pSysTime;914 SYSTEMTIME* pSysTime;
915 WORD wSysTimeSize;915 WORD wSysTimeSize;
916 GUID* pGUID;916 GUID* pGUID;
... 521 unchanged lines ...
1438#endif // !defined(CTCL_LAUNCHER)1438#endif // !defined(CTCL_LAUNCHER)
1439 } else {1439 } else {
1440 /*1440 /*
1441 클라이언트나 서버의 경우 실행되는 코드이다.1441 Code executed for both client and server.
14421442
1443 *있을수 있는 상태들1443 *Possible states:
1444 서버/클라이언트가 결정되기전.. 명령 대기상태1444 Before server/client role is determined: waiting for commands
1445 (종료/서버시작/클라이언트 시작등의 명령이 올수 있다.)1445 (Commands such as exit/start-server/start-client may arrive.)
14461446
1447 서버로 실행되어 서버 메크 설정에 대한 데이타를 기다리는 상태1447 Running as server, waiting for server mech configuration data
1448 (CreateSession가 실행된 상태이다.)1448 (State after CreateSession has been called.)
1449 서버로 실행되어 Bot들에 대한 정보를 기다리는 상태1449 Running as server, waiting for Bot information
1450 (클라이언트의 참여는 클라이언트와 서버간에 자동으로 이루어진다.)1450 (Client joining happens automatically between client and server.)
1451 서버로 실행되어 Launch를 기다리는 상태1451 Running as server, waiting for Launch
14521452
1453 ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다.1453 ==>Client has no waiting state as data is transferred immediately on startup.
14541454
1455 ==>각각의 상태를 정의하고 각 상태에 맞는 처리를 해주면 된다.1455 ==>Define each state and implement the appropriate handling for each.
1456 switch(state){1456 switch(state){
1457 }1457 }
1458 */1458 */
... 75 unchanged lines ...
1534 }1534 }
1535 break;1535 break;
1536 case 1:1536 case 1:
1537 //서버/클라이언트로서 실행준비하도록 명령을 전달한다.1537 //Send command to prepare for execution as server/client.
1538 //또한 서버를 실행하는데 필요한 모든 파라미터도 함께 전달한다.1538 //Also transmit all parameters required to run the server.
1539 for(i = 0; i < g_nPlayerInfos; i++) {1539 for(i = 0; i < g_nPlayerInfos; i++) {
1540 SPlayerInfo& pi = g_aPlayerInfos[i];1540 SPlayerInfo& pi = g_aPlayerInfos[i];
1541 if (!pi.m_bBot) {1541 if (!pi.m_bBot) {
... 20 unchanged lines ...
1562 }1562 }
1563 }1563 }
1564 if (i == g_nPlayerInfos) {1564 if (i == g_nPlayerInfos) {
1565 // Bot들에 대한 정보를 모두 한데 묶어서 보낸다.1565 // Bundle and send all Bot information together.
1566 CPacket pak(&SVR.GetGameSOC());1566 CPacket pak(&SVR.GetGameSOC());
15671567
1568 pak.Assemble("B", C_BOTS);1568 pak.Assemble("B", C_BOTS);
1569 for(i = 0; i < g_nPlayerInfos; i++) {1569 for(i = 0; i < g_nPlayerInfos; i++) {
1570 if (i != g_nServer) { // 원래 Bot만 지금은 서버를 제외한 전부...1570 if (i != g_nServer) { // Originally bots only; now everyone except the server...
1571 SPlayerInfo& pi = g_aPlayerInfos[i];1571 SPlayerInfo& pi = g_aPlayerInfos[i];
1572 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);1572 pak.Assemble("BnsDWwsnn", pi.m_bBot, pi.m_nLevelOrTesla, pi.m_szName, pi.m_nMechIndex, pi.m_fileID, pi.m_recordID, pi.m_szMech, pi.m_nTeamOrSkin, pi.m_nDecal);
1573 }1573 }
... 4 unchanged lines ...
1578 }1578 }
1579 break;1579 break;
1580 case 4:1580 case 4:
1581 // 게임이 성공적으로 만들어지면 서버와 클라이언트들의 Mech에 대한 정보들을 Set한다...1581 // Once the game is successfully created, set Mech info for server and all clients...
1582 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {1582 if (SOCGame.m_nGameReturn == _EGR_OkCreateSession) {
1583 for(i = 0; i < g_nPlayerInfos; i++) {1583 for(i = 0; i < g_nPlayerInfos; i++) {
1584 if (i != g_nServer) { // 서버는 이미 SetMech에 진입한 상태...1584 if (i != g_nServer) { // Server has already entered SetMech...
1585 SPlayerInfo& pi = g_aPlayerInfos[i];1585 SPlayerInfo& pi = g_aPlayerInfos[i];
1586 if (!pi.m_bBot) {1586 if (!pi.m_bBot) {
1587 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);1587 CTeslaInfo& ti = m_aTIs.GetAt(pi.m_nLevelOrTesla);
... 6 unchanged lines ...
1594 }1594 }
1595 break;1595 break;
1596 case 6:1596 case 6:
1597 //모든 클라이언드들이 서버에 참여하기를 기다린다.<==이 응답은 서버로 부터 얻을 수 있다.1597 //Wait for all clients to join the server. <==This response comes from the server.
1598 //참여가 모두 끝났으면, 서버로 하여금 게임을 Launch시키도록 한다.1598 //Once all clients have joined, instruct the server to Launch the game.
1599 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {1599 if (SOCGame.m_nGameReturn == _EGR_OkLaunchReady) {
1600 g_nMech4Comm = 9;1600 g_nMech4Comm = 9;
1601 }1601 }
... 385 unchanged lines ...
1987}1987}
1988#endif // !defined(CTCL_LAUNCHER)1988#endif // !defined(CTCL_LAUNCHER)
1989#endif // !defined(CTCLS_EXPORTS)1989#endif // !defined(CTCLS_EXPORTS)
+
+

Gameleap/code/mw4/Tools/AnimScript/ctcl.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTCL_H__)1#if !defined(__CTCL_H__)
2#define __CTCL_H__2#define __CTCL_H__
33
... 38 unchanged lines ...
42 const char* m_pcsz;42 const char* m_pcsz;
4343
44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting44 int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
45 int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting45 int m_nConnection2; // Connection to game or camera ship per m_bCameraShip, 0: no connection, +1: connected, -1: connecting
46 int m_nApplType;46 int m_nApplType;
47 int m_nApplState;47 int m_nApplState;
48 int m_nGameState;48 int m_nGameState;
... 123 unchanged lines ...
172} // end of extern "C"172} // end of extern "C"
173173
174#endif // !defined(__CTCL_H__)174#endif // !defined(__CTCL_H__)
+
+

Gameleap/code/mw4/Tools/AnimScript/ctime.cpp

+
+4 -4 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
22
3#ifdef _DEBUG3#ifdef _DEBUG
... 40 unchanged lines ...
4444
45long GetTotalSeconds(int nYear, int nMonth, int nDay)45long GetTotalSeconds(int nYear, int nMonth, int nDay)
46{46{
47 // nYear, nMonth, nDay날의 0시 0분 0초를 0으로 한 초단위 수...47 // Seconds elapsed since 00:00:00 on the date nYear/nMonth/nDay...
48 ASSERT(nYear >= 1970);48 ASSERT(nYear >= 1970);
49 ASSERT((1 <= nMonth) && (nMonth <= 12));49 ASSERT((1 <= nMonth) && (nMonth <= 12));
50 ASSERT(1 <= nDay);50 ASSERT(1 <= nDay);
... 6 unchanged lines ...
57 if (IsLeapYear(nStart)) {57 if (IsLeapYear(nStart)) {
58 nDays++;58 nDays++;
59 }59 }
60 lTotal += nDays * 24 * 60 * 60; // 24시간 60분 60초60 lTotal += nDays * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
61 }61 }
62 for(nStart = 1; nStart < nMonth; nStart++) {62 for(nStart = 1; nStart < nMonth; nStart++) {
63 int nDayEnd = GetDayEnd(nYear, nStart);63 int nDayEnd = GetDayEnd(nYear, nStart);
64 lTotal += nDayEnd * 24 * 60 * 60; // 24시간 60분 60초64 lTotal += nDayEnd * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
65 }65 }
66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24시간 60분 60초66 lTotal += (nDay - 1) * 24 * 60 * 60; // 24 hours * 60 min * 60 sec
6767
68 return lTotal;68 return lTotal;
69}69}
... 119 unchanged lines ...
189 t = *localtime(&m_lTime);189 t = *localtime(&m_lTime);
190}190}
191191
+
+

Gameleap/code/mw4/Tools/AnimScript/ctime.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#if !defined(__CTIME__)1#if !defined(__CTIME__)
2#define __CTIME__2#define __CTIME__
33
... 12 unchanged lines ...
16public:16public:
17 union {17 union {
18 struct {18 struct {
19 // Bit Field는 앞쪽에 지정된 것이 LowBit이다.19 // Bit Fields declared first are at the low-bit end.
20 DWORD m_xDay: 5; // 2^0, 2^5-120 DWORD m_xDay: 5; // 2^0, 2^5-1
21 DWORD m_xMonth: 4; // 2^5, 2^4-121 DWORD m_xMonth: 4; // 2^5, 2^4-1
22 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-122 DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1
... 30 unchanged lines ...
53};53};
5454
55#endif //!defined(__CTIME__)55#endif //!defined(__CTIME__)
+
+

Gameleap/code/mw4/Tools/AnimScript/mugSocs.cpp

+
+2 -2 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + +
1#include "stdafx.h"1#include "stdafx.h"
2#include <fcntl.h>2#include <fcntl.h>
3#include <sys/types.h>3#include <sys/types.h>
... 1371 unchanged lines ...
1375{1375{
1376 if (pcszAddr) {1376 if (pcszAddr) {
1377 sin_addr.s_addr = inet_addr(pcszAddr);1377 sin_addr.s_addr = inet_addr(pcszAddr);
1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0이기 때문에 HOST/Network Addr무관1378 if (sin_addr.s_addr == INADDR_ANY) { // 0.0.0.0, HOST/Network Addr irrelevant
1379 hostent* pHN = gethostbyname(pcszAddr);1379 hostent* pHN = gethostbyname(pcszAddr);
1380 if (pHN) {1380 if (pHN) {
1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;1381 sin_addr.s_addr = *(u_long*)pHN->h_addr;
... 2285 unchanged lines ...
3667 pSOCListen = new CSOCListen(nPort);3667 pSOCListen = new CSOCListen(nPort);
3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);3668 pSOCListen->SetCSCParam(pfnCSC, dwCSCParam1, dwCSCParam2);
3669 if (!DoListen(pSOCListen, nPort)) {3669 if (!DoListen(pSOCListen, nPort)) {
3670 // 같은 포트를 2번 Listen 하는 경우?...3670 // Case of Listen on the same port twice?...
3671 pSOCListen = NULL;3671 pSOCListen = NULL;
3672 }3672 }
36733673
... 472 unchanged lines ...
4146{4146{
4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);4147 return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur);
4148}4148}
+
+

Gameleap/code/mw4/Tools/AnimScript/mugsocs.h

+
+25 -25 lines changed
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1#if !defined(__MUGSOCS__)1#if !defined(__MUGSOCS__)
2#define __MUGSOCS__2#define __MUGSOCS__
33
... 37 unchanged lines ...
41#endif // !MAX_PACKET41#endif // !MAX_PACKET
42#ifndef MAX_FTPBUF42#ifndef MAX_FTPBUF
43#define MAX_FTPBUF 102443#define MAX_FTPBUF 1024
44// MAX_FTPBUF는 MAX_PACKET보다 반드시 작아야 한다?44// MAX_FTPBUF must be smaller than MAX_PACKET?
45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size45// 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size
46#endif // !MAX_FTPBUF46#endif // !MAX_FTPBUF
4747
... 203 unchanged lines ...
251251
252#define ESTRF_USER_START 100252#define ESTRF_USER_START 100
253253
254#define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜254#define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in
255255
256void Randomize();256void Randomize();
257257
... 10 unchanged lines ...
268268
269class CDAPacket : public SOCBase_Class269class CDAPacket : public SOCBase_Class
270{270{
271// Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터...271// Variable parameters in the tail portion after processing the packet header...
272public:272public:
273 BYTE m_bCmd;273 BYTE m_bCmd;
274 BYTE m_bReserved;274 BYTE m_bReserved;
... 86 unchanged lines ...
361#define C_ROOM_MAKE 232361#define C_ROOM_MAKE 232
362// s - name, s - password362// s - name, s - password
363#define C_ROOM_JOIN 233363#define C_ROOM_JOIN 233
364// d - number(Room을 떠나는 것은 -1), s - password364// d - number (leaving a Room = -1), s - password
365#define S_ROOM_JOIN 233 // C_ROOM_MAKE/C_ROOM_JOIN의 결과...365#define S_ROOM_JOIN 233 // Result of C_ROOM_MAKE/C_ROOM_JOIN...
366// b - code(CSCODE_OK or error code), d - number366// b - code(CSCODE_OK or error code), d - number
367#define C_ROOM_UPDS 234 // CSCODE_... + @367#define C_ROOM_UPDS 234 // CSCODE_... + @
368368
... 15 unchanged lines ...
384#define S_FTP 254 //... see ftp.txt384#define S_FTP 254 //... see ftp.txt
385#define X_KEEPALIVE 255 // no parameters, should be ignored...385#define X_KEEPALIVE 255 // no parameters, should be ignored...
386386
387#define TX_SYSTEM 0 // 시스템 메시지...387#define TX_SYSTEM 0 // System message...
388#define TX_NORMAL 1 // 일반 채팅 텍스트388#define TX_NORMAL 1 // Regular chat text
389#define TX_WARNING 2 // 경고389#define TX_WARNING 2 // Warning
390#define TX_ERROR 3 // 오류390#define TX_ERROR 3 // Error
391#define TX_FATAL 4 // 치명적인 오류391#define TX_FATAL 4 // Fatal error
392#define TX_INFO 5 // 사용자 정보 등의 Information Result...392#define TX_INFO 5 // Information result (e.g. user info)...
393#define TX_SAY 6 // 귓속말393#define TX_SAY 6 // Whisper
394#define TX_LOCAL 7 // local echo....394#define TX_LOCAL 7 // local echo....
395#define TX_UNKNOWN 0xffff // unknown...395#define TX_UNKNOWN 0xffff // unknown...
396396
... 96 unchanged lines ...
493protected:493protected:
494 CSOC* m_pSOC;494 CSOC* m_pSOC;
495private:495private:
496 // 이 안의 블럭은 반드시 연속해야 한다...496 // The block within must be contiguous...
497 WORD m_wLen;497 WORD m_wLen;
498 BYTE m_ba[MAX_PACKET];498 BYTE m_ba[MAX_PACKET];
499 //499 //
... 87 unchanged lines ...
587class CFileTransfer : public TDBLNK(CFileTransfer*)587class CFileTransfer : public TDBLNK(CFileTransfer*)
588{588{
589public:589public:
590 // 서버로 부터 받은 정보... - 혹은 클라이언트에게 전해줄 정보...590 // Information received from server... - or information to relay to client...
591 BOOL m_bClientSite;591 BOOL m_bClientSite;
592 DWORD m_dwFTID;592 DWORD m_dwFTID;
593 DWORD m_dwGUARD;593 DWORD m_dwGUARD;
... 86 unchanged lines ...
680 // time out to Drop...680 // time out to Drop...
681 DWORD m_dwKARcvTimeOut;681 DWORD m_dwKARcvTimeOut;
682#ifdef WIN32682#ifdef WIN32
683 // 보통 Login과정에 쓰이는 윈도우 핸들683 // Window handle typically used during Login process
684 HWND m_hWndOwner;684 HWND m_hWndOwner;
685#endif // WIN32685#endif // WIN32
686 // 보통 글로벌 변수로 쓰이는 소켓포인터에 대한 자동 NULL Assign을 위하여686 // For auto NULL assignment of socket pointer typically used as a global variable
687 PSOC* m_ppSOC;687 PSOC* m_ppSOC;
688 // 소켓을 구분하기 위하여 사용자 프로그램에서 쓰이는 아이디688 // ID used in user program to identify a socket
689 // 주로 서버의 경우에는 클라이언트가 접속할 때마다 고유 아이디를 부여하여 사용689 // Mainly for servers: assigns a unique ID each time a client connects
690 // 하나의 Client가 다수의 서버에 접속할 때(주로 Star형) 각각의 접속을 구분할 때 사용690 // Used to distinguish each connection when a client connects to multiple servers (Star topology)
691 // 클라이언트가 하나의 서버에만 접속하는 경우 클라이언트가 서버에 접속 중인지 혹은 접속했는지를 판단할 때691 // When a client connects to only one server: used to check if client is connecting or already connected
692 // CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState()를 사용.692 // Use CSOCManager::FindSOC(CSOC_SERVER_ID==default)->GetConnectionState().
693 // limits.h를 include해야함.693 // Must include limits.h.
694 // CSOC생성시의 기본값: CSOCServer == CSOC_SERVER_ID(=INT_MIN), CSOCClient == CSOC_CLIENT_ID(=0), CSOCListen == CSOC_LISTEN_ID(=-1)694 // Default values at CSOC creation: CSOCServer==CSOC_SERVER_ID(INT_MIN), CSOCClient==CSOC_CLIENT_ID(0), CSOCListen==CSOC_LISTEN_ID(-1)
695 union {695 union {
696 int m_nID;696 int m_nID;
697 UINT m_uID;697 UINT m_uID;
... 27 unchanged lines ...
725 DWORD m_xGracefulRemote: 1;725 DWORD m_xGracefulRemote: 1;
726 DWORD m_xAbortyLocal: 1;726 DWORD m_xAbortyLocal: 1;
727 DWORD m_xAbortyRemote: 1;727 DWORD m_xAbortyRemote: 1;
728 DWORD m_xLoginStarted: 1; // 사용자가 직접 값을 Setting해야 한다.728 DWORD m_xLoginStarted: 1; // Must be set directly by the caller.
729 DWORD m_xLoginOK: 1; // 사용자가 직접 값을 Setting해야 한다.729 DWORD m_xLoginOK: 1; // Must be set directly by the caller.
730 } m_DW;730 } m_DW;
731 DWORD m_dwVarFlags;731 DWORD m_dwVarFlags;
732 };732 };
... 536 unchanged lines ...
1269};1269};
12701270
1271#endif // !defined(__MUGSOCS__)1271#endif // !defined(__MUGSOCS__)
+
+

Gameleap/code/mw4/Tools/AnimScript/nonmfc.h

+
+1 -1 lines changed
+ + + + + + + + + + + + + + + + +
1#ifdef _DEBUG1#ifdef _DEBUG
22
3#define AssertDebugBreak() _asm { int 3 }3#define AssertDebugBreak() _asm { int 3 }
... 2 unchanged lines ...
6{6{
7 char szBuf[MAX_PATH * 2];7 char szBuf[MAX_PATH * 2];
88
9 sprintf(szBuf, "\"%s\" 파일의 %d줄에서 ASSERT!!!\n\n디버깅을 하시겠습니까?", pcszfile, nLine);9 sprintf(szBuf, "ASSERT!!! in \"%s\" at line %d\n\nDo you want to debug?", pcszfile, nLine);
1010
11#ifdef WIN3211#ifdef WIN32
12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;12 return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES;
... 93 unchanged lines ...
106106
107#endif // _DEBUG107#endif // _DEBUG
108108
+ \ No newline at end of file