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 @@ +
+| 1 | // GosTracePane.cpp : implementation file | 1 | // GosTracePane.cpp : implementation file |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 100 unchanged lines ... | |||
| 104 | else | 104 | 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 | else | 109 | else |
| 110 | { | 110 | { |
| ... 600 unchanged lines ... | |||
| 711 | pCmdUI->Enable( m_nLineThickness != 2 ); | 711 | pCmdUI->Enable( m_nLineThickness != 2 ); |
| 712 | 712 | ||
| 713 | } | 713 | } |
| 1 | // ZoomDialog.cpp : implementation file | 1 | // ZoomDialog.cpp : implementation file |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 20 unchanged lines ... | |||
| 24 | "1nS / div", // 10^-9 | 24 | "1nS / div", // 10^-9 |
| 25 | "10nS / div", // 10^-8 | 25 | "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 ... | |||
| 155 | 155 | ||
| 156 | 156 | ||
| 157 | 157 | ||
| 1 | // GosTracePane.cpp : implementation file | 1 | // GosTracePane.cpp : implementation file |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 100 unchanged lines ... | |||
| 104 | else | 104 | 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 | else | 109 | else |
| 110 | { | 110 | { |
| ... 600 unchanged lines ... | |||
| 711 | pCmdUI->Enable( m_nLineThickness != 2 ); | 711 | pCmdUI->Enable( m_nLineThickness != 2 ); |
| 712 | 712 | ||
| 713 | } | 713 | } |
| 1 | // ZoomDialog.cpp : implementation file | 1 | // ZoomDialog.cpp : implementation file |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 20 unchanged lines ... | |||
| 24 | "1nS / div", // 10^-9 | 24 | "1nS / div", // 10^-9 |
| 25 | "10nS / div", // 10^-8 | 25 | "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 ... | |||
| 155 | 155 | ||
| 156 | 156 | ||
| 157 | 157 | ||
| 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 Scene | 1032 | // You can only clear the backbuffer or Z buffer on the FIRST setup viewport (outside the Begin/End Scene |
| 1033 | // | 1033 | // |
| 1034 | 1034 | ||
| 1035 | //상훈 앞 | 1035 | //sanghoon begin |
| 1036 | void __cdecl ClearTargetCameraBackBuffer() | 1036 | void __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 |
| 1043 | 1043 | ||
| 1044 | void __stdcall gos_SetupViewport( bool FillZ, float ZBuffer, bool FillBG, DWORD BGColor, float top, float left, float bottom, float right, bool ClearStencil, DWORD StencilValue ) | 1044 | void __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 viewport | 1050 | // Work out size of viewport |
| ... 226 unchanged lines ... | |||
| 1277 | 1277 | ||
| 1278 | 1278 | ||
| 1279 | 1279 | ||
| 1 | #include "pch.hpp" | 1 | #include "pch.hpp" |
| 2 | //===========================================================================// | 2 | //===========================================================================// |
| 3 | // File: ControlManager.cpp // | 3 | // File: ControlManager.cpp // |
| ... 43 unchanged lines ... | |||
| 47 | bool DisablePolling=0; | 47 | bool DisablePolling=0; |
| 48 | void CMRestoreEffects( int stick ); | 48 | void CMRestoreEffects( int stick ); |
| 49 | 49 | ||
| 50 | // 鉉 - start | 50 | // hyun begin |
| 51 | int g_bUseOrgJoy = TRUE; | 51 | int g_bUseOrgJoy = TRUE; |
| 52 | void (__stdcall *g_pfnRIO_Joy)(DIJOYSTATE& js) = NULL; // Check out Test .. | 52 | void (__stdcall *g_pfnRIO_Joy)(DIJOYSTATE& js) = NULL; // Check out Test .. |
| 53 | bool g_bNoWeaponRangeCheck = false; | 53 | bool g_bNoWeaponRangeCheck = false; |
| 54 | // 鉉 - end | 54 | // hyun end |
| 55 | // | 55 | // |
| 56 | // | 56 | // |
| 57 | // Initialize the DirectInput devices | 57 | // Initialize the DirectInput devices |
| ... 421 unchanged lines ... | |||
| 479 | 479 | ||
| 480 | if( EnableDisplayInfo==0 ) { | 480 | if( EnableDisplayInfo==0 ) { |
| 481 | disp: | 481 | disp: |
| 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 | } |
| 1 | #include "pch.hpp" | 1 | #include "pch.hpp" |
| 2 | // | 2 | // |
| 3 | //===========================================================================// | 3 | //===========================================================================// |
| ... 96 unchanged lines ... | |||
| 100 | IDirectDraw7* CurrentDDobject = NULL; // DirectDraw object for rendering (can be the same as DDObject) | 100 | IDirectDraw7* CurrentDDobject = NULL; // DirectDraw object for rendering (can be the same as DDObject) |
| 101 | IDirectDrawSurface7* ZBufferSurface = NULL; // ZBuffer surface | 101 | IDirectDrawSurface7* ZBufferSurface = NULL; // ZBuffer surface |
| 102 | IDirectDrawSurface7* RefZBufferSurface = NULL; // Referemce rasterizer ZBuffer surface | 102 | IDirectDrawSurface7* RefZBufferSurface = NULL; // Referemce rasterizer ZBuffer surface |
| 103 | //占쏙옙占쏙옙 占쏙옙 | 103 | //sanghoon marker |
| 104 | IDirectDrawSurface7* SH_TargetBufferSurface = NULL; | 104 | IDirectDrawSurface7* SH_TargetBufferSurface = NULL; |
| 105 | IDirectDrawSurface7* SH_SwirlTexture= NULL; | 105 | IDirectDrawSurface7* SH_SwirlTexture= NULL; |
| 106 | IDirectDrawSurface7* SH_GameEndTexture= NULL; | 106 | IDirectDrawSurface7* SH_GameEndTexture= NULL; |
| 107 | //占쏙옙占쏙옙 占쏙옙 | 107 | //sanghoon marker |
| 108 | 108 | ||
| 109 | DDSURFACEDESC2 BackBufferddsd; | 109 | DDSURFACEDESC2 BackBufferddsd; |
| 110 | // | 110 | // |
| ... 56 unchanged lines ... | |||
| 167 | bool UseGammaCorrection=0; | 167 | bool UseGammaCorrection=0; |
| 168 | float UserGamma=1.0f; | 168 | float UserGamma=1.0f; |
| 169 | 169 | ||
| 170 | //占쏙옙占쏙옙짱-begin | 170 | //sanghoon begin |
| 171 | bool use_shgui = false; | 171 | bool use_shgui = false; |
| 172 | bool hsh_initialized=false; | 172 | bool hsh_initialized=false; |
| 173 | bool hsh_mrdev_initialized=false; | 173 | bool 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 | //占쏙옙占쏙옙짱-end | 179 | //sanghoon end |
| 180 | 180 | ||
| 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 | // |
| 1022 | 1022 | ||
| 1023 | #ifdef LAB_ONLY | 1023 | #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 | #else | 1027 | #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 | #endif | 1031 | #endif |
| ... 95 unchanged lines ... | |||
| 1127 | } | 1127 | } |
| 1128 | } | 1128 | } |
| 1129 | 1129 | ||
| 1130 | //占쏙옙占쏙옙짱-begin | 1130 | //sanghoon begin |
| 1131 | if(use_shgui){ | 1131 | if(use_shgui){ |
| 1132 | HSH_EnterFullScreen2(); | 1132 | HSH_EnterFullScreen2(); |
| 1133 | } | 1133 | } |
| 1134 | //占쏙옙占쏙옙짱-end | 1134 | //sanghoon end |
| 1135 | 1135 | ||
| 1136 | // | 1136 | // |
| 1137 | // Changed modes, create all the surfaces | 1137 | // Changed modes, create all the surfaces |
| ... 26 unchanged lines ... | |||
| 1164 | // Debugging information | 1164 | // Debugging information |
| 1165 | // | 1165 | // |
| 1166 | SPEW(( GROUP_DIRECTDRAW, "EnterFullScreenMode() Finished" )); | 1166 | SPEW(( GROUP_DIRECTDRAW, "EnterFullScreenMode() Finished" )); |
| 1167 | //占쏙옙占쏙옙 | 1167 | //sanghoon |
| 1168 | } | 1168 | } |
| 1169 | 1169 | ||
| 1170 | 1170 | ||
| ... 118 unchanged lines ... | |||
| 1289 | else | 1289 | else |
| 1290 | { | 1290 | { |
| 1291 | #if 0 | 1291 | #if 0 |
| 1292 | //占쏙옙占쏙옙 占쏙옙 | 1292 | //sanghoon marker |
| 1293 | extern bool sh_game_started; | 1293 | extern 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 | #endif | 1356 | #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 | // |
| 1404 | void DirectDrawRelease() | 1404 | void DirectDrawRelease() |
| 1405 | { | 1405 | { |
| 1406 | //占쏙옙占쏙옙짱-begin | 1406 | //sanghoon begin |
| 1407 | if(use_shgui){ | 1407 | if(use_shgui){ |
| 1408 | HSH_DirectDrawRelease2(); | 1408 | HSH_DirectDrawRelease2(); |
| 1409 | } | 1409 | } |
| 1410 | //占쏙옙占쏙옙짱-end | 1410 | //sanghoon end |
| 1411 | 1411 | ||
| 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 | //DirectDrawRelease | 1500 | //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 object | 1594 | // 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 ); |
| 1606 | 1606 | ||
| 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 ); |
| 1995 | 1995 | ||
| 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 ... | |||
| 2019 | 2019 | ||
| 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 | } |
| 2024 | 2024 | ||
| 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 ... | |||
| 2031 | 2031 | ||
| 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 | } |
| 2036 | 2036 | ||
| 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 | //SetupMode | 2262 | //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 | //DirectDrawCreateAllBuffers | 2582 | //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 | } |
| 2670 | 2670 | ||
| 1 | #include "pch.hpp" | 1 | #include "pch.hpp" |
| 2 | //===========================================================================// | 2 | //===========================================================================// |
| 3 | // File: Direct3D.cpp // | 3 | // File: Direct3D.cpp // |
| ... 157 unchanged lines ... | |||
| 161 | 161 | ||
| 162 | //Original | 162 | //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))); |
| 167 | 167 | ||
| ... 282 unchanged lines ... | |||
| 450 | 450 | ||
| 451 | 451 | ||
| 452 | 452 | ||
| 1 | #include "pch.hpp" | 1 | #include "pch.hpp" |
| 2 | //===========================================================================// | 2 | //===========================================================================// |
| 3 | // File: WinMain.cpp // | 3 | // File: WinMain.cpp // |
| ... 830 unchanged lines ... | |||
| 834 | } | 834 | } |
| 835 | 835 | ||
| 836 | 836 | ||
| 837 | //상훈짱 begin | 837 | //sanghoon begin |
| 838 | #include "render.hpp" | 838 | #include "render.hpp" |
| 839 | HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pddsTexture); | 839 | HRESULT App_Render( LPDIRECT3DDEVICE7 pd3dDevice,LPDIRECTDRAWSURFACE7 pddsTexture); |
| 840 | 840 | ||
| 841 | //상훈짱 end | 841 | //sanghoon end |
| 842 | 842 | ||
| 843 | 843 | ||
| 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 | //상훈짱 begin | 918 | //sanghoon begin |
| 919 | //backbuffer에 Background Image를 그린다... | 919 | //Draw background image to backbuffer... |
| 920 | 920 | ||
| 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 | } |
| 959 | 959 | ||
| 960 | //HSH_RenderAux1SmallMech(); | 960 | //HSH_RenderAux1SmallMech(); |
| 961 | //상훈짱 end | 961 | //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 1 | 1059 | #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 display | 1090 | // 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 | } |
| 1145 | 1145 | ||
| 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 | } |
| 1461 | 1461 | ||
| 1 | #include "pch.hpp" | 1 | #include "pch.hpp" |
| 2 | //===========================================================================// | 2 | //===========================================================================// |
| 3 | // File: WinProc.cpp // | 3 | // File: WinProc.cpp // |
| ... 40 unchanged lines ... | |||
| 44 | extern DWORD gCapLockMode; | 44 | extern DWORD gCapLockMode; |
| 45 | extern DWORD gScrollLockMode; | 45 | extern DWORD gScrollLockMode; |
| 46 | 46 | ||
| 47 | // 鉉 - start | 47 | // hyun begin |
| 48 | void (__stdcall *g_pfnRIO_ButtonEvent)(BYTE* by) = NULL; | 48 | void (__stdcall *g_pfnRIO_ButtonEvent)(BYTE* by) = NULL; |
| 49 | // 鉉 - end | 49 | // hyun end |
| 50 | // | 50 | // |
| 51 | 51 | ||
| 52 | // | 52 | // |
| ... 53 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | switch( uMsg ) | 107 | switch( uMsg ) |
| 108 | { | 108 | { |
| 109 | // 鉉 | 109 | // hyun |
| 110 | case WM_USER + 100: | 110 | case WM_USER + 100: |
| 111 | { | 111 | { |
| 112 | // 鉉 - start | 112 | // 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 | // 鉉 - end | 116 | // hyun end |
| 117 | } | 117 | } |
| 118 | break; | 118 | break; |
| 119 | // | 119 | // |
| ... 530 unchanged lines ... | |||
| 650 | 650 | ||
| 651 | 651 | ||
| 652 | 652 | ||
| 1 | #define STRICT | 1 | #define STRICT |
| 2 | #define D3D_OVERLOADS | 2 | #define D3D_OVERLOADS |
| 3 | #include <math.h> | 3 | #include <math.h> |
| ... 159 unchanged lines ... | |||
| 163 | 163 | ||
| 164 | if(dib.dsBmih.biHeight<0 || diba.dsBmih.biHeight<0)return false; | 164 | if(dib.dsBmih.biHeight<0 || diba.dsBmih.biHeight<0)return false; |
| 165 | 165 | ||
| 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; |
| 168 | 168 | ||
| 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; |
| 171 | 171 | ||
| 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; |
| 174 | 174 | ||
| 175 | return true; | 175 | return true; |
| ... 232 unchanged lines ... | |||
| 408 | 408 | ||
| 409 | 409 | ||
| 410 | 410 | ||
| 411 | //8Bit Bitmap으로부터.. Alpha를 가진 텍스쳐를 만든다. | 411 | //Create texture with Alpha from 8-bit Bitmap.. |
| 412 | static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP hbm ) | 412 | static LPDIRECTDRAWSURFACE7 CreateATextureFromBitmap(LPDIRECTDRAW7 pDD,HBITMAP hbm ) |
| 413 | { | 413 | { |
| 414 | BITMAP bm={0,}; | 414 | BITMAP bm={0,}; |
| ... 27 unchanged lines ... | |||
| 442 | 442 | ||
| 443 | LPDIRECTDRAWSURFACE7 CreateATextureFromFile(LPDIRECTDRAW7 pDD, CHAR* strName ) | 443 | LPDIRECTDRAWSURFACE7 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 | } |
| 847 | 847 | ||
| 848 | 848 | ||
| 849 | //texture 좌표.. u1,v1,u2,v2 | 849 | //Texture coordinates.. u1,v1,u2,v2 |
| 850 | //texture 회전축 tx,ty | 850 | //Texture rotation axis tx,ty |
| 851 | //screen 회전축 x,y | 851 | //Screen rotation axis x,y |
| 852 | //회전각 e | 852 | //Rotation angle e |
| 853 | 853 | ||
| 854 | void CHSH_Device::DrawTextureRotate(float u1,float v1,float u2,float v2,float tx,float ty,float x,float y,float e,DWORD color) | 854 | void 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; |
| 860 | 860 | ||
| 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; |
| 884 | 884 | ||
| 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 | } |
| 889 | 889 | ||
| 890 | //임의로 스케일된다. x1,y1,x2,y2 | 890 | //Scaled arbitrarily. x1,y1,x2,y2 |
| 891 | void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor, float u1,float v1,float u2,float v2) | 891 | void CHSH_Device::DrawTexture(float x1,float y1,float x2,float y2,DWORD dwColor, float u1,float v1,float u2,float v2) |
| 892 | { | 892 | { |
| 893 | 893 | ||
| ... 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 | } |
| 902 | 902 | ||
| 903 | //임의로 스케일된다. x,y,width,height | 903 | //Scaled arbitrarily. x,y,width,height |
| 904 | void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, float u1,float v1,float u2,float v2) | 904 | void CHSH_Device::DrawTexture2(float x,float y,float w,float h,DWORD dwColor, float u1,float v1,float u2,float v2) |
| 905 | { | 905 | { |
| 906 | 906 | ||
| ... 7 unchanged lines ... | |||
| 914 | } | 914 | } |
| 915 | 915 | ||
| 916 | 916 | ||
| 917 | //스케일 되지 않는.... | 917 | //Not scaled.... |
| 918 | void CHSH_Device::DrawTexture(float x,float y,DWORD dwColor, float u1,float v1,float u2,float v2) | 918 | void 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 ... | |||
| 978 | bool CMR_Device::InitSecond() | 978 | bool 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. |
| 982 | 982 | ||
| 983 | char temppath[MAX_PATH],temppatha[MAX_PATH]; | 983 | char temppath[MAX_PATH],temppatha[MAX_PATH]; |
| 984 | 984 | ||
| 985 | //1. 백그라운드이미지용 Surface | 985 | //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); |
| 988 | 988 | ||
| ... 1 unchanged lines ... | |||
| 990 | MessageBeep(0); | 990 | MessageBeep(0); |
| 991 | } | 991 | } |
| 992 | 992 | ||
| 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); |
| 997 | 997 | ||
| 998 | //3. 맵용 텍스쳐.. | 998 | //3. Texture for map.. |
| 999 | pDDSMapTexture=CreatePixelFormatTexture(pDD,256,256,&DDPF_R5G6B5); | 999 | pDDSMapTexture=CreatePixelFormatTexture(pDD,256,256,&DDPF_R5G6B5); |
| 1000 | 1000 | ||
| 1001 | tw=256; | 1001 | tw=256; |
| ... 6 unchanged lines ... | |||
| 1008 | 1008 | ||
| 1009 | bool CMR_Device::BeginScene() | 1009 | bool CMR_Device::BeginScene() |
| 1010 | { | 1010 | { |
| 1011 | //Render Target을 설정한다. | 1011 | //Set the Render Target. |
| 1012 | //SetRenderTargetTexture(); | 1012 | //SetRenderTargetTexture(); |
| 1013 | 1013 | ||
| 1014 | 1014 | ||
| 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 | } |
| 1024 | 1024 | ||
| ... 146 unchanged lines ... | |||
| 1171 | 1171 | ||
| 1172 | bool CRadar_Device::BeginScene() | 1172 | bool CRadar_Device::BeginScene() |
| 1173 | { | 1173 | { |
| 1174 | //Render Target을 설정한다. | 1174 | //Set the Render Target. |
| 1175 | SetRenderTargetTexture(); | 1175 | SetRenderTargetTexture(); |
| 1176 | 1176 | ||
| 1177 | 1177 | ||
| 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}; |
| 1187 | 1187 | ||
| 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:ready | 1294 | //state 1:ready |
| 1295 | //state 2:activated | 1295 | //state 2:activated |
| 1296 | 1296 | ||
| 1297 | //pilot mode에서는 다른 의미를 갖는다. | 1297 | //Has a different meaning in pilot mode. |
| 1298 | 1298 | ||
| 1299 | bool CRadar_Device::DrawBackText(int state[12]) | 1299 | bool CRadar_Device::DrawBackText(int state[12]) |
| 1300 | { | 1300 | { |
| ... 93 unchanged lines ... | |||
| 1394 | { | 1394 | { |
| 1395 | CHSH_Device::InitSecond(1024,512); // 640 x 480 | 1395 | 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 Image | 1399 | // 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 Image | 1404 | // 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 Display | 1420 | // MSL 5.03 Target Damage Display |
| 1421 | pDDSTargetTexture=0; | 1421 | pDDSTargetTexture=0; |
| 1422 | 1422 | ||
| ... 68 unchanged lines ... | |||
| 1491 | } | 1491 | } |
| 1492 | ch=channel; | 1492 | ch=channel; |
| 1493 | 1493 | ||
| 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 cube | 1563 | D3DTLVERTEX Vertices[4]; // Vertices for the cube |
| 1564 | 1564 | ||
| 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 ... | |||
| 1889 | bool CMFD_Device::DrawMFDDefaultBackAux1(int state) | 1889 | bool 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 ... | |||
| 2025 | 2025 | ||
| 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++ ){ |
| 2032 | 2032 | ||
| 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 | } |
| 2043 | 2043 | ||
| 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 ); |
| 2046 | 2046 | ||
| 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 ); |
| 2075 | 2075 | ||
| 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 ... | |||
| 2114 | 2114 | ||
| 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++ ){ |
| 2121 | 2121 | ||
| 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 | } |
| 2132 | 2132 | ||
| 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 ); |
| 2135 | 2135 | ||
| 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 ); |
| 2163 | 2163 | ||
| 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. |
| 2195 | 2195 | ||
| 2196 | } | 2196 | } |
| 2197 | HRESULT CHSHFont::GetTextExtent(const char* strText, SIZE* pSize ) | 2197 | HRESULT 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. |
| 2245 | 2245 | ||
| 2246 | while( (c = *strText++)!=0 ){ | 2246 | while( (c = *strText++)!=0 ){ |
| 2247 | 2247 | ||
| 2248 | if( c == '\n')sy+=h,sx=osx;//여러줄을 표시할때... | 2248 | if( c == '\n')sy+=h,sx=osx;//when displaying multiple lines... |
| 2249 | 2249 | ||
| 2250 | if( c < ' ' )continue; | 2250 | if( c < ' ' )continue; |
| 2251 | 2251 | ||
| ... 22 unchanged lines ... | |||
| 2274 | sx += w; | 2274 | sx += w; |
| 2275 | } | 2275 | } |
| 2276 | 2276 | ||
| 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 | } |
| 2344 | 2344 | ||
| 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; |
| 2379 | 2379 | ||
| 2380 | //가로 쓰기라고 가정했을때의 명칭이다. | 2380 | //Name assuming horizontal (left-to-right) text layout. |
| 2381 | int col_count=0;//maximum column count | 2381 | int col_count=0;//maximum column count |
| 2382 | int row_count=1; | 2382 | int row_count=1; |
| 2383 | 2383 | ||
| ... 11 unchanged lines ... | |||
| 2395 | ccount++; | 2395 | ccount++; |
| 2396 | if(ccount>col_count)col_count=ccount;//update the max value | 2396 | 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); |
| 2410 | 2410 | ||
| 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; |
| 2418 | 2418 | ||
| 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; |
| 2421 | 2421 | ||
| 2422 | 2422 | ||
| ... 33 unchanged lines ... | |||
| 2456 | token = strtok( NULL, seps ); | 2456 | token = strtok( NULL, seps ); |
| 2457 | } | 2457 | } |
| 2458 | 2458 | ||
| 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 function | 2508 | //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->MEM | 2517 | //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 Screen | 2593 | // Full Screen |
| 2594 | //_____________________________________________________________________________________________________ | 2594 | //_____________________________________________________________________________________________________ |
| 2595 | 2595 | ||
| 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. |
| 2598 | bool use_multimonitor; | 2598 | bool use_multimonitor; |
| 2599 | 2599 | ||
| 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. |
| 2602 | bool draw_mfd_huds; | 2602 | bool draw_mfd_huds; |
| 2603 | 2603 | ||
| 2604 | //window모드가 되었을때 무조건 true가 되도록한다.(현재에는..) | 2604 | //Force to true when windowed mode is entered. (currently..) |
| 2605 | //멀티모디터 드로잉과는 관계없다. | 2605 | //Unrelated to multi-monitor drawing. |
| 2606 | bool draw_main_huds; | 2606 | bool draw_main_huds; |
| 2607 | CRadar_Device radar_device; | 2607 | CRadar_Device radar_device; |
| 2608 | CMFD_Device mfd_device; | 2608 | CMFD_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 cube | 2720 | 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 cube | 2775 | 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 OPeration | 2780 | 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 | } |
| 2826 | 2826 | ||
| 1 | //D3DCOLOR_XXXX정위한다.(d3d8types.h에 정의되어 있으므로. 정의되어있지 않을것이다. | 1 | //D3DCOLOR_XXXX macros are defined in d3d8types.h and will not be redefined here. |
| 2 | #ifndef D3DCOLOR_ARGB | 2 | #ifndef D3DCOLOR_ARGB |
| 3 | 3 | ||
| 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 2 | 44 | #define AUX1_TEAM_MESSAGE 2 |
| 45 | #define AUX1_FREE_MESSAGE 3 | 45 | #define AUX1_FREE_MESSAGE 3 |
| 46 | 46 | ||
| 47 | //각 디바이스마다.., 각 폰트 종류(typeface,크기,굴기,기울기)가 달라질때 마다 하나씩 생성시켜 사용하면 된다. | 47 | //Create one instance per device per font type (typeface, size, bold, italic). |
| 48 | class CHSHFont | 48 | class 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]; |
| 52 | 52 | ||
| 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; |
| 61 | 61 | ||
| 62 | DWORD m_dwMaxWidth;//문자 하나중 가장 큰것.. | 62 | DWORD m_dwMaxWidth;//Width of the widest single character.. |
| 63 | public: | 63 | public: |
| 64 | CHSHFont(); | 64 | CHSHFont(); |
| 65 | ~CHSHFont(); | 65 | ~CHSHFont(); |
| ... 14 unchanged lines ... | |||
| 80 | CHSH_Device* m_pOtherHSHD; | 80 | CHSH_Device* m_pOtherHSHD; |
| 81 | public: | 81 | public: |
| 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 sruface | 143 | LPDIRECTDRAWSURFACE7 pDDSBackground; //one attatched image sruface |
| 144 | LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//메크 데미지 텍스쳐.. | 144 | LPDIRECTDRAWSURFACE7 pDDSRadarDamageTexture;//Mech damage texture.. |
| 145 | // MSL 5.03 Mechview | 145 | // 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 images | 152 | LPDIRECTDRAWSURFACE7 m_pDDSMechView; //m x n - tiled 3D MechView images |
| 153 | 153 | ||
| 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 | { |
| 164 | public: | 164 | public: |
| 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 Display | 168 | // MSL 5.03 Target Damage Display |
| 169 | LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//메크 데미지 텍스쳐.. | 169 | LPDIRECTDRAWSURFACE7 pDDSTargetTexture;//Target damage texture.. |
| 170 | 170 | ||
| 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==1 | 181 | 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 Display | 185 | // 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 sruface | 216 | 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 ... | |||
| 235 | extern bool hsh_mrdev_initialized; | 235 | extern bool hsh_mrdev_initialized; |
| 236 | extern bool sh_isdeathmode; | 236 | extern bool sh_isdeathmode; |
| 237 | extern bool g_f3dtarget; | 237 | extern bool g_f3dtarget; |
| 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(); |
| 1079 | 1079 | ||
| 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 // _DEBUG | 1294 | #endif // _DEBUG |
| 1 | // ctcl.cpp : Defines the entry point for the DLL application. | 1 | // ctcl.cpp : Defines the entry point for the DLL application. |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 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. |
| 1429 | 1429 | ||
| 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.) |
| 1433 | 1433 | ||
| 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 |
| 1439 | 1439 | ||
| 1440 | ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다. | 1440 | ==>Client has no waiting state as data is transferred immediately on startup. |
| 1441 | 1441 | ||
| 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()); |
| 1554 | 1554 | ||
| 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) |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 1 | #include "stdafx.h" | 1 | #include "stdafx.h" |
| 2 | 2 | ||
| 3 | #ifdef _DEBUG | 3 | #ifdef _DEBUG |
| ... 40 unchanged lines ... | |||
| 44 | 44 | ||
| 45 | long GetTotalSeconds(int nYear, int nMonth, int nDay) | 45 | long 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 |
| 67 | 67 | ||
| 68 | return lTotal; | 68 | return lTotal; |
| 69 | } | 69 | } |
| ... 119 unchanged lines ... | |||
| 189 | t = *localtime(&m_lTime); | 189 | t = *localtime(&m_lTime); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 1 | #if !defined(__CTIME__) | 1 | #if !defined(__CTIME__) |
| 2 | #define __CTIME__ | 2 | #define __CTIME__ |
| 3 | 3 | ||
| ... 12 unchanged lines ... | |||
| 16 | public: | 16 | public: |
| 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-1 | 20 | DWORD m_xDay: 5; // 2^0, 2^5-1 |
| 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 | 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 |
| 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 | 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 |
| ... 30 unchanged lines ... | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | #endif //!defined(__CTIME__) | 55 | #endif //!defined(__CTIME__) |
| 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 | } |
| 3673 | 3673 | ||
| ... 472 unchanged lines ... | |||
| 4146 | { | 4146 | { |
| 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); | 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); |
| 4148 | } | 4148 | } |
| 1 | #if !defined(__MUGSOCS__) | 1 | #if !defined(__MUGSOCS__) |
| 2 | #define __MUGSOCS__ | 2 | #define __MUGSOCS__ |
| 3 | 3 | ||
| ... 37 unchanged lines ... | |||
| 41 | #endif // !MAX_PACKET | 41 | #endif // !MAX_PACKET |
| 42 | #ifndef MAX_FTPBUF | 42 | #ifndef MAX_FTPBUF |
| 43 | #define MAX_FTPBUF 1024 | 43 | #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) + size | 45 | // 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size |
| 46 | #endif // !MAX_FTPBUF | 46 | #endif // !MAX_FTPBUF |
| 47 | 47 | ||
| ... 203 unchanged lines ... | |||
| 251 | 251 | ||
| 252 | #define ESTRF_USER_START 100 | 252 | #define ESTRF_USER_START 100 |
| 253 | 253 | ||
| 254 | #define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜 | 254 | #define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in |
| 255 | 255 | ||
| 256 | void Randomize(); | 256 | void Randomize(); |
| 257 | 257 | ||
| ... 10 unchanged lines ... | |||
| 268 | 268 | ||
| 269 | class CDAPacket : public SOCBase_Class | 269 | class CDAPacket : public SOCBase_Class |
| 270 | { | 270 | { |
| 271 | // Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터... | 271 | // Variable parameters in the tail portion after processing the packet header... |
| 272 | public: | 272 | public: |
| 273 | BYTE m_bCmd; | 273 | BYTE m_bCmd; |
| 274 | BYTE m_bReserved; | 274 | BYTE m_bReserved; |
| ... 86 unchanged lines ... | |||
| 361 | #define C_ROOM_MAKE 232 | 361 | #define C_ROOM_MAKE 232 |
| 362 | // s - name, s - password | 362 | // s - name, s - password |
| 363 | #define C_ROOM_JOIN 233 | 363 | #define C_ROOM_JOIN 233 |
| 364 | // d - number(Room을 떠나는 것은 -1), s - password | 364 | // 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 - number | 366 | // b - code(CSCODE_OK or error code), d - number |
| 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ | 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ |
| 368 | 368 | ||
| ... 15 unchanged lines ... | |||
| 384 | #define S_FTP 254 //... see ftp.txt | 384 | #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... |
| 386 | 386 | ||
| 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... |
| 396 | 396 | ||
| ... 96 unchanged lines ... | |||
| 493 | protected: | 493 | protected: |
| 494 | CSOC* m_pSOC; | 494 | CSOC* m_pSOC; |
| 495 | private: | 495 | private: |
| 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 ... | |||
| 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) | 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) |
| 588 | { | 588 | { |
| 589 | public: | 589 | public: |
| 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 WIN32 | 682 | #ifdef WIN32 |
| 683 | // 보통 Login과정에 쓰이는 윈도우 핸들 | 683 | // Window handle typically used during Login process |
| 684 | HWND m_hWndOwner; | 684 | HWND m_hWndOwner; |
| 685 | #endif // WIN32 | 685 | #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 | }; |
| 1270 | 1270 | ||
| 1271 | #endif // !defined(__MUGSOCS__) | 1271 | #endif // !defined(__MUGSOCS__) |
| 1 | #ifdef _DEBUG | 1 | #ifdef _DEBUG |
| 2 | 2 | ||
| 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]; |
| 8 | 8 | ||
| 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); |
| 10 | 10 | ||
| 11 | #ifdef WIN32 | 11 | #ifdef WIN32 |
| 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; | 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; |
| ... 93 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | #endif // _DEBUG | 107 | #endif // _DEBUG |
| 108 | 108 | ||
| 1 | #ifdef _DEBUG | 1 | #ifdef _DEBUG |
| 2 | 2 | ||
| 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]; |
| 8 | 8 | ||
| 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); |
| 10 | 10 | ||
| 11 | #ifdef WIN32 | 11 | #ifdef WIN32 |
| 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; | 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; |
| ... 93 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | #endif // _DEBUG | 107 | #endif // _DEBUG |
| 108 | 108 | ||
| 1 | /* | 1 | /* |
| 2 | LONG g_JoystickXStart = INT_MAX; | 2 | LONG g_JoystickXStart = INT_MAX; |
| 3 | LONG g_JoystickXEnd = INT_MIN; | 3 | LONG g_JoystickXEnd = INT_MIN; |
| ... 100 unchanged lines ... | |||
| 104 | 104 | ||
| 105 | lJ = JoystickY_Center - g_JoystickY; | 105 | lJ = JoystickY_Center - g_JoystickY; |
| 106 | 106 | ||
| 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 ... | |||
| 169 | 169 | ||
| 170 | } | 170 | } |
| 171 | */ | 171 | */ |
| 1 | #include "MW4Headers.hpp" | 1 | #include "MW4Headers.hpp" |
| 2 | 2 | ||
| 3 | #include "vehicleinterface.hpp" | 3 | #include "vehicleinterface.hpp" |
| ... 15 unchanged lines ... | |||
| 19 | #include <MLR\MLRTexture.hpp> | 19 | #include <MLR\MLRTexture.hpp> |
| 20 | 20 | ||
| 21 | #include "MWObject.hpp" | 21 | #include "MWObject.hpp" |
| 22 | //상훈짱 begin | 22 | //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> |
| 26 | 26 | ||
| 27 | #include <GameOS\render.hpp> | 27 | #include <GameOS\render.hpp> |
| 28 | #define RADAR_SCALE 2.8f | 28 | #define RADAR_SCALE 2.8f |
| 29 | //상훈짱 end | 29 | //sanghoon end |
| 30 | 30 | ||
| 31 | int m_gCool; // 鉉 | 31 | int m_gCool; // hyun: coolant |
| 32 | 32 | ||
| 33 | namespace MW4AI | 33 | namespace MW4AI |
| 34 | { | 34 | { |
| ... 86 unchanged lines ... | |||
| 121 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 121 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 122 | // | 122 | // |
| 123 | 123 | ||
| 124 | //상훈 | 124 | //sanghoon |
| 125 | extern bool sh_game_started; | 125 | extern bool sh_game_started; |
| 126 | 126 | ||
| 127 | GUIRadarManager::~GUIRadarManager() | 127 | GUIRadarManager::~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; |
| 133 | 133 | ||
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | void DrawMapBoundary() | 136 | void 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; |
| 141 | 141 | ||
| 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 (); |
| 149 | 149 | ||
| 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))); |
| 153 | 153 | ||
| 154 | for (int i=0;i<numpts;i++){ | 154 | for (int i=0;i<numpts;i++){ |
| ... 29 unchanged lines ... | |||
| 184 | 184 | ||
| 185 | void GUIRadarManager::Reset (void) | 185 | void GUIRadarManager::Reset (void) |
| 186 | { | 186 | { |
| 187 | //상훈 | 187 | //sanghoon |
| 188 | 188 | ||
| 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 | } |
| 199 | 199 | ||
| 200 | //상훈 앞 | 200 | //sanghoon begin |
| 201 | /* | 201 | /* |
| 202 | char * radar_text[]={ | 202 | char * 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 |
| 208 | 208 | ||
| 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; |
| 251 | 251 | ||
| 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; |
| 656 | 656 | ||
| 657 | // Secondary Maps | 657 | // Secondary Maps |
| 658 | //맵과 맵 경계선을 그린다. (게임중에 변하지 않으므로 한번만 그린다.) | 658 | //Draw map and boundary. (Drawn once since it does not change during game.) |
| 659 | 659 | ||
| 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()); |
| 725 | 725 | ||
| 726 | 726 | ||
| 727 | ///////////////////// MAP 시작 ////////////////////// | 727 | ///////////////////// MAP BEGIN ////////////////////// |
| 728 | /////Torso Sweep그리기.. 시작 | 728 | /////Torso Sweep draw.. begin |
| 729 | Scalar multx,multz; | 729 | Scalar multx,multz; |
| 730 | 730 | ||
| 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 | } |
| 761 | 761 | ||
| 762 | /////Torso Sweep그리기.. 끝 | 762 | /////Torso Sweep draw.. end |
| 763 | 763 | ||
| 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.. |
| 772 | 772 | ||
| 773 | // MSL 5.02 Bot on Map | 773 | // 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 | } |
| 835 | 835 | ||
| 836 | ///////////////////// MAP 끝 ////////////////////// | 836 | ///////////////////// MAP END ////////////////////// |
| 837 | 837 | ||
| 838 | 838 | ||
| 839 | ///////////////////// RADAR 시작 ////////////////////// | 839 | ///////////////////// RADAR BEGIN ////////////////////// |
| 840 | 840 | ||
| 841 | radar_device.pD3DDevice->SetTexture(0,0); | 841 | radar_device.pD3DDevice->SetTexture(0,0); |
| 842 | 842 | ||
| ... 12 unchanged lines ... | |||
| 855 | world_to_vehicle.Invert(vehicle_to_world); | 855 | world_to_vehicle.Invert(vehicle_to_world); |
| 856 | 856 | ||
| 857 | 857 | ||
| 858 | // 경계선 그리기.. | 858 | // Draw boundary line.. |
| 859 | 859 | ||
| 860 | Mission *miss; | 860 | Mission *miss; |
| 861 | miss = Mission::GetInstance (); | 861 | miss = Mission::GetInstance (); |
| ... 38 unchanged lines ... | |||
| 900 | } | 900 | } |
| 901 | 901 | ||
| 902 | 902 | ||
| 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 ); |
| 916 | 916 | ||
| 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); |
| 925 | 925 | ||
| 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); |
| 929 | 929 | ||
| 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 | } |
| 995 | 995 | ||
| 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 | } |
| 1083 | 1083 | ||
| 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 | } |
| 1138 | 1138 | ||
| 1139 | ///////////////////// RADAR 끝 ////////////////////// | 1139 | ///////////////////// RADAR END ////////////////////// |
| 1140 | } | 1140 | } |
| 1141 | } | 1141 | } |
| 1142 | 1142 | ||
| ... 443 unchanged lines ... | |||
| 1586 | 1586 | ||
| 1587 | 1587 | ||
| 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..) |
| 1597 | 1597 | ||
| 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); |
| 1604 | 1604 | ||
| 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); |
| 1613 | 1613 | ||
| 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); |
| 1623 | 1623 | ||
| 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??? |
| 1627 | 1627 | ||
| 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 image | 1633 | //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 Header | 1648 | // 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 | } |
| 1670 | 1670 | ||
| ... 32 unchanged lines ... | |||
| 1703 | size = Size (); | 1703 | size = Size (); |
| 1704 | loc = Location (); | 1704 | loc = Location (); |
| 1705 | 1705 | ||
| 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); |
| 1710 | 1710 | ||
| 1711 | color = MakeColor (0,125,0,250); | 1711 | color = MakeColor (0,125,0,250); |
| 1712 | 1712 | ||
| 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 | } |
| 1720 | 1720 | ||
| 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); |
| 1724 | 1724 | ||
| 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 | } |
| 1738 | 1738 | ||
| 1739 | //전반적으로 jumpjet과 거의 같다. | 1739 | //Overall almost identical to jumpjet. |
| 1740 | HUDCoolant::HUDCoolant () | 1740 | HUDCoolant::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 | } |
| 1751 | 1751 | ||
| ... 30 unchanged lines ... | |||
| 1782 | loc = Location (); | 1782 | loc = Location (); |
| 1783 | 1783 | ||
| 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); |
| 1787 | 1787 | ||
| 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); |
| 1791 | 1791 | ||
| 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); |
| 1804 | 1804 | ||
| 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 | } |
| 1818 | 1818 | ||
| 1819 | 1819 | ||
| 1820 | //속도를 나타내는... HUD Component | 1820 | //HUD Component displaying speed... |
| 1821 | namespace NHUDSPEED | 1821 | namespace 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; |
| 1929 | 1929 | ||
| 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; |
| 1935 | 1935 | ||
| 1936 | //삼색 막대 게이지 그리기..(clipping size를 조절함으로써.. 값을 조절하는 효과를 나타낸다.) | 1936 | //Draw tri-color bar gauge.. (value adjusted by modifying clip size..) |
| 1937 | 1937 | ||
| 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); |
| 1948 | 1948 | ||
| 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 ... | |||
| 1958 | 1958 | ||
| 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 | } |
| 1984 | 1984 | ||
| 1985 | float offset; | 1985 | float offset; |
| 1986 | //126,62.. 188의 속도.. 2:1로 나누면.. | 1986 | //126,62.. speed 188.. divided 2:1.. |
| 1987 | 1987 | ||
| 1988 | //backbground image | 1988 | //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 |
| 2099 | 2099 | ||
| 2100 | m_NavAlphaTime = 0; | 2100 | m_NavAlphaTime = 0; |
| 2101 | 2101 | ||
| ... 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 1 | 2207 | #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 | #endif | 2214 | #endif |
| 2215 | 2215 | ||
| 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 | } |
| 2271 | 2271 | ||
| 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) |
| 2292 | 2292 | ||
| 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 arrows | 2301 | // Draw navpoint bug or arrows |
| 2302 | //2번 aux navigation | 2302 | //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; |
| 2306 | 2306 | ||
| 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; |
| 2359 | 2359 | ||
| 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 | } |
| 2522 | 2522 | ||
| 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); |
| 2532 | 2532 | ||
| 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); |
| 2535 | 2535 | ||
| 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 | } |
| 2554 | 2554 | ||
| 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 | } |
| 2620 | 2620 | ||
| 1 | 1 | ||
| 2 | #pragma once | 2 | #pragma once |
| 3 | 3 | ||
| ... 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); |
| 59 | 59 | ||
| ... 196 unchanged lines ... | |||
| 256 | 256 | ||
| 257 | 257 | ||
| 258 | } | 258 | } |
| 1 | //===========================================================================// | 1 | //===========================================================================// |
| 2 | // File: MW4.cpp // | 2 | // File: MW4.cpp // |
| 3 | //---------------------------------------------------------------------------// | 3 | //---------------------------------------------------------------------------// |
| ... 117 unchanged lines ... | |||
| 121 | void InitComFuncs (void); | 121 | void InitComFuncs (void); |
| 122 | void KillComFuncs (void); | 122 | void KillComFuncs (void); |
| 123 | 123 | ||
| 124 | // 鉉 - start | 124 | // hyun begin |
| 125 | typedef long LONG; | 125 | typedef long LONG; |
| 126 | typedef struct DIJOYSTATE { | 126 | typedef struct DIJOYSTATE { |
| 127 | LONG lX; | 127 | LONG lX; |
| ... 13 unchanged lines ... | |||
| 141 | extern void __stdcall RIO_Joy(DIJOYSTATE& js); | 141 | extern void __stdcall RIO_Joy(DIJOYSTATE& js); |
| 142 | extern void __stdcall RIO_ButEvent(BYTE* by); | 142 | extern void __stdcall RIO_ButEvent(BYTE* by); |
| 143 | 143 | ||
| 144 | // 鉉 - end | 144 | // hyun end |
| 145 | 145 | ||
| 146 | namespace MW4AI | 146 | namespace MW4AI |
| 147 | { | 147 | { |
| ... 52 unchanged lines ... | |||
| 200 | void | 200 | void |
| 201 | MechWarrior4::InitializeClasses(Stuff::NotationFile *startup_ini) | 201 | MechWarrior4::InitializeClasses(Stuff::NotationFile *startup_ini) |
| 202 | { | 202 | { |
| 203 | // 鉉 - start | 203 | // hyun begin |
| 204 | if (g_bUseOrgJoy) | 204 | if (g_bUseOrgJoy) |
| 205 | g_pfnRIO_Joy = NULL; | 205 | g_pfnRIO_Joy = NULL; |
| 206 | else | 206 | 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 | // 鉉 - end | 209 | // hyun end |
| 210 | 210 | ||
| 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; |
| 755 | 755 | ||
| 756 | // 鉉 - start | 756 | // hyun begin |
| 757 | g_pfnRIO_ButtonEvent = NULL; | 757 | g_pfnRIO_ButtonEvent = NULL; |
| 758 | g_pfnRIO_Joy = NULL; | 758 | g_pfnRIO_Joy = NULL; |
| 759 | // 鉉 - end | 759 | // hyun end |
| 760 | } | 760 | } |
| 1 | #include "MW4Headers.hpp" | 1 | #include "MW4Headers.hpp" |
| 2 | 2 | ||
| 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(); |
| 12982 | 12982 | ||
| 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(); |
| 13251 | 13251 | ||
| 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 ... | |||
| 14876 | 14876 | ||
| 14877 | return 1; | 14877 | return 1; |
| 14878 | } | 14878 | } |
| 1 | #include "MW4Headers.hpp" | 1 | #include "MW4Headers.hpp" |
| 2 | 2 | ||
| 3 | #include "MWApplication.hpp" | 3 | #include "MWApplication.hpp" |
| ... 226 unchanged lines ... | |||
| 230 | extern bool g_bCOOP; // COin OPeration | 230 | extern bool g_bCOOP; // COin OPeration |
| 231 | // jcem - end | 231 | // jcem - end |
| 232 | 232 | ||
| 233 | // 鉉 - start | 233 | // hyun begin |
| 234 | extern void __stdcall RIO_StartStop (BOOL bStart); | 234 | extern void __stdcall RIO_StartStop (BOOL bStart); |
| 235 | void COOP_InputMode(bool bRestore); | 235 | void COOP_InputMode(bool bRestore); |
| 236 | extern int g_bNoPlasma; | 236 | extern int g_bNoPlasma; |
| 237 | extern void __stdcall PLASMA_Do(int nMode); | 237 | extern void __stdcall PLASMA_Do(int nMode); |
| 238 | extern void GeneralReset(); | 238 | extern void GeneralReset(); |
| 239 | // 鉉 - end | 239 | // hyun end |
| 240 | 240 | ||
| 241 | extern bool __stdcall gos_NetDoneStartGame(); | 241 | extern bool __stdcall gos_NetDoneStartGame(); |
| 242 | extern bool __stdcall PrepareDefaultServerAdvertisers(void); | 242 | extern 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 | }; |
| 1945 | 1945 | ||
| 1946 | TextBox::TextBox (const char* pcszFontName, int nFontSize/* = -11*/, bool oldmode/* = false*/) | 1946 | TextBox::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 | // 鉉 - start | 3574 | // hyun begin |
| 3575 | RIO_StartStop (TRUE); | 3575 | RIO_StartStop (TRUE); |
| 3576 | // 鉉 - end | 3576 | // hyun end |
| 3577 | 3577 | ||
| 3578 | g_MRF.Started(); // jcem | 3578 | g_MRF.Started(); // jcem |
| 3579 | g_RSF.Started(); // jcem | 3579 | g_RSF.Started(); // jcem |
| ... 116 unchanged lines ... | |||
| 3696 | g_RSF.Stopping(); // jcem | 3696 | g_RSF.Stopping(); // jcem |
| 3697 | 3697 | ||
| 3698 | ClearTOC(); | 3698 | ClearTOC(); |
| 3699 | // 鉉 - start | 3699 | // hyun begin |
| 3700 | RIO_StartStop (FALSE); | 3700 | RIO_StartStop (FALSE); |
| 3701 | // 鉉 - end | 3701 | // 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(); // jcem | 3870 | g_RSF.Stopping(); // jcem |
| 3871 | 3871 | ||
| 3872 | ClearTOC(); | 3872 | ClearTOC(); |
| 3873 | // 鉉 - start | 3873 | // hyun begin |
| 3874 | RIO_StartStop (FALSE); | 3874 | RIO_StartStop (FALSE); |
| 3875 | // 鉉 - end | 3875 | // 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_ReadyStartGame | 18436 | // C_ReadyStartGame |
| 18437 | 18437 | ||
| 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 MECH | 18523 | // 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]); // Madcat | 18529 | 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 | } |
| 1 | #include "MW4Headers.hpp" | 1 | #include "MW4Headers.hpp" |
| 2 | 2 | ||
| 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,hudScore | 1560 | //Main hudZoom,//hudReticle,hudObjective,hudTorsoBar,hudHelp,hudScore |
| ... 36 unchanged lines ... | |||
| 1597 | } | 1597 | } |
| 1598 | else | 1598 | 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 (); |
| 1613 | 1613 | ||
| 1614 | 1614 | ||
| 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 | } |
| 1653 | 1653 | ||
| 1654 | void MWGUIManager::ShowHelpArrow (bool value) | 1654 | void MWGUIManager::ShowHelpArrow (bool value) |
| ... 378 unchanged lines ... | |||
| 2033 | return NULL; | 2033 | return NULL; |
| 2034 | } | 2034 | } |
| 2035 | 2035 | ||
| 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 | } |
| 592 | 592 | ||
| 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 | } |
| 812 | 812 | ||
| 1 | //===========================================================================// | 1 | //===========================================================================// |
| 2 | // File: Mech.cpp | 2 | // File: Mech.cpp |
| 3 | //---------------------------------------------------------------------------// | 3 | //---------------------------------------------------------------------------// |
| ... 3950 unchanged lines ... | |||
| 3954 | g_HUDPPCLevel = 10; | 3954 | g_HUDPPCLevel = 10; |
| 3955 | } | 3955 | } |
| 3956 | 3956 | ||
| 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 | } |
| 10233 | 10233 | ||
| 1 | //===========================================================================// | 1 | //===========================================================================// |
| 2 | // File: VehicleInterface.cpp | 2 | // 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 | //===========================================================================// |
| 15 | 15 | ||
| 16 | // 鉉 - start | 16 | // 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 | // 鉉 - end | 25 | // hyun end |
| 26 | 26 | ||
| 27 | 27 | ||
| 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 |
| 71 | 71 | ||
| 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)) |
| 103 | 103 | ||
| 104 | // 鉉 - start | 104 | // hyun begin |
| 105 | #include <windows.h> | 105 | #include <windows.h> |
| 106 | 106 | ||
| 107 | #include "ctcls.h" | 107 | #include "ctcls.h" |
| ... 100 unchanged lines ... | |||
| 208 | float g_fTimeMsgSender = 1.5f; | 208 | float g_fTimeMsgSender = 1.5f; |
| 209 | float g_fTimeScoringAtEnd = 10.0f; | 209 | float g_fTimeScoringAtEnd = 10.0f; |
| 210 | Mech* FindNextMechToFollowByScore(Mech* pCur); // jcem | 210 | Mech* FindNextMechToFollowByScore(Mech* pCur); // jcem |
| 211 | // 鉉 - end | 211 | // hyun end |
| 212 | 212 | ||
| 213 | CamerashipParams g_CamerashipParams; | 213 | CamerashipParams g_CamerashipParams; |
| 214 | 214 | ||
| ... 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 Weapons | 3789 | // 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 Zoom | 7495 | // 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 | } |
| 8122 | 8122 | ||
| 8123 | // | 8123 | // |
| 8124 | // 鉉 - start | 8124 | // hyun begin |
| 8125 | 8125 | ||
| 8126 | groupWeaponIterator->ReadAndNext(); | 8126 | groupWeaponIterator->ReadAndNext(); |
| 8127 | 8127 | ||
| ... 7 unchanged lines ... | |||
| 8135 | BOOL bWeaponGroup3 = (group3FireRequest > 0) && GetWeaponGroupID (*weapon, 3); | 8135 | BOOL bWeaponGroup3 = (group3FireRequest > 0) && GetWeaponGroupID (*weapon, 3); |
| 8136 | 8136 | ||
| 8137 | // | 8137 | // |
| 8138 | // 鉉 - end | 8138 | // hyun end |
| 8139 | // | 8139 | // |
| 8140 | 8140 | ||
| 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); |
| 8522 | 8522 | ||
| 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 |
| 8530 | 8530 | ||
| 8531 | if (perminateTorsoMode == CenterLegsToTorso) | 8531 | if (perminateTorsoMode == CenterLegsToTorso) |
| 8532 | { | 8532 | { |
| ... 6 unchanged lines ... | |||
| 8539 | } | 8539 | } |
| 8540 | else | 8540 | else |
| 8541 | { | 8541 | { |
| 8542 | g_pRIOMain->SetLampState (28, LAMP_DEFAULT); // 鉉 | 8542 | g_pRIOMain->SetLampState (28, LAMP_DEFAULT); // hyun |
| 8543 | } | 8543 | } |
| 8544 | } | 8544 | } |
| 8545 | 8545 | ||
| ... 112 unchanged lines ... | |||
| 8658 | } | 8658 | } |
| 8659 | } | 8659 | } |
| 8660 | 8660 | ||
| 8661 | g_pRIOMain->SetLampState (17, LAMP_BRIGHT);// 鉉 | 8661 | g_pRIOMain->SetLampState (17, LAMP_BRIGHT);// hyun |
| 8662 | } | 8662 | } |
| 8663 | else | 8663 | else |
| 8664 | { | 8664 | { |
| 8665 | g_pRIOMain->SetLampState (17, LAMP_DEFAULT);// 鉉 | 8665 | g_pRIOMain->SetLampState (17, LAMP_DEFAULT);// hyun |
| 8666 | } | 8666 | } |
| 8667 | } | 8667 | } |
| 8668 | 8668 | ||
| ... 80 unchanged lines ... | |||
| 8749 | Verify(message->messageID == CrouchCommandMessageID); | 8749 | Verify(message->messageID == CrouchCommandMessageID); |
| 8750 | 8750 | ||
| 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 ... | |||
| 8786 | 8786 | ||
| 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 | } |
| 8795 | 8795 | ||
| ... 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 | } |
| 8820 | 8820 | ||
| ... 463 unchanged lines ... | |||
| 9284 | } | 9284 | } |
| 9285 | 9285 | ||
| 9286 | if (!GetShutdownState()) | 9286 | if (!GetShutdownState()) |
| 9287 | g_pRIOMain->SetLampState (7, LAMP_BRIGHT);// 鉉 | 9287 | g_pRIOMain->SetLampState (7, LAMP_BRIGHT);// hyun |
| 9288 | } | 9288 | } |
| 9289 | else | 9289 | 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 ... | |||
| 9341 | 9341 | ||
| 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 ... | |||
| 9379 | 9379 | ||
| 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 ... | |||
| 9415 | 9415 | ||
| 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 ... | |||
| 9468 | 9468 | ||
| 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 ... | |||
| 9508 | 9508 | ||
| 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 ... | |||
| 9554 | 9554 | ||
| 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 | else | 9560 | else |
| ... 783 unchanged lines ... | |||
| 10344 | Verify(message->messageID == ToggleSearchLightMessageID); | 10344 | Verify(message->messageID == ToggleSearchLightMessageID); |
| 10345 | 10345 | ||
| 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 | else | 10356 | 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 | } |
| 10362 | 10362 | ||
| ... 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 | //} |
| 10551 | 10551 | ||
| 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 | //} |
| 10565 | 10565 | ||
| 10566 | isCooling --; | 10566 | isCooling --; |
| ... 167 unchanged lines ... | |||
| 10734 | 10734 | ||
| 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 MFD | 10738 | 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 MFD | 10777 | g_pRIOMain->SetLampState (48, LAMP_DEFAULT); // Light Amp Lamp MFD |
| 10778 | } | 10778 | } |
| 10779 | else | 10779 | 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 MFD | 10782 | 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); |
| 10865 | 10865 | ||
| 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 | else | 10891 | else |
| 10892 | { | 10892 | { |
| 10893 | g_pRIOMain->SetLampState (38, LAMP_DEFAULT);// 鉉 | 10893 | g_pRIOMain->SetLampState (38, LAMP_DEFAULT);// hyun |
| 10894 | } | 10894 | } |
| 10895 | } | 10895 | } |
| 10896 | 10896 | ||
| ... 18 unchanged lines ... | |||
| 10915 | Verify(message->messageID == PreviousNavPointMessageID); | 10915 | Verify(message->messageID == PreviousNavPointMessageID); |
| 10916 | 10916 | ||
| 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 | else | 10937 | else |
| 10938 | { | 10938 | { |
| 10939 | g_pRIOMain->SetLampState (37, LAMP_DEFAULT);// 鉉 | 10939 | g_pRIOMain->SetLampState (37, LAMP_DEFAULT);// hyun |
| 10940 | } | 10940 | } |
| 10941 | } | 10941 | } |
| 10942 | 10942 | ||
| ... 18 unchanged lines ... | |||
| 10961 | Verify(message->messageID == NextEnemyMessageID); | 10961 | Verify(message->messageID == NextEnemyMessageID); |
| 10962 | 10962 | ||
| 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 | else | 10979 | else |
| 10980 | { | 10980 | { |
| 10981 | g_pRIOMain->SetLampState (10, LAMP_DEFAULT);// 鉉 | 10981 | g_pRIOMain->SetLampState (10, LAMP_DEFAULT);// hyun |
| 10982 | } | 10982 | } |
| 10983 | } | 10983 | } |
| 10984 | 10984 | ||
| ... 18 unchanged lines ... | |||
| 11003 | Verify(message->messageID == PreviousEnemyMessageID); | 11003 | Verify(message->messageID == PreviousEnemyMessageID); |
| 11004 | 11004 | ||
| 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 | else | 11021 | else |
| 11022 | { | 11022 | { |
| 11023 | g_pRIOMain->SetLampState (9, LAMP_DEFAULT);// 鉉 | 11023 | g_pRIOMain->SetLampState (9, LAMP_DEFAULT);// hyun |
| 11024 | } | 11024 | } |
| 11025 | } | 11025 | } |
| 11026 | 11026 | ||
| ... 18 unchanged lines ... | |||
| 11045 | Verify(message->messageID == NearestEnemyMessageID); | 11045 | Verify(message->messageID == NearestEnemyMessageID); |
| 11046 | 11046 | ||
| 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 | else | 11066 | else |
| 11067 | { | 11067 | { |
| 11068 | g_pRIOMain->SetLampState (11, LAMP_DEFAULT);// 鉉 | 11068 | g_pRIOMain->SetLampState (11, LAMP_DEFAULT);// hyun |
| 11069 | } | 11069 | } |
| 11070 | } | 11070 | } |
| 11071 | 11071 | ||
| ... 160 unchanged lines ... | |||
| 11232 | 11232 | ||
| 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 |
| 11241 | 11241 | ||
| 11242 | Entity *target_entity; | 11242 | Entity *target_entity; |
| 11243 | target_entity = targetQueryEntity.GetCurrent(); | 11243 | target_entity = targetQueryEntity.GetCurrent(); |
| ... 16 unchanged lines ... | |||
| 11260 | } | 11260 | } |
| 11261 | else | 11261 | else |
| 11262 | { | 11262 | { |
| 11263 | g_pRIOMain->SetLampState (8, LAMP_DEFAULT);// 鉉 | 11263 | g_pRIOMain->SetLampState (8, LAMP_DEFAULT);// hyun |
| 11264 | } | 11264 | } |
| 11265 | } | 11265 | } |
| 11266 | 11266 | ||
| ... 18 unchanged lines ... | |||
| 11285 | Verify(message->messageID == NextFriendlyMessageID); | 11285 | Verify(message->messageID == NextFriendlyMessageID); |
| 11286 | 11286 | ||
| 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 | else | 11304 | else |
| 11305 | { | 11305 | { |
| 11306 | g_pRIOMain->SetLampState (14, LAMP_DEFAULT);// 鉉 | 11306 | g_pRIOMain->SetLampState (14, LAMP_DEFAULT);// hyun |
| 11307 | } | 11307 | } |
| 11308 | } | 11308 | } |
| 11309 | 11309 | ||
| ... 18 unchanged lines ... | |||
| 11328 | Verify(message->messageID == PreviousFriendlyMessageID); | 11328 | Verify(message->messageID == PreviousFriendlyMessageID); |
| 11329 | 11329 | ||
| 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 | else | 11347 | else |
| 11348 | { | 11348 | { |
| 11349 | g_pRIOMain->SetLampState (13, LAMP_DEFAULT);// 鉉 | 11349 | g_pRIOMain->SetLampState (13, LAMP_DEFAULT);// hyun |
| 11350 | } | 11350 | } |
| 11351 | } | 11351 | } |
| 11352 | 11352 | ||
| ... 18 unchanged lines ... | |||
| 11371 | Verify(message->messageID == NearestFriendlyMessageID); | 11371 | Verify(message->messageID == NearestFriendlyMessageID); |
| 11372 | 11372 | ||
| 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 | else | 11389 | else |
| 11390 | { | 11390 | { |
| 11391 | g_pRIOMain->SetLampState (15, LAMP_DEFAULT);// 鉉 | 11391 | g_pRIOMain->SetLampState (15, LAMP_DEFAULT);// hyun |
| 11392 | } | 11392 | } |
| 11393 | } | 11393 | } |
| 11394 | 11394 | ||
| ... 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 ... | |||
| 11541 | 11541 | ||
| 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 | else | 11553 | else |
| 11554 | { | 11554 | { |
| 11555 | g_pRIOMain->SetLampState (52, LAMP_DEFAULT);// 鉉 | 11555 | g_pRIOMain->SetLampState (52, LAMP_DEFAULT);// hyun |
| 11556 | } | 11556 | } |
| 11557 | } | 11557 | } |
| 11558 | 11558 | ||
| ... 25 unchanged lines ... | |||
| 11584 | Verify(message->messageID == LeftMFDMessageID); | 11584 | Verify(message->messageID == LeftMFDMessageID); |
| 11585 | 11585 | ||
| 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 | else | 11611 | 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); |
| 11633 | 11633 | ||
| 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 | else | 11677 | else |
| 11678 | { | 11678 | { |
| 11679 | g_pRIOMain->SetLampState (25, LAMP_DEFAULT);// 鉉 | 11679 | g_pRIOMain->SetLampState (25, LAMP_DEFAULT);// hyun |
| 11680 | } | 11680 | } |
| 11681 | } | 11681 | } |
| 11682 | 11682 | ||
| ... 19 unchanged lines ... | |||
| 11702 | Verify(message->messageID == ToggleRadarRangeMessageID); | 11702 | Verify(message->messageID == ToggleRadarRangeMessageID); |
| 11703 | 11703 | ||
| 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 | else | 11740 | else |
| 11741 | { | 11741 | { |
| 11742 | g_pRIOMain->SetLampState (24, LAMP_DEFAULT);// 鉉 | 11742 | g_pRIOMain->SetLampState (24, LAMP_DEFAULT);// hyun |
| 11743 | } | 11743 | } |
| 11744 | } | 11744 | } |
| 11745 | 11745 | ||
| ... 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 | else | 13540 | else |
| 13541 | { | 13541 | { |
| 13542 | g_pRIOMain->SetLampState (36, LAMP_DEFAULT);// 鉉 | 13542 | g_pRIOMain->SetLampState (36, LAMP_DEFAULT);// hyun |
| 13543 | } | 13543 | } |
| 13544 | } | 13544 | } |
| 13545 | else | 13545 | else |
| ... 22 unchanged lines ... | |||
| 13568 | 13568 | ||
| 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 | else | 13574 | else |
| 13575 | { | 13575 | { |
| 13576 | g_pRIOMain->SetLampState (55, LAMP_DEFAULT);// 鉉 | 13576 | g_pRIOMain->SetLampState (55, LAMP_DEFAULT);// hyun |
| 13577 | } | 13577 | } |
| 13578 | } | 13578 | } |
| 13579 | 13579 | ||
| ... 109 unchanged lines ... | |||
| 13689 | 13689 | ||
| 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 - begin | 14493 | // 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; // mixed | 16855 | return 0; // mixed |
| 16856 | } | 16856 | } |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 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" |
| 32 | 32 | ||
| 33 | //상훈짱 begin | 33 | //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 ... | |||
| 43 | extern Scalar g_fLastStartTime; | 43 | extern Scalar g_fLastStartTime; |
| 44 | extern Adept::ReplicatorID g_LastTarget; | 44 | extern Adept::ReplicatorID g_LastTarget; |
| 45 | 45 | ||
| 46 | //상훈짱 end | 46 | //sanghoon end |
| 47 | 47 | ||
| 48 | extern "C" char* _stdcall CharPrevA(const char* lpszStart, const char* lpszCurrent); | 48 | extern "C" char* _stdcall CharPrevA(const char* lpszStart, const char* lpszCurrent); |
| 49 | #define CharPrev CharPrevA | 49 | #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)); |
| 166 | 166 | ||
| 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}, //special2 | 228 | { 0*2, 0*2}, //special2 |
| 229 | }; | 229 | }; |
| 230 | 230 | ||
| 231 | //number: 0,1,2,3 lancemate의 순서.. | 231 | //number: 0,1,2,3 lancemate order.. |
| 232 | //part: 해당 lancemate mech의 part | 232 | //part: mech part of the lancemate |
| 233 | //color:해당 part의 color | 233 | //color: color for this part |
| 234 | void RenderAux1SmallMech(int num,int part,int color) | 234 | void 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 | #endif | 598 | #endif |
| 599 | 599 | ||
| 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)); |
| 608 | 608 | ||
| 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) // jcem | 635 | if (mech_count > 8) // jcem |
| ... 21 unchanged lines ... | |||
| 657 | 657 | ||
| 658 | 658 | ||
| 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 | } |
| 671 | 671 | ||
| 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 | } |
| 697 | 697 | ||
| 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_y | 700 | 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; |
| 734 | 734 | ||
| 735 | // Secondary Maps | 735 | // 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(); |
| 749 | 749 | ||
| 750 | 750 | ||
| 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 Factor | 752 | float MR_MSF=4.0f;//Mission Review - Map Scale Factor |
| 753 | const float ViewSize=300.0f;//Mission Review - Map Size | 753 | const float ViewSize=300.0f;//Mission Review - Map Size |
| 754 | const float ViewLMargin=10; | 754 | const float ViewLMargin=10; |
| ... 3 unchanged lines ... | |||
| 758 | 758 | ||
| 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 ////////////////////// |
| 762 | 762 | ||
| 763 | //Focus Mech를 설정하는 루틴을 넣어야한다. | 763 | //Need to add routine to set Focus Mech. |
| 764 | Scalar multx,multz; | 764 | Scalar multx,multz; |
| 765 | 765 | ||
| 766 | 766 | ||
| ... 20 unchanged lines ... | |||
| 787 | 787 | ||
| 788 | mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture); | 788 | mr_device.pD3DDevice->SetTexture(0,mr_device.pDDSTexture); |
| 789 | 789 | ||
| 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.. |
| 794 | 794 | ||
| 795 | Stuff::Point3D pos; | 795 | Stuff::Point3D pos; |
| 796 | 796 | ||
| ... 30 unchanged lines ... | |||
| 827 | color,callsign,TEXTALIGN_HCENTER|TEXTALIGN_TOP); | 827 | color,callsign,TEXTALIGN_HCENTER|TEXTALIGN_TOP); |
| 828 | 828 | ||
| 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.. |
| 834 | 834 | ||
| 835 | Stuff::Point3D pos; | 835 | Stuff::Point3D pos; |
| 836 | 836 | ||
| ... 49 unchanged lines ... | |||
| 886 | mr_device.pD3DDevice->SetViewport(&viewport2); | 886 | mr_device.pD3DDevice->SetViewport(&viewport2); |
| 887 | 887 | ||
| 888 | 888 | ||
| 889 | ///////////////////// MAP 끝 ////////////////////// | 889 | ///////////////////// MAP END ////////////////////// |
| 890 | 890 | ||
| 891 | //_______________________________________________________________________________________________________ | 891 | //_______________________________________________________________________________________________________ |
| 892 | // | 892 | // |
| ... 1 unchanged lines ... | |||
| 894 | //_______________________________________________________________________________________________________ | 894 | //_______________________________________________________________________________________________________ |
| 895 | 895 | ||
| 896 | 896 | ||
| 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_y | 975 | 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 | } |
| 997 | 997 | ||
| 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; |
| 1007 | 1007 | ||
| 1008 | int i; | 1008 | int i; |
| 1009 | //번호를 먼저 지운다. | 1009 | //Clear the numbers first. |
| 1010 | // MSL 5.03 Comm MFD | 1010 | // 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 MFD | 1013 | // 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); |
| 1015 | 1015 | ||
| ... 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 ... | |||
| 1120 | 1120 | ||
| 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_y | 1125 | 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 ()); |
| 1150 | 1150 | ||
| 1151 | int death=0,kill=0;//,score | 1151 | 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 nothing | 1168 | ;//do nothing |
| 1169 | } | 1169 | } |
| 1170 | //상훈 뒤 | 1170 | //sanghoon end |
| 1171 | mfd_device.EndChannel(); | 1171 | mfd_device.EndChannel(); |
| 1172 | } else { | 1172 | } else { |
| 1173 | }//hsh_initialized | 1173 | }//hsh_initialized |
| 1174 | } | 1174 | } |
| 1175 | 1175 | ||
| 1176 | 1176 | ||
| 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 |
| 17 | 17 | ||
| 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" |
| 27 | 27 | ||
| 28 | //상훈짱 begin | 28 | //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> |
| 32 | 32 | ||
| 33 | #include <GameOS\render.hpp> | 33 | #include <GameOS\render.hpp> |
| 34 | 34 | ||
| 35 | //상훈짱 end | 35 | //sanghoon end |
| 36 | 36 | ||
| 37 | using namespace MechWarrior4; | 37 | using namespace MechWarrior4; |
| 38 | 38 | ||
| ... 552 unchanged lines ... | |||
| 591 | } | 591 | } |
| 592 | 592 | ||
| 593 | 593 | ||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | 3 | ||
| ... 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 | }; |
| 388 | 388 | ||
| 389 | class HUDNumberText : public HUDText | 389 | class HUDNumberText : public HUDText |
| ... 203 unchanged lines ... | |||
| 593 | 593 | ||
| 594 | } | 594 | } |
| 595 | 595 | ||
| 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 ... | |||
| 95 | 95 | ||
| 96 | void HUDTargetArrow::DrawImplementation(void) | 96 | void 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 | else | 213 | else |
| 214 | { | 214 | { |
| ... 63 unchanged lines ... | |||
| 278 | Scalar currentxval,currentyval; | 278 | Scalar currentxval,currentyval; |
| 279 | Point3D size,loc,texsize; | 279 | Point3D size,loc,texsize; |
| 280 | 280 | ||
| 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 Yellow | 322 | // Changed Torso Bar from Green to Yellow |
| 323 | // MSL 5.00 | 323 | // 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); |
| 326 | 326 | ||
| 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 | } |
| 341 | 341 | ||
| 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 bar | 345 | 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 | } |
| 387 | 387 | ||
| 388 | 388 | ||
| ... 189 unchanged lines ... | |||
| 578 | } | 578 | } |
| 579 | } | 579 | } |
| 580 | 580 | ||
| 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" |
| 11 | 11 | ||
| 12 | //상훈짱 begin | 12 | //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 ... | |||
| 34 | bool g_bCrossTargetMode = false; | 34 | bool g_bCrossTargetMode = false; |
| 35 | // MSL 5.03 Secondary Damage Display | 35 | // MSL 5.03 Secondary Damage Display |
| 36 | int g_nAuxilMode = 0; | 36 | int g_nAuxilMode = 0; |
| 37 | //상훈짱 end | 37 | //sanghoon end |
| 38 | 38 | ||
| 39 | using namespace MechWarrior4; | 39 | using namespace MechWarrior4; |
| 40 | namespace HUDDAMAGE | 40 | namespace 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 | else | 411 | 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 |
| 468 | 468 | ||
| 469 | //nst DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFCCCCCC,0xFF999999,0xFF666666,0xFF333333,0xFF000000}; | 469 | //nst DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFCCCCCC,0xFF999999,0xFF666666,0xFF333333,0xFF000000}; |
| 470 | const DWORD SH_DamageColor[6]={0xFFFFFFFF,0xFFDDDDDD,0xFFBBBBBB,0xFF999999,0xFF777777,0xFF333333}; | 470 | const 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 |
| 570 | 570 | ||
| 571 | void HUDDamage::DrawImplementation(void) | 571 | void 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; |
| 753 | 753 | ||
| 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 0 | 756 | #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 ); |
| 874 | 874 | ||
| 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}; |
| 877 | 877 | ||
| 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); |
| 908 | 908 | ||
| 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]; |
| 953 | 953 | ||
| 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]); |
| 1000 | 1000 | ||
| 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; |
| 1270 | 1270 | ||
| 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 | else | 1316 | else |
| 1317 | { | 1317 | { |
| 1318 | //상훈 | 1318 | //sanghoon |
| 1319 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); | 1319 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); |
| 1320 | } | 1320 | } |
| 1321 | 1321 | ||
| ... 442 unchanged lines ... | |||
| 1764 | 1764 | ||
| 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 mode | 1768 | 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 | else | 1806 | 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 ... | |||
| 1826 | 1826 | ||
| 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 (); |
| 1832 | 1832 | ||
| ... 64 unchanged lines ... | |||
| 1897 | } | 1897 | } |
| 1898 | else | 1898 | else |
| 1899 | { | 1899 | { |
| 1900 | //상훈 | 1900 | //sanghoon |
| 1901 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); | 1901 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); |
| 1902 | } | 1902 | } |
| 1903 | 1903 | ||
| ... 6 unchanged lines ... | |||
| 1910 | fred = 0; | 1910 | fred = 0; |
| 1911 | 1911 | ||
| 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 0 | 1914 | #if 0 |
| 1915 | if (i != fred) | 1915 | if (i != fred) |
| 1916 | { | 1916 | { |
| ... 66 unchanged lines ... | |||
| 1983 | 1983 | ||
| 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 Image | 2010 | // 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; |
| 2015 | 2015 | ||
| 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 Image | 2022 | // 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 Resize | 2024 | // 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); |
| 2061 | 2061 | ||
| 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 | { |
| 2105 | 2105 | ||
| 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 ... | |||
| 2134 | 2134 | ||
| 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 mode | 2138 | 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 | else | 2161 | 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 ... | |||
| 2178 | 2178 | ||
| 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 Display | 2208 | // MSL 5.03 Target Damage Display |
| 2209 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); | 2209 | mfd_device.LoadTargetTexture(texturename[m_TargetMechID]); |
| 2210 | 2210 | ||
| 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]); |
| 2214 | 2214 | ||
| 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 | } |
| 2261 | 2261 | ||
| 2262 | 2262 | ||
| 1 | 1 | ||
| 2 | #pragma once | 2 | #pragma once |
| 3 | 3 | ||
| ... 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 |
| 85 | 85 | ||
| 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 | } |
| 129 | 129 | ||
| 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 Points | 9 | // MSL 5.02 Nav Points |
| 10 | #include "navpoint.hpp" | 10 | #include "navpoint.hpp" |
| 11 | //상훈짱 begin | 11 | //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> |
| 15 | 15 | ||
| 16 | #include <GameOS\render.hpp> | 16 | #include <GameOS\render.hpp> |
| 17 | extern char AssetsDirectory1[MAX_PATH]; | 17 | extern char AssetsDirectory1[MAX_PATH]; |
| 18 | //상훈짱 end | 18 | //sanghoon end |
| 19 | 19 | ||
| 20 | const Stuff::Time SHOT_TIME = 2.0; | 20 | const Stuff::Time SHOT_TIME = 2.0; |
| 21 | 21 | ||
| ... 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 | } |
| 54 | 54 | ||
| 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; |
| 156 | 156 | ||
| 157 | //맵을 그린다. | 157 | //Draw the map. |
| 158 | Vehicle *vehicle = m_Vehicle.GetCurrent(); | 158 | Vehicle *vehicle = m_Vehicle.GetCurrent(); |
| 159 | 159 | ||
| 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); |
| 165 | 165 | ||
| 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; |
| 169 | 169 | ||
| ... 44 unchanged lines ... | |||
| 214 | 214 | ||
| 215 | 215 | ||
| 216 | //Draw Radar Blips | 216 | //Draw Radar Blips |
| 217 | //레이다의 오브젝트들을 표시한다. | 217 | //Display radar objects. |
| 218 | 218 | ||
| 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 | } |
| 450 | 450 | ||
| 1 | 1 | ||
| 2 | #pragma once | 2 | #pragma once |
| 3 | 3 | ||
| ... 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 |
| 40 | 40 | ||
| 41 | public: | 41 | public: |
| 42 | HUDMap(); | 42 | HUDMap(); |
| ... 12 unchanged lines ... | |||
| 55 | } | 55 | } |
| 56 | }; | 56 | }; |
| 57 | } | 57 | } |
| 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 ... | |||
| 90 | HUDScore::HUDScore() | 90 | HUDScore::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 ... | |||
| 128 | 128 | ||
| 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 | } |
| 446 | 446 | ||
| 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 ... | |||
| 455 | 455 | ||
| 456 | DWORD bcolor = BrighterColor (Color ()); | 456 | DWORD bcolor = BrighterColor (Color ()); |
| 457 | 457 | ||
| 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)); |
| 482 | 482 | ||
| 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 ... | |||
| 883 | 883 | ||
| 884 | return 0; | 884 | return 0; |
| 885 | } | 885 | } |
| 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); |
| 369 | 369 | ||
| 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 | } |
| 474 | 474 | ||
| 475 | 475 | ||
| 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 Fire | 15 | // MSL 5.03 Ammo Bay Fire |
| 16 | static float TIME_AMMO_BAY_FIRE = 7.0f; | 16 | static float TIME_AMMO_BAY_FIRE = 7.0f; |
| 17 | 17 | ||
| 18 | //상훈짱 begin | 18 | //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> |
| 22 | 22 | ||
| 23 | #include <GameOS\render.hpp> | 23 | #include <GameOS\render.hpp> |
| 24 | extern bool g_bNoWeaponRangeCheck; | 24 | extern bool g_bNoWeaponRangeCheck; |
| 25 | //상훈짱 end | 25 | //sanghoon end |
| 26 | 26 | ||
| 27 | static void MakeStringCaps(char* buffer) | 27 | static void MakeStringCaps(char* buffer) |
| 28 | { | 28 | { |
| ... 526 unchanged lines ... | |||
| 555 | 555 | ||
| 556 | 556 | ||
| 557 | int rh=25;//row_height | 557 | int rh=25;//row_height |
| 558 | //16개의 row를 가질수 있는것으로 가정한다.(row포함) | 558 | //Assumes up to 16 rows (including header row). |
| 559 | // background boxes | 559 | // background boxes |
| 560 | 560 | ||
| 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 ... | |||
| 609 | 609 | ||
| 610 | DWORD hsh_color1=0,hsh_color2=0; | 610 | DWORD hsh_color1=0,hsh_color2=0; |
| 611 | 611 | ||
| 612 | //무기 발사가능 상태: 각각의 색상에 대해 정확히 정의 할것. | 612 | //Weapon fire-ready status: define exact color for each state. |
| 613 | 613 | ||
| 614 | //정상(타겟안에 있음)(발사가능) 0xFFFFFFFF | 614 | //Normal (target in range)(can fire) 0xFFFFFFFF |
| 615 | //정상(타겟밖에 있음)(발사가능) 0xFFFFFFFF | 615 | //Normal (target out of range)(can fire) 0xFFFFFFFF |
| 616 | //로딩중(발사 불가) 0xFFA0A0A0 | 616 | //Reloading (cannot fire) 0xFFA0A0A0 |
| 617 | //탄알이 떨어짐(발사불가) 0xFF808080 | 617 | //Out of ammo (cannot fire) 0xFF808080 |
| 618 | //고장남(발사불가) 0xFF606060 | 618 | //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"}; |
| 695 | 695 | ||
| 696 | 696 | ||
| 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_color | 700 | // MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo nogroup_color |
| ... 6 unchanged lines ... | |||
| 707 | 707 | ||
| 708 | Point3D numsize = m_Textures[20]->Size (); | 708 | Point3D numsize = m_Textures[20]->Size (); |
| 709 | 709 | ||
| 710 | //무기 이름을 표시한다. | 710 | //Display weapon name. |
| 711 | // MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo out_color | 711 | // 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 | } |
| 788 | 788 | ||
| 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 | } |
| 1 | #if !defined(__RECSCORE_CPP__) | 1 | #if !defined(__RECSCORE_CPP__) |
| 2 | #define __RECSCORE_CPP__ | 2 | #define __RECSCORE_CPP__ |
| 3 | 3 | ||
| ... 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 ... | |||
| 1990 | static SMSGFMT s_aKill[20][2] = { | 1990 | static 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 | }; |
| 2072 | 2072 | ||
| ... 4 unchanged lines ... | |||
| 2077 | static SMSGFMT s_aSuicide[2][2] = { | 2077 | static 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 | }; |
| 2087 | 2087 | ||
| ... 18 unchanged lines ... | |||
| 2106 | static SMSGFMT s_aShot[10][2] = { | 2106 | static 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 | }; |
| 2148 | 2148 | ||
| ... 1 unchanged lines ... | |||
| 2150 | static SMSGFMT s_aCTF[1][2] = { | 2150 | static 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 | }; |
| 2156 | static SMSGFMT s_aFBK[1][2] = { | 2156 | static 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 | }; |
| 2162 | static SMSGFMT s_aEBK[1][2] = { | 2162 | static 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 | }; |
| 2168 | const SMSGFMT* pcFMT; | 2168 | const SMSGFMT* pcFMT; |
| ... 1338 unchanged lines ... | |||
| 3507 | // | 3507 | // |
| 3508 | 3508 | ||
| 3509 | #endif // !defined(__RECSCORE_CPP__) | 3509 | #endif // !defined(__RECSCORE_CPP__) |
| 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(); |
| 1079 | 1079 | ||
| 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 // _DEBUG | 1294 | #endif // _DEBUG |
| 1 | #include"MW4AppHeaders.hpp" | 1 | #include"MW4AppHeaders.hpp" |
| 2 | #include<Windows.h> | 2 | #include<Windows.h> |
| 3 | 3 | ||
| 4 | // | 4 | // |
| 5 | //Do not use | 5 | //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 | |||
| 8 | 6 | ||
| 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 ... | |||
| 13 | typedef DWORD (*EBUPROC) (LPCTSTR lpRegKeyLocation, LPCTSTR lpEULAFileName, LPCSTR lpWarrantyFileName, BOOL fCheckForFirstRun); | 11 | typedef DWORD (*EBUPROC) (LPCTSTR lpRegKeyLocation, LPCTSTR lpEULAFileName, LPCSTR lpWarrantyFileName, BOOL fCheckForFirstRun); |
| 14 | 12 | ||
| 15 | // | 13 | // |
| 16 | //The game applications .RC file should define strings for the EULA and WARRANTY pathnames | 14 | //The game application's .RC file should define strings for the EULA and WARRANTY pathnames... |
| 17 | |||
| 18 | 15 | ||
| 19 | // | 16 | // |
| 20 | 17 | ||
| ... 10 unchanged lines ... | |||
| 31 | if (NULL == hMod) | 28 | if (NULL == hMod) |
| 32 | hMod = LoadLibrary("EBUEula.dll"); | 29 | hMod = LoadLibrary("EBUEula.dll"); |
| 33 | 30 | ||
| 34 | if (NULL == hMod) // cant attach to DLL | 31 | 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"); |
| 39 | 36 | ||
| 40 | if (NULL == pfnEBUEula) // cant find entry point | 37 | 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 ... | |||
| 46 | 43 | ||
| 47 | // | 44 | // |
| 48 | //This call enables both EULA and warranty accepting/viewing/printing. If your | 45 | //This call enables both EULA and warranty accepting/viewing/printing. If your |
| 49 | //game doesnt ship with a WARRANTY file, specifiy NULL instead of szWarranty | 46 | //game doesn't ship with a WARRANTY file, specifiy NULL instead of szWarranty... |
| 50 | 47 | ||
| 51 | 48 | //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 | |||
| 54 | 49 | ||
| 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 | } |
| 1 | //===========================================================================// | 1 | //===========================================================================// |
| 2 | // File: MW4Application.cpp // | 2 | // File: MW4Application.cpp // |
| 3 | //---------------------------------------------------------------------------// | 3 | //---------------------------------------------------------------------------// |
| ... 186 unchanged lines ... | |||
| 190 | extern bool(__cdecl *NoCDMessageFunction)(void); | 190 | extern bool(__cdecl *NoCDMessageFunction)(void); |
| 191 | 191 | ||
| 192 | extern bool gNoDialogs; | 192 | extern bool gNoDialogs; |
| 193 | //상훈.. begin | 193 | //sanghoon begin |
| 194 | extern bool use_shgui; | 194 | extern bool use_shgui; |
| 195 | extern int SCREENS; | 195 | extern int SCREENS; |
| 196 | //상훈.. end | 196 | //sanghoon end |
| 197 | 197 | ||
| 198 | bool gRunEula=true; | 198 | bool gRunEula=true; |
| 199 | bool gNoCD=false; | 199 | bool gNoCD=false; |
| ... 90 unchanged lines ... | |||
| 290 | 290 | ||
| 291 | 291 | ||
| 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 |
| 300 | 300 | ||
| 301 | EnterWindowMode(); | 301 | EnterWindowMode(); |
| 302 | } | 302 | } |
| ... 33 unchanged lines ... | |||
| 336 | { | 336 | { |
| 337 | //Original | 337 | //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 | //Original | 355 | //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); |
| 1090 | 1090 | ||
| 1091 | //상훈짱.. begin | 1091 | //sanghoon begin |
| 1092 | use_shgui=Environment.fullScreen?1:0; | 1092 | use_shgui=Environment.fullScreen?1:0; |
| 1093 | //상훈짱.. end | 1093 | //sanghoon end |
| 1094 | 1094 | ||
| 1095 | gNoAutoConfig= (strstr(all_lower, "-noautoconfig") != NULL); | 1095 | gNoAutoConfig= (strstr(all_lower, "-noautoconfig") != NULL); |
| 1096 | 1096 | ||
| ... 815 unchanged lines ... | |||
| 1912 | return g_nCTCL; | 1912 | return g_nCTCL; |
| 1913 | } | 1913 | } |
| 1914 | // jcem - end | 1914 | // jcem - end |
| 1 | // ctcl.cpp : Defines the entry point for the DLL application. | 1 | // ctcl.cpp : Defines the entry point for the DLL application. |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 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. |
| 1441 | 1441 | ||
| 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.) |
| 1445 | 1445 | ||
| 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 |
| 1451 | 1451 | ||
| 1452 | ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다. | 1452 | ==>Client has no waiting state as data is transferred immediately on startup. |
| 1453 | 1453 | ||
| 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()); |
| 1566 | 1566 | ||
| 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) |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 1 | #include "stdafx.h" | 1 | #include "stdafx.h" |
| 2 | 2 | ||
| 3 | #ifdef _DEBUG | 3 | #ifdef _DEBUG |
| ... 40 unchanged lines ... | |||
| 44 | 44 | ||
| 45 | long GetTotalSeconds(int nYear, int nMonth, int nDay) | 45 | long 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 |
| 67 | 67 | ||
| 68 | return lTotal; | 68 | return lTotal; |
| 69 | } | 69 | } |
| ... 119 unchanged lines ... | |||
| 189 | t = *localtime(&m_lTime); | 189 | t = *localtime(&m_lTime); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 1 | #if !defined(__CTIME__) | 1 | #if !defined(__CTIME__) |
| 2 | #define __CTIME__ | 2 | #define __CTIME__ |
| 3 | 3 | ||
| ... 12 unchanged lines ... | |||
| 16 | public: | 16 | public: |
| 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-1 | 20 | DWORD m_xDay: 5; // 2^0, 2^5-1 |
| 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 | 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 |
| 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 | 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 |
| ... 30 unchanged lines ... | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | #endif //!defined(__CTIME__) | 55 | #endif //!defined(__CTIME__) |
| 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 | } |
| 3673 | 3673 | ||
| ... 472 unchanged lines ... | |||
| 4146 | { | 4146 | { |
| 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); | 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); |
| 4148 | } | 4148 | } |
| 1 | #if !defined(__MUGSOCS__) | 1 | #if !defined(__MUGSOCS__) |
| 2 | #define __MUGSOCS__ | 2 | #define __MUGSOCS__ |
| 3 | 3 | ||
| ... 37 unchanged lines ... | |||
| 41 | #endif // !MAX_PACKET | 41 | #endif // !MAX_PACKET |
| 42 | #ifndef MAX_FTPBUF | 42 | #ifndef MAX_FTPBUF |
| 43 | #define MAX_FTPBUF 1024 | 43 | #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) + size | 45 | // 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size |
| 46 | #endif // !MAX_FTPBUF | 46 | #endif // !MAX_FTPBUF |
| 47 | 47 | ||
| ... 203 unchanged lines ... | |||
| 251 | 251 | ||
| 252 | #define ESTRF_USER_START 100 | 252 | #define ESTRF_USER_START 100 |
| 253 | 253 | ||
| 254 | #define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜 | 254 | #define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in |
| 255 | 255 | ||
| 256 | void Randomize(); | 256 | void Randomize(); |
| 257 | 257 | ||
| ... 10 unchanged lines ... | |||
| 268 | 268 | ||
| 269 | class CDAPacket : public SOCBase_Class | 269 | class CDAPacket : public SOCBase_Class |
| 270 | { | 270 | { |
| 271 | // Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터... | 271 | // Variable parameters in the tail portion after processing the packet header... |
| 272 | public: | 272 | public: |
| 273 | BYTE m_bCmd; | 273 | BYTE m_bCmd; |
| 274 | BYTE m_bReserved; | 274 | BYTE m_bReserved; |
| ... 86 unchanged lines ... | |||
| 361 | #define C_ROOM_MAKE 232 | 361 | #define C_ROOM_MAKE 232 |
| 362 | // s - name, s - password | 362 | // s - name, s - password |
| 363 | #define C_ROOM_JOIN 233 | 363 | #define C_ROOM_JOIN 233 |
| 364 | // d - number(Room을 떠나는 것은 -1), s - password | 364 | // 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 - number | 366 | // b - code(CSCODE_OK or error code), d - number |
| 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ | 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ |
| 368 | 368 | ||
| ... 15 unchanged lines ... | |||
| 384 | #define S_FTP 254 //... see ftp.txt | 384 | #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... |
| 386 | 386 | ||
| 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... |
| 396 | 396 | ||
| ... 96 unchanged lines ... | |||
| 493 | protected: | 493 | protected: |
| 494 | CSOC* m_pSOC; | 494 | CSOC* m_pSOC; |
| 495 | private: | 495 | private: |
| 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 ... | |||
| 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) | 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) |
| 588 | { | 588 | { |
| 589 | public: | 589 | public: |
| 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 WIN32 | 682 | #ifdef WIN32 |
| 683 | // 보통 Login과정에 쓰이는 윈도우 핸들 | 683 | // Window handle typically used during Login process |
| 684 | HWND m_hWndOwner; | 684 | HWND m_hWndOwner; |
| 685 | #endif // WIN32 | 685 | #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 | }; |
| 1270 | 1270 | ||
| 1271 | #endif // !defined(__MUGSOCS__) | 1271 | #endif // !defined(__MUGSOCS__) |
| 1 | #ifdef _DEBUG | 1 | #ifdef _DEBUG |
| 2 | 2 | ||
| 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]; |
| 8 | 8 | ||
| 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); |
| 10 | 10 | ||
| 11 | #ifdef WIN32 | 11 | #ifdef WIN32 |
| 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; | 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; |
| ... 93 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | #endif // _DEBUG | 107 | #endif // _DEBUG |
| 108 | 108 | ||
| 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(); |
| 1079 | 1079 | ||
| 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 // _DEBUG | 1294 | #endif // _DEBUG |
| 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"); |
| 3094 | 3094 | ||
| 3095 | if (NULL == hMod) // cant attach to DLL | 3095 | 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"); |
| 3100 | 3100 | ||
| 3101 | if (NULL == pfnEBUEula) // cant find entry point | 3101 | 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 ... | |||
| 3107 | 3107 | ||
| 3108 | // | 3108 | // |
| 3109 | //This call enables both EULA and warranty accepting/viewing/printing. If your | 3109 | //This call enables both EULA and warranty accepting/viewing/printing. If your |
| 3110 | //game doesnt ship with a WARRANTY file, specifiy NULL instead of szWarranty | 3110 | //game doesn't ship with a WARRANTY file, specifiy NULL instead of szWarranty... |
| 3111 | 3111 | ||
| 3112 | 3112 | //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 | |||
| 3115 | 3113 | ||
| 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 ... | |||
| 3157 | SCRIPTCALLBACK(InitConnectionWizard) { gosASSERT(FALSE); return 0; } | 3155 | SCRIPTCALLBACK(InitConnectionWizard) { gosASSERT(FALSE); return 0; } |
| 3158 | SCRIPTCALLBACK(LoadMPConnectionSettings) { gosASSERT(FALSE); return 0; } | 3156 | SCRIPTCALLBACK(LoadMPConnectionSettings) { gosASSERT(FALSE); return 0; } |
| 3159 | SCRIPTCALLBACK(CancelDialup) { gosASSERT(FALSE); return 0; } | 3157 | SCRIPTCALLBACK(CancelDialup) { gosASSERT(FALSE); return 0; } |
| 1 | // ctcl.cpp : Defines the entry point for the DLL application. | 1 | // ctcl.cpp : Defines the entry point for the DLL application. |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 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. |
| 1442 | 1442 | ||
| 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.) |
| 1446 | 1446 | ||
| 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 |
| 1452 | 1452 | ||
| 1453 | ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다. | 1453 | ==>Client has no waiting state as data is transferred immediately on startup. |
| 1454 | 1454 | ||
| 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()); |
| 1567 | 1567 | ||
| 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) |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 1 | #include "stdafx.h" | 1 | #include "stdafx.h" |
| 2 | 2 | ||
| 3 | #ifdef _DEBUG | 3 | #ifdef _DEBUG |
| ... 40 unchanged lines ... | |||
| 44 | 44 | ||
| 45 | long GetTotalSeconds(int nYear, int nMonth, int nDay) | 45 | long 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 |
| 67 | 67 | ||
| 68 | return lTotal; | 68 | return lTotal; |
| 69 | } | 69 | } |
| ... 119 unchanged lines ... | |||
| 189 | t = *localtime(&m_lTime); | 189 | t = *localtime(&m_lTime); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 1 | #if !defined(__CTIME__) | 1 | #if !defined(__CTIME__) |
| 2 | #define __CTIME__ | 2 | #define __CTIME__ |
| 3 | 3 | ||
| ... 12 unchanged lines ... | |||
| 16 | public: | 16 | public: |
| 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-1 | 20 | DWORD m_xDay: 5; // 2^0, 2^5-1 |
| 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 | 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 |
| 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 | 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 |
| ... 30 unchanged lines ... | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | #endif //!defined(__CTIME__) | 55 | #endif //!defined(__CTIME__) |
| 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 | } |
| 3673 | 3673 | ||
| ... 472 unchanged lines ... | |||
| 4146 | { | 4146 | { |
| 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); | 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); |
| 4148 | } | 4148 | } |
| 1 | #if !defined(__MUGSOCS__) | 1 | #if !defined(__MUGSOCS__) |
| 2 | #define __MUGSOCS__ | 2 | #define __MUGSOCS__ |
| 3 | 3 | ||
| ... 37 unchanged lines ... | |||
| 41 | #endif // !MAX_PACKET | 41 | #endif // !MAX_PACKET |
| 42 | #ifndef MAX_FTPBUF | 42 | #ifndef MAX_FTPBUF |
| 43 | #define MAX_FTPBUF 1024 | 43 | #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) + size | 45 | // 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size |
| 46 | #endif // !MAX_FTPBUF | 46 | #endif // !MAX_FTPBUF |
| 47 | 47 | ||
| ... 203 unchanged lines ... | |||
| 251 | 251 | ||
| 252 | #define ESTRF_USER_START 100 | 252 | #define ESTRF_USER_START 100 |
| 253 | 253 | ||
| 254 | #define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜 | 254 | #define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in |
| 255 | 255 | ||
| 256 | void Randomize(); | 256 | void Randomize(); |
| 257 | 257 | ||
| ... 10 unchanged lines ... | |||
| 268 | 268 | ||
| 269 | class CDAPacket : public SOCBase_Class | 269 | class CDAPacket : public SOCBase_Class |
| 270 | { | 270 | { |
| 271 | // Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터... | 271 | // Variable parameters in the tail portion after processing the packet header... |
| 272 | public: | 272 | public: |
| 273 | BYTE m_bCmd; | 273 | BYTE m_bCmd; |
| 274 | BYTE m_bReserved; | 274 | BYTE m_bReserved; |
| ... 86 unchanged lines ... | |||
| 361 | #define C_ROOM_MAKE 232 | 361 | #define C_ROOM_MAKE 232 |
| 362 | // s - name, s - password | 362 | // s - name, s - password |
| 363 | #define C_ROOM_JOIN 233 | 363 | #define C_ROOM_JOIN 233 |
| 364 | // d - number(Room을 떠나는 것은 -1), s - password | 364 | // 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 - number | 366 | // b - code(CSCODE_OK or error code), d - number |
| 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ | 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ |
| 368 | 368 | ||
| ... 15 unchanged lines ... | |||
| 384 | #define S_FTP 254 //... see ftp.txt | 384 | #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... |
| 386 | 386 | ||
| 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... |
| 396 | 396 | ||
| ... 96 unchanged lines ... | |||
| 493 | protected: | 493 | protected: |
| 494 | CSOC* m_pSOC; | 494 | CSOC* m_pSOC; |
| 495 | private: | 495 | private: |
| 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 ... | |||
| 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) | 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) |
| 588 | { | 588 | { |
| 589 | public: | 589 | public: |
| 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 WIN32 | 682 | #ifdef WIN32 |
| 683 | // 보통 Login과정에 쓰이는 윈도우 핸들 | 683 | // Window handle typically used during Login process |
| 684 | HWND m_hWndOwner; | 684 | HWND m_hWndOwner; |
| 685 | #endif // WIN32 | 685 | #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 | }; |
| 1270 | 1270 | ||
| 1271 | #endif // !defined(__MUGSOCS__) | 1271 | #endif // !defined(__MUGSOCS__) |
| 1 | #ifdef _DEBUG | 1 | #ifdef _DEBUG |
| 2 | 2 | ||
| 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]; |
| 8 | 8 | ||
| 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); |
| 10 | 10 | ||
| 11 | #ifdef WIN32 | 11 | #ifdef WIN32 |
| 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; | 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; |
| ... 93 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | #endif // _DEBUG | 107 | #endif // _DEBUG |
| 108 | 108 | ||
| 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(); |
| 1079 | 1079 | ||
| 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 // _DEBUG | 1294 | #endif // _DEBUG |
| 1 | #include "stdafx.h" | 1 | #include "stdafx.h" |
| 2 | #include "cspcfd.h" | 2 | #include "cspcfd.h" |
| 3 | 3 | ||
| ... 76 unchanged lines ... | |||
| 80 | m_ofn.lpstrCustomFilter = p; | 80 | m_ofn.lpstrCustomFilter = p; |
| 81 | 81 | ||
| 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 // 파일 이름 Edit | 114 | //0x480 // File Name Edit |
| 115 | HWND hReadOnly = ::GetDlgItem(hParent, 0x0410); // Read Only | 115 | 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 | } |
| 1 | #if !defined(__CSpcFileDialog__) | 1 | #if !defined(__CSpcFileDialog__) |
| 2 | #define __CSpcFileDialog__ | 2 | #define __CSpcFileDialog__ |
| 3 | 3 | ||
| ... 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)); |
| 28 | 28 | ||
| ... 17 unchanged lines ... | |||
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | #endif // !defined(__CSpcFileDialog__) | 48 | #endif // !defined(__CSpcFileDialog__) |
| 1 | #if !defined(__RECSCORE_CPP__) | 1 | #if !defined(__RECSCORE_CPP__) |
| 2 | #define __RECSCORE_CPP__ | 2 | #define __RECSCORE_CPP__ |
| 3 | 3 | ||
| ... 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 ... | |||
| 1996 | static SMSGFMT s_aKill[20][2] = { | 1996 | static 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 | }; |
| 2078 | 2078 | ||
| ... 4 unchanged lines ... | |||
| 2083 | static SMSGFMT s_aSuicide[2][2] = { | 2083 | static 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 | }; |
| 2093 | 2093 | ||
| ... 18 unchanged lines ... | |||
| 2112 | static SMSGFMT s_aShot[10][2] = { | 2112 | static 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 | }; |
| 2154 | 2154 | ||
| ... 1 unchanged lines ... | |||
| 2156 | static SMSGFMT s_aCTF[1][2] = { | 2156 | static 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 | }; |
| 2162 | static SMSGFMT s_aFBK[1][2] = { | 2162 | static 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 | }; |
| 2168 | static SMSGFMT s_aEBK[1][2] = { | 2168 | static 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 | // |
| 3537 | 3537 | ||
| 3538 | #endif // !defined(__RECSCORE_CPP__) | 3538 | #endif // !defined(__RECSCORE_CPP__) |
| 1 | /********************************************************************** | 1 | /********************************************************************** |
| 2 | 2 | ||
| 3 | FILE: IDataChannel.h | 3 | FILE: IDataChannel.h |
| ... 24 unchanged lines ... | |||
| 28 | // forward declaration | 28 | // forward declaration |
| 29 | class FPInterface; | 29 | class FPInterface; |
| 30 | 30 | ||
| 31 | //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | 31 | //---------------------------------------------------------------------- |
| 32 | // A data channel is a homogeneous collection of objects of a user defined | 32 | // 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)) |
| 54 | 54 | ||
| 55 | //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | 55 | //---------------------------------------------------------------------- |
| 56 | // Face-data channel interface | 56 | // Face-data channel interface |
| 57 | // | 57 | // |
| 58 | // This is an abstraction of a collection of data objects that is | 58 | // 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)) |
| 151 | 151 | ||
| 152 | //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | 152 | //---------------------------------------------------------------------- |
| 153 | // Interface class that allows to execute a callback method (Proc) for all | 153 | // 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 ... | |||
| 179 | 179 | ||
| 180 | 180 | ||
| 181 | #endif | 181 | #endif |
| 1 | /********************************************************************** | 1 | /********************************************************************** |
| 2 | 2 | ||
| 3 | FILE: IFaceDataMgr.h | 3 | 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) |
| 23 | 23 | ||
| 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 ifc | 26 | // Objects that want to have face-data channels should implement this ifc |
| 27 | // | 27 | // |
| ... 53 unchanged lines ... | |||
| 81 | }; | 81 | }; |
| 82 | 82 | ||
| 83 | #endif | 83 | #endif |
| 1 | /********************************************************************** | 1 | /********************************************************************** |
| 2 | 2 | ||
| 3 | FILE: IMeshFaceDataMgrmpl.h | 3 | FILE: IMeshFaceDataMgrmpl.h |
| ... 16 unchanged lines ... | |||
| 20 | #include <map> | 20 | #include <map> |
| 21 | #include "export.h" | 21 | #include "export.h" |
| 22 | 22 | ||
| 23 | //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | 23 | //---------------------------------------------------------------------- |
| 24 | // Face-data management implementation | 24 | // Face-data management implementation |
| 25 | //________________________________________________________________________ | 25 | //________________________________________________________________________ |
| 26 | class IFaceDataMgrImpl : public IFaceDataMgr | 26 | class IFaceDataMgrImpl : public IFaceDataMgr |
| ... 43 unchanged lines ... | |||
| 70 | 70 | ||
| 71 | 71 | ||
| 72 | #endif | 72 | #endif |
| 1 | /********************************************************************** | 1 | /********************************************************************** |
| 2 | 2 | ||
| 3 | FILE: IPipelineClient.h | 3 | 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) |
| 22 | 22 | ||
| 23 | //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | 23 | //---------------------------------------------------------------------- |
| 24 | // This interface should be implemented by objects that flow up the | 24 | // This interface should be implemented by objects that flow up the |
| 25 | // geometry pipeline and have data members that belong to the pipeline | 25 | // 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 | }; |
| 44 | 44 | ||
| 45 | #endif | 45 | #endif |
| 1 | /********************************************************************** | 1 | /********************************************************************** |
| 2 | *< | 2 | *< |
| 3 | FILE: osnap.h | 3 | 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); |
| 97 | 97 | ||
| 98 | virtual TSTR *snapname(int index)=0; // the snap뭩 name to be displayed in the UI | 98 | 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 UI | 99 | 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 supports | 100 | 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 subsnaps | 101 | 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 ... | |||
| 128 | 128 | ||
| 129 | 129 | ||
| 130 | #endif // _OSNAP_H_ | 130 | #endif // _OSNAP_H_ |
| 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 | } |
| 211 | 211 | ||
| 212 | //상훈짱 begin | 212 | //sanghoon begin |
| 213 | #include <ddraw.h> | 213 | #include <ddraw.h> |
| 214 | #include <d3d.h> | 214 | #include <d3d.h> |
| 215 | 215 | ||
| 216 | #include "GameOS\render.hpp" | 216 | #include "GameOS\render.hpp" |
| 217 | extern IDirectDrawSurface7* SH_TargetBufferSurface; | 217 | extern IDirectDrawSurface7* SH_TargetBufferSurface; |
| 218 | extern IDirect3DDevice7* d3dDevice7; | 218 | extern IDirect3DDevice7* d3dDevice7; |
| 219 | //상훈짱 end | 219 | //sanghoon end |
| 220 | 220 | ||
| 221 | 221 | ||
| 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; |
| 253 | 253 | ||
| 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 |
| 333 | 333 | ||
| 334 | sceneCamera->Execute(); | 334 | sceneCamera->Execute(); |
| 335 | 335 | ||
| ... 17 unchanged lines ... | |||
| 353 | } | 353 | } |
| 354 | } | 354 | } |
| 355 | } | 355 | } |
| 356 | //상훈 앞 | 356 | //sanghoon begin |
| 357 | #if 1 | 357 | #if 1 |
| 358 | //여기에 swirling effect를 그린다. | 358 | //Draw swirling effect here. |
| 359 | extern LPDIRECT3DDEVICE7 d3dDevice7; | 359 | extern LPDIRECT3DDEVICE7 d3dDevice7; |
| 360 | 360 | ||
| 361 | extern IDirectDrawSurface7* SH_SwirlTexture; | 361 | extern IDirectDrawSurface7* SH_SwirlTexture; |
| ... 7 unchanged lines ... | |||
| 369 | preload_isdeathmode=true; | 369 | preload_isdeathmode=true; |
| 370 | } | 370 | } |
| 371 | #endif | 371 | #endif |
| 372 | //상훈 뒤 | 372 | //sanghoon end |
| 373 | //상훈.. end | 373 | //sanghoon end |
| 374 | } | 374 | } |
| 375 | 375 | ||
| 376 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 376 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ... 446 unchanged lines ... | |||
| 823 | { | 823 | { |
| 824 | Verify(IsDerivedFrom(DefaultData)); | 824 | Verify(IsDerivedFrom(DefaultData)); |
| 825 | } | 825 | } |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 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 ... | |||
| 216 | 216 | ||
| 217 | m_acceptingElement = NULL; | 217 | m_acceptingElement = NULL; |
| 218 | 218 | ||
| 219 | //상훈 앞 | 219 | //sanghoon begin |
| 220 | m_hsh_special_flag=false; | 220 | m_hsh_special_flag=false; |
| 221 | //상훈 뒤 | 221 | //sanghoon end |
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 224 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ... 227 unchanged lines ... | |||
| 452 | return (camera != this) ? -1 : 0; | 452 | return (camera != this) ? -1 : 0; |
| 453 | } | 453 | } |
| 454 | 454 | ||
| 455 | //상훈 앞 | 455 | //sanghoon begin |
| 456 | void __cdecl ClearTargetCameraBackBuffer(); | 456 | void __cdecl ClearTargetCameraBackBuffer(); |
| 457 | //상훈 뒤 | 457 | //sanghoon end |
| 458 | 458 | ||
| 459 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 459 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 460 | // | 460 | // |
| ... 85 unchanged lines ... | |||
| 546 | //----------------------------------------- | 546 | //----------------------------------------- |
| 547 | // | 547 | // |
| 548 | 548 | ||
| 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 |
| 554 | 554 | ||
| 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 |
| 636 | extern bool sh_isdeathmode; | 636 | extern bool sh_isdeathmode; |
| 637 | if(!sh_isdeathmode) | 637 | if(!sh_isdeathmode) |
| 638 | m_clipper->RenderNow(); | 638 | m_clipper->RenderNow(); |
| ... 295 unchanged lines ... | |||
| 934 | 934 | ||
| 935 | return NULL; | 935 | return NULL; |
| 936 | } | 936 | } |
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 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 | }; |
| 294 | 294 | ||
| 295 | } | 295 | } |
| 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(); |
| 1079 | 1079 | ||
| 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 // _DEBUG | 1294 | #endif // _DEBUG |
| 1 | // ctcl.cpp : Defines the entry point for the DLL application. | 1 | // ctcl.cpp : Defines the entry point for the DLL application. |
| 2 | // | 2 | // |
| 3 | 3 | ||
| ... 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. |
| 1442 | 1442 | ||
| 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.) |
| 1446 | 1446 | ||
| 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 |
| 1452 | 1452 | ||
| 1453 | ==>클라이언트는 실행즉시 데이타들이 전달되므로 대기상태가 없다. | 1453 | ==>Client has no waiting state as data is transferred immediately on startup. |
| 1454 | 1454 | ||
| 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()); |
| 1567 | 1567 | ||
| 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) |
| 1 | #if !defined(__CTCL_H__) | 1 | #if !defined(__CTCL_H__) |
| 2 | #define __CTCL_H__ | 2 | #define __CTCL_H__ |
| 3 | 3 | ||
| ... 38 unchanged lines ... | |||
| 42 | const char* m_pcsz; | 42 | const char* m_pcsz; |
| 43 | 43 | ||
| 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting | 44 | int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting |
| 45 | int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting | 45 | 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" |
| 173 | 173 | ||
| 174 | #endif // !defined(__CTCL_H__) | 174 | #endif // !defined(__CTCL_H__) |
| 1 | #include "stdafx.h" | 1 | #include "stdafx.h" |
| 2 | 2 | ||
| 3 | #ifdef _DEBUG | 3 | #ifdef _DEBUG |
| ... 40 unchanged lines ... | |||
| 44 | 44 | ||
| 45 | long GetTotalSeconds(int nYear, int nMonth, int nDay) | 45 | long 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 |
| 67 | 67 | ||
| 68 | return lTotal; | 68 | return lTotal; |
| 69 | } | 69 | } |
| ... 119 unchanged lines ... | |||
| 189 | t = *localtime(&m_lTime); | 189 | t = *localtime(&m_lTime); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 1 | #if !defined(__CTIME__) | 1 | #if !defined(__CTIME__) |
| 2 | #define __CTIME__ | 2 | #define __CTIME__ |
| 3 | 3 | ||
| ... 12 unchanged lines ... | |||
| 16 | public: | 16 | public: |
| 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-1 | 20 | DWORD m_xDay: 5; // 2^0, 2^5-1 |
| 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 | 21 | DWORD m_xMonth: 4; // 2^5, 2^4-1 |
| 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 | 22 | DWORD m_xYear: TIMEDATE_YEAR_BITS; // from 1900-2155 // 2^9, 2^8-1 |
| ... 30 unchanged lines ... | |||
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | #endif //!defined(__CTIME__) | 55 | #endif //!defined(__CTIME__) |
| 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 | } |
| 3673 | 3673 | ||
| ... 472 unchanged lines ... | |||
| 4146 | { | 4146 | { |
| 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); | 4147 | return OnExceptions(pSOC, pSOC->GetExceptionCode(nErrorCode), bDropIfErrorOccur); |
| 4148 | } | 4148 | } |
| 1 | #if !defined(__MUGSOCS__) | 1 | #if !defined(__MUGSOCS__) |
| 2 | #define __MUGSOCS__ | 2 | #define __MUGSOCS__ |
| 3 | 3 | ||
| ... 37 unchanged lines ... | |||
| 41 | #endif // !MAX_PACKET | 41 | #endif // !MAX_PACKET |
| 42 | #ifndef MAX_FTPBUF | 42 | #ifndef MAX_FTPBUF |
| 43 | #define MAX_FTPBUF 1024 | 43 | #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) + size | 45 | // 9+size==sizeof(bCmd) + sizeof(FTID) + sizeof(size) + size |
| 46 | #endif // !MAX_FTPBUF | 46 | #endif // !MAX_FTPBUF |
| 47 | 47 | ||
| ... 203 unchanged lines ... | |||
| 251 | 251 | ||
| 252 | #define ESTRF_USER_START 100 | 252 | #define ESTRF_USER_START 100 |
| 253 | 253 | ||
| 254 | #define ESTRF_PASSWORDCHANGED 110 // 로그인하고 있는 동안에 패스워드가 바뀜 | 254 | #define ESTRF_PASSWORDCHANGED 110 // Password changed while logged in |
| 255 | 255 | ||
| 256 | void Randomize(); | 256 | void Randomize(); |
| 257 | 257 | ||
| ... 10 unchanged lines ... | |||
| 268 | 268 | ||
| 269 | class CDAPacket : public SOCBase_Class | 269 | class CDAPacket : public SOCBase_Class |
| 270 | { | 270 | { |
| 271 | // Packet의 앞 부분을 처리하고 난 뒷 부분의 가변 파라미터... | 271 | // Variable parameters in the tail portion after processing the packet header... |
| 272 | public: | 272 | public: |
| 273 | BYTE m_bCmd; | 273 | BYTE m_bCmd; |
| 274 | BYTE m_bReserved; | 274 | BYTE m_bReserved; |
| ... 86 unchanged lines ... | |||
| 361 | #define C_ROOM_MAKE 232 | 361 | #define C_ROOM_MAKE 232 |
| 362 | // s - name, s - password | 362 | // s - name, s - password |
| 363 | #define C_ROOM_JOIN 233 | 363 | #define C_ROOM_JOIN 233 |
| 364 | // d - number(Room을 떠나는 것은 -1), s - password | 364 | // 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 - number | 366 | // b - code(CSCODE_OK or error code), d - number |
| 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ | 367 | #define C_ROOM_UPDS 234 // CSCODE_... + @ |
| 368 | 368 | ||
| ... 15 unchanged lines ... | |||
| 384 | #define S_FTP 254 //... see ftp.txt | 384 | #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... |
| 386 | 386 | ||
| 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... |
| 396 | 396 | ||
| ... 96 unchanged lines ... | |||
| 493 | protected: | 493 | protected: |
| 494 | CSOC* m_pSOC; | 494 | CSOC* m_pSOC; |
| 495 | private: | 495 | private: |
| 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 ... | |||
| 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) | 587 | class CFileTransfer : public TDBLNK(CFileTransfer*) |
| 588 | { | 588 | { |
| 589 | public: | 589 | public: |
| 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 WIN32 | 682 | #ifdef WIN32 |
| 683 | // 보통 Login과정에 쓰이는 윈도우 핸들 | 683 | // Window handle typically used during Login process |
| 684 | HWND m_hWndOwner; | 684 | HWND m_hWndOwner; |
| 685 | #endif // WIN32 | 685 | #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 | }; |
| 1270 | 1270 | ||
| 1271 | #endif // !defined(__MUGSOCS__) | 1271 | #endif // !defined(__MUGSOCS__) |
| 1 | #ifdef _DEBUG | 1 | #ifdef _DEBUG |
| 2 | 2 | ||
| 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]; |
| 8 | 8 | ||
| 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); |
| 10 | 10 | ||
| 11 | #ifdef WIN32 | 11 | #ifdef WIN32 |
| 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; | 12 | return ::MessageBox(NULL, szBuf, pcszExpr, MB_YESNO) == IDYES; |
| ... 93 unchanged lines ... | |||
| 106 | 106 | ||
| 107 | #endif // _DEBUG | 107 | #endif // _DEBUG |
| 108 | 108 | ||