Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bdc9050199 | |||
|
|
dfe0baabce | ||
|
|
2fe362e0a9 | ||
| 00c5be4d8a | |||
| d3966d971f | |||
|
|
64d1cc35c1 | ||
|
|
1eda856283 |
@@ -20,12 +20,30 @@ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo,Release
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
|
||||
add_compile_definitions(UNICODE _UNICODE)
|
||||
add_compile_definitions("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:__int64=long long>")
|
||||
add_compile_options("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-mssse3>")
|
||||
if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||
endif()
|
||||
add_compile_definitions(UNICODE _UNICODE)
|
||||
add_compile_definitions("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:__int64=long long>")
|
||||
add_compile_options("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-mssse3>")
|
||||
if(MSVC)
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
|
||||
endif()
|
||||
|
||||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
||||
add_compile_options(/MP)
|
||||
add_compile_definitions(UNICODE _UNICODE)
|
||||
add_compile_definitions("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:__int64=long long>")
|
||||
add_compile_options("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-mssse3>")
|
||||
if(MSVC)
|
||||
add_compile_options(/MP)
|
||||
endif()
|
||||
|
||||
add_compile_definitions(UNICODE _UNICODE)
|
||||
add_compile_definitions("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:__int64=long long>")
|
||||
add_compile_options("$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-mssse3>")
|
||||
if(MSVC)
|
||||
add_compile_definitions(UNICODE _UNICODE)
|
||||
endif()
|
||||
|
||||
5
extern/include/python/cpython/pydebug.h
vendored
5
extern/include/python/cpython/pydebug.h
vendored
@@ -13,7 +13,12 @@ Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag;
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag;
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag;
|
||||
#if defined(__MINGW32__)
|
||||
PyAPI_FUNC(int*) M2_GetPyFrozenFlagPtr(void);
|
||||
#define Py_FrozenFlag (*M2_GetPyFrozenFlagPtr())
|
||||
#else
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag;
|
||||
#endif
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag;
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag;
|
||||
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory;
|
||||
|
||||
2
extern/include/python/python.h
vendored
Normal file
2
extern/include/python/python.h
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
#pragma once
|
||||
#include "Python.h"
|
||||
1
extern/include/utf8.h
vendored
1
extern/include/utf8.h
vendored
@@ -1,3 +1,4 @@
|
||||
#include <cstdint>
|
||||
#pragma once
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
6
extern/library/DirectX/CMakeLists.txt
vendored
6
extern/library/DirectX/CMakeLists.txt
vendored
@@ -1,3 +1,7 @@
|
||||
add_library(DirectX INTERFACE)
|
||||
target_include_directories(DirectX INTERFACE "${CMAKE_SOURCE_DIR}/extern/include")
|
||||
target_link_libraries(DirectX INTERFACE "${CMAKE_CURRENT_LIST_DIR}/d3d9.lib" "${CMAKE_CURRENT_LIST_DIR}/d3dx9.lib" "${CMAKE_CURRENT_LIST_DIR}/dinput8.lib" "${CMAKE_CURRENT_LIST_DIR}/dxguid.lib")
|
||||
if(MSVC)
|
||||
target_link_libraries(DirectX INTERFACE "${CMAKE_CURRENT_LIST_DIR}/d3d9.lib" "${CMAKE_CURRENT_LIST_DIR}/d3dx9.lib" "${CMAKE_CURRENT_LIST_DIR}/dinput8.lib" "${CMAKE_CURRENT_LIST_DIR}/dxguid.lib")
|
||||
else()
|
||||
target_link_libraries(DirectX INTERFACE "${CMAKE_CURRENT_LIST_DIR}/d3d9.lib" "${CMAKE_CURRENT_LIST_DIR}/d3dx9.lib" "${CMAKE_CURRENT_LIST_DIR}/dinput8.lib")
|
||||
endif()
|
||||
|
||||
18
extern/library/Python/CMakeLists.txt
vendored
18
extern/library/Python/CMakeLists.txt
vendored
@@ -1,7 +1,15 @@
|
||||
add_library(Python INTERFACE)
|
||||
target_include_directories(Python INTERFACE "${CMAKE_SOURCE_DIR}/extern/include")
|
||||
target_link_libraries(Python INTERFACE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/python314_static.lib"
|
||||
pathcch
|
||||
bcrypt
|
||||
)
|
||||
if(MSVC)
|
||||
target_link_libraries(Python INTERFACE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/python314_static.lib"
|
||||
pathcch
|
||||
bcrypt
|
||||
)
|
||||
else()
|
||||
target_link_libraries(Python INTERFACE
|
||||
"${CMAKE_CURRENT_LIST_DIR}/libpython314.dll.a"
|
||||
pathcch
|
||||
bcrypt
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(AudioLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(AudioLib
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <cstdint>
|
||||
#pragma once
|
||||
#define MA_NO_WASAPI
|
||||
#define MA_ENABLE_DSOUND
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <cstdint>
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(Discord STATIC ${FILE_SOURCES})
|
||||
|
||||
# target_link_libraries(Discord
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Use tea.cpp from EterBase instead of maintaining a local copy
|
||||
list(APPEND FILE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../EterBase/tea.cpp")
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EffectLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EffectLib
|
||||
|
||||
@@ -217,7 +217,7 @@ extern BOOL GetTokenTimeEventFloat(CTextFileLoader & rTextFileLoader, const char
|
||||
template <typename T>
|
||||
void InsertItemTimeEvent(std::vector<CTimeEvent<T> >* pTable, float fTime, T fValue)
|
||||
{
|
||||
typedef std::vector<CTimeEvent<T> >::iterator iterator;
|
||||
typedef typename std::vector<CTimeEvent<T> >::iterator iterator;
|
||||
|
||||
iterator itor = std::lower_bound(pTable->begin(), pTable->end(), fTime);
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterBase STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterBase
|
||||
|
||||
@@ -19,7 +19,6 @@ extern void Tracenf(const char* c_szFormat, ...);
|
||||
extern void Tracef(const char* c_szFormat, ...);
|
||||
extern void TraceError(const char* c_szFormat, ...);
|
||||
extern void TraceErrorWithoutEnter(const char* c_szFormat, ...);
|
||||
// MR-11: Separate packet dump log from the main log file
|
||||
extern void TempTrace(const char* c_szMsg, bool errType = false);
|
||||
extern void TempTracef(const char* c_szFormat, bool errType = false, ...);
|
||||
extern void TempTracen(const char* c_szMsg, bool errType = false);
|
||||
@@ -27,13 +26,12 @@ extern void TempTracenf(const char* c_szFormat, bool errType = false, ...);
|
||||
|
||||
extern void PacketDump(const char* c_szMsg);
|
||||
extern void PacketDumpf(const char* c_szFormat, ...);
|
||||
// MR-11: -- END OF -- Separate packet dump log from the main log file
|
||||
|
||||
extern void LogBox(const char* c_szMsg, const char * c_szCaption = NULL, HWND hWnd = NULL);
|
||||
extern void LogBox(const char* c_szMsg, const char* c_szCaption = NULL, HWND hWnd = NULL);
|
||||
extern void LogBoxf(const char* c_szMsg, ...);
|
||||
|
||||
extern void LogFile(const char* c_szMsg);
|
||||
extern void LogFilef(const char * c_szMessage, ...);
|
||||
extern void LogFilef(const char* c_szMessage, ...);
|
||||
extern void OpenConsoleWindow(void);
|
||||
extern void CloseConsoleWindow();
|
||||
extern void SetupLog(void);
|
||||
@@ -43,12 +41,12 @@ extern void CloseLogFile();
|
||||
|
||||
extern HWND g_PopupHwnd;
|
||||
|
||||
#define CHECK_RETURN(flag, string) \
|
||||
if (flag) \
|
||||
{ \
|
||||
LogBox(string); \
|
||||
return; \
|
||||
} \
|
||||
#define CHECK_RETURN(flag, string) \
|
||||
if (flag) \
|
||||
{ \
|
||||
LogBox(string); \
|
||||
return; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
#pragma once
|
||||
#include "..\StdAfx.h"
|
||||
#include "../StdAfx.h"
|
||||
|
||||
@@ -3,83 +3,80 @@
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
template <typename T> class CSingleton
|
||||
{
|
||||
static T * ms_singleton;
|
||||
|
||||
public:
|
||||
template <typename T> class CSingleton
|
||||
{
|
||||
static T* ms_singleton;
|
||||
|
||||
public:
|
||||
CSingleton()
|
||||
{
|
||||
{
|
||||
assert(!ms_singleton);
|
||||
intptr_t offset = (intptr_t) (T*) 1 - (intptr_t) (CSingleton <T>*) (T*) 1;
|
||||
ms_singleton = (T*) ((intptr_t) this + offset);
|
||||
}
|
||||
intptr_t offset = (intptr_t)(T*)1 - (intptr_t)(CSingleton<T>*)(T*)1;
|
||||
ms_singleton = (T*)((intptr_t)this + offset);
|
||||
}
|
||||
|
||||
virtual ~CSingleton()
|
||||
{
|
||||
{
|
||||
assert(ms_singleton);
|
||||
ms_singleton = 0;
|
||||
ms_singleton = 0;
|
||||
}
|
||||
|
||||
__forceinline static T & Instance()
|
||||
__forceinline static T& Instance()
|
||||
{
|
||||
assert(ms_singleton);
|
||||
return (*ms_singleton);
|
||||
}
|
||||
|
||||
__forceinline static T * InstancePtr()
|
||||
{
|
||||
__forceinline static T* InstancePtr()
|
||||
{
|
||||
return (ms_singleton);
|
||||
}
|
||||
|
||||
__forceinline static T & instance()
|
||||
__forceinline static T& instance()
|
||||
{
|
||||
assert(ms_singleton);
|
||||
return (*ms_singleton);
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T> T * CSingleton <T>::ms_singleton = 0;
|
||||
template <typename T> T* CSingleton<T>::ms_singleton = 0;
|
||||
|
||||
//
|
||||
// singleton for non-hungarian
|
||||
//
|
||||
template <typename T> class singleton
|
||||
{
|
||||
static T * ms_singleton;
|
||||
|
||||
public:
|
||||
{
|
||||
static T* ms_singleton;
|
||||
|
||||
public:
|
||||
singleton()
|
||||
{
|
||||
{
|
||||
assert(!ms_singleton);
|
||||
intptr_t offset = (intptr_t) (T*) 1 - (intptr_t) (singleton <T>*) (T*) 1;
|
||||
ms_singleton = (T*) ((intptr_t) this + offset);
|
||||
}
|
||||
intptr_t offset = (intptr_t)(T*)1 - (intptr_t)(singleton<T>*)(T*)1;
|
||||
ms_singleton = (T*)((intptr_t)this + offset);
|
||||
}
|
||||
|
||||
virtual ~singleton()
|
||||
{
|
||||
{
|
||||
assert(ms_singleton);
|
||||
ms_singleton = 0;
|
||||
ms_singleton = 0;
|
||||
}
|
||||
|
||||
__forceinline static T & Instance()
|
||||
__forceinline static T& Instance()
|
||||
{
|
||||
assert(ms_singleton);
|
||||
return (*ms_singleton);
|
||||
}
|
||||
|
||||
__forceinline static T * InstancePtr()
|
||||
{
|
||||
__forceinline static T* InstancePtr()
|
||||
{
|
||||
return (ms_singleton);
|
||||
}
|
||||
|
||||
__forceinline static T & instance()
|
||||
__forceinline static T& instance()
|
||||
{
|
||||
assert(ms_singleton);
|
||||
return (*ms_singleton);
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T> T * singleton <T>::ms_singleton = 0;
|
||||
template <typename T> T* singleton<T>::ms_singleton = 0;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <map>
|
||||
#include <queue>
|
||||
#include <functional>
|
||||
#include <SSTREAM>
|
||||
#include <sstream>
|
||||
|
||||
#pragma warning ( pop )
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <cmath>
|
||||
#ifndef __INC_ETER2_ETERBASE_UTILS_H__
|
||||
#define __INC_ETER2_ETERBASE_UTILS_H__
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ LONG __stdcall EterExceptionFilter(_EXCEPTION_POINTERS* pExceptionInfo)
|
||||
fprintf(fException, "rcx: 0x%016llx\trdx: 0x%016llx\n", context.Rcx, context.Rdx);
|
||||
fprintf(fException, "rsi: 0x%016llx\trdi: 0x%016llx\n", context.Rsi, context.Rdi);
|
||||
fprintf(fException, "rbp: 0x%016llx\trsp: 0x%016llx\n", context.Rbp, context.Rsp);
|
||||
fprintf(fException, "rip: 0x%016llx\n", context.Rip);
|
||||
fprintf(fException, "\n");
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterGrnLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterGrnLib
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterImageLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterImageLib
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterLib
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "msctf.h"
|
||||
#include <oleauto.h>
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <utf8.h>
|
||||
|
||||
#define COUNTOF(a) ( sizeof( a ) / sizeof( ( a )[0] ) )
|
||||
@@ -66,6 +67,12 @@ enum { IMEUI_STATE_OFF, IMEUI_STATE_ON, IMEUI_STATE_ENGLISH };
|
||||
|
||||
#define LCID_INVARIANT MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT)
|
||||
|
||||
#if defined(__MINGW32__) && !defined(__ITfReadingInformationUIElement_INTERFACE_DEFINED__)
|
||||
#define M2_HAS_TSF_UIELEMENT_EXT 0
|
||||
#else
|
||||
#define M2_HAS_TSF_UIELEMENT_EXT 1
|
||||
#endif
|
||||
|
||||
wchar_t s_aszIndicator[5][3] =
|
||||
{
|
||||
L"En",
|
||||
@@ -179,8 +186,10 @@ protected:
|
||||
LONG _cRef;
|
||||
};
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
static void MakeReadingInformationString(ITfReadingInformationUIElement* preading);
|
||||
static void MakeCandidateStrings(ITfCandidateListUIElement* pcandidate);
|
||||
#endif
|
||||
static ITfUIElement* GetUIElement(DWORD dwUIElementId);
|
||||
static BOOL GetCompartments( ITfCompartmentMgr** ppcm, ITfCompartment** ppTfOpenMode, ITfCompartment** ppTfConvMode );
|
||||
static BOOL SetupCompartmentSinks( BOOL bResetOnly = FALSE, ITfCompartment* pTfOpenMode = NULL, ITfCompartment* ppTfConvMode = NULL );
|
||||
@@ -1475,7 +1484,7 @@ DWORD CIME::GetImeId( UINT uIndex )
|
||||
return ms_adwId[uIndex];
|
||||
hklPrev = hkl;
|
||||
|
||||
DWORD dwLang = ((DWORD)hkl & 0xffff);
|
||||
DWORD dwLang = (static_cast<DWORD>(reinterpret_cast<ULONG_PTR>(hkl)) & 0xffff);
|
||||
|
||||
if ( ms_bUILessMode && GETLANG() == LANG_CHT ) {
|
||||
// In case of Vista, artifitial value is returned so that it's not considered as older IME.
|
||||
@@ -1734,7 +1743,7 @@ void CIME::CheckToggleState()
|
||||
|
||||
/* Check Toggle State */
|
||||
bool bIme = ImmIsIME( ms_hklCurrent ) != 0
|
||||
&& ( ( 0xF0000000 & (DWORD)ms_hklCurrent ) == 0xE0000000 ); // Hack to detect IME correctly. When IME is running as TIP, ImmIsIME() returns true for CHT US keyboard.
|
||||
&& ((0xF0000000u & static_cast<DWORD>(reinterpret_cast<ULONG_PTR>(ms_hklCurrent))) == 0xE0000000u); // Hack to detect IME correctly. When IME is running as TIP, ImmIsIME() returns true for CHT US keyboard.
|
||||
ms_bChineseIME = ( GETPRIMLANG() == LANG_CHINESE ) && bIme;
|
||||
|
||||
HIMC himc;
|
||||
@@ -1897,6 +1906,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::BeginUIElement(DWORD dwUIElementId, BOOL
|
||||
if (!pElement)
|
||||
return E_INVALIDARG;
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
ITfCandidateListUIElement *pcandidate = NULL;
|
||||
*pbShow = FALSE;
|
||||
@@ -1922,6 +1932,9 @@ STDAPI CTsfUiLessMode::CUIElementSink::BeginUIElement(DWORD dwUIElementId, BOOL
|
||||
CIME::ms_pEvent->OnOpenCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#else
|
||||
*pbShow = FALSE;
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1933,6 +1946,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::UpdateUIElement(DWORD dwUIElementId)
|
||||
if (!pElement)
|
||||
return E_INVALIDARG;
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
ITfCandidateListUIElement *pcandidate = NULL;
|
||||
|
||||
@@ -1956,6 +1970,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::UpdateUIElement(DWORD dwUIElementId)
|
||||
CIME::ms_pEvent->OnOpenCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1973,6 +1988,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
//OutputDebugStringW(bstrDesc);
|
||||
//OutputDebugStringW(L"\n");
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
if (SUCCEEDED(pElement->QueryInterface(__uuidof(ITfReadingInformationUIElement), (void **)&preading)))
|
||||
{
|
||||
@@ -1988,6 +2004,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
CIME::CloseCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1995,6 +2012,11 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
|
||||
void CTsfUiLessMode::UpdateImeState(BOOL bResetCompartmentEventSink)
|
||||
{
|
||||
#if defined(__MINGW32__)
|
||||
(void)bResetCompartmentEventSink;
|
||||
CIME::ms_dwImeState = CIME::ms_bChineseIME ? IMEUI_STATE_ENGLISH : IMEUI_STATE_OFF;
|
||||
return;
|
||||
#else
|
||||
ITfCompartmentMgr* pcm;
|
||||
ITfCompartment* pTfOpenMode = NULL;
|
||||
ITfCompartment* pTfConvMode = NULL;
|
||||
@@ -2026,6 +2048,7 @@ void CTsfUiLessMode::UpdateImeState(BOOL bResetCompartmentEventSink)
|
||||
pTfConvMode->Release();
|
||||
pcm->Release();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
STDAPI CTsfUiLessMode::CUIElementSink::OnActivated(DWORD dwProfileType, LANGID langid, REFCLSID clsid, REFGUID catid,
|
||||
@@ -2053,6 +2076,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::OnChange(REFGUID rguid)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
void CTsfUiLessMode::MakeReadingInformationString(ITfReadingInformationUIElement* preading)
|
||||
{
|
||||
UINT cchMax;
|
||||
@@ -2164,6 +2188,7 @@ void CTsfUiLessMode::MakeCandidateStrings(ITfCandidateListUIElement* pcandidate)
|
||||
free(IndexList);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ITfUIElement* CTsfUiLessMode::GetUIElement(DWORD dwUIElementId)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterLocale STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterLocale
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterPythonLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterPythonLib
|
||||
|
||||
@@ -55,10 +55,12 @@ void CGridSlotWindow::OnRenderPickingSlot()
|
||||
for (std::list<TSlot*>::iterator itor = SlotList.begin(); itor != SlotList.end(); ++itor)
|
||||
{
|
||||
TSlot * pSlot = *itor;
|
||||
const LONG slotRight = m_rect.left + pSlot->ixPosition + static_cast<LONG>(pSlot->byxPlacedItemSize) * ITEM_WIDTH;
|
||||
const LONG slotBottom = m_rect.top + pSlot->iyPosition + static_cast<LONG>(pSlot->byxPlacedItemSize) * ITEM_HEIGHT;
|
||||
Rect.left = std::min(Rect.left, m_rect.left + pSlot->ixPosition);
|
||||
Rect.top = std::min(Rect.top, m_rect.top + pSlot->iyPosition);
|
||||
Rect.right = std::max(Rect.right, m_rect.left + pSlot->ixPosition + pSlot->byxPlacedItemSize*ITEM_WIDTH);
|
||||
Rect.bottom = std::max(Rect.bottom, m_rect.top + pSlot->iyPosition + pSlot->byxPlacedItemSize*ITEM_HEIGHT);
|
||||
Rect.right = std::max(Rect.right, slotRight);
|
||||
Rect.bottom = std::max(Rect.bottom, slotBottom);
|
||||
}
|
||||
|
||||
CPythonGraphic::Instance().RenderBar2d(Rect.left, Rect.top, Rect.right, Rect.bottom);
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(GameLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(GameLib
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
class CFlyTarget;
|
||||
|
||||
class IFlyTargetableObject
|
||||
{
|
||||
@@ -77,4 +78,3 @@ inline void IFlyTargetableObject::ClearFlyTargeter()
|
||||
}
|
||||
m_FlyTargeterSet.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -103,6 +103,7 @@ class CItemData
|
||||
{
|
||||
COSTUME_BODY, //0 갑옷(main look)
|
||||
COSTUME_HAIR, //1 헤어(탈착가능)
|
||||
COSTUME_SASH, //2 어깨/등 장식
|
||||
COSTUME_NUM_TYPES,
|
||||
};
|
||||
|
||||
@@ -252,6 +253,7 @@ class CItemData
|
||||
WEAR_RING1, //21
|
||||
WEAR_RING2, //22
|
||||
WEAR_BELT, //23
|
||||
WEAR_COSTUME_SASH, //24
|
||||
|
||||
WEAR_MAX_NUM,
|
||||
};
|
||||
@@ -273,6 +275,7 @@ class CItemData
|
||||
WEARABLE_COSTUME_BODY = (1 << 12),
|
||||
WEARABLE_COSTUME_HAIR = (1 << 13),
|
||||
WEARABLE_BELT = (1 << 14),
|
||||
WEARABLE_COSTUME_SASH = (1 << 15),
|
||||
};
|
||||
|
||||
enum EApplyTypes
|
||||
|
||||
@@ -24,7 +24,7 @@ class CMapBase : public CScreen
|
||||
virtual float GetHeight(float fx, float fy) = 0;
|
||||
virtual void OnBeginEnvironment() = 0; // 렌더링 할 때 불려지며 여기서 Environment에 관련 있는 것들을 셋팅 한다.
|
||||
|
||||
virtual void ApplyLight(DWORD dwVersion, const D3DLIGHT9& c_rkLight) = 0;
|
||||
virtual void ApplyLight(ULONG_PTR dwVersion, const D3DLIGHT9& c_rkLight) = 0;
|
||||
|
||||
protected:
|
||||
virtual void OnRender() = 0;
|
||||
|
||||
@@ -254,7 +254,7 @@ void CMapManager::BeginEnvironment()
|
||||
{
|
||||
ms_lpd3dDevice->LightEnable(0, TRUE);
|
||||
|
||||
rkMap.ApplyLight((DWORD)mc_pcurEnvironmentData, mc_pcurEnvironmentData->DirLights[ENV_DIRLIGHT_BACKGROUND]);
|
||||
rkMap.ApplyLight(reinterpret_cast<ULONG_PTR>(mc_pcurEnvironmentData), mc_pcurEnvironmentData->DirLights[ENV_DIRLIGHT_BACKGROUND]);
|
||||
}
|
||||
else
|
||||
ms_lpd3dDevice->LightEnable(0, FALSE);
|
||||
@@ -658,4 +658,3 @@ void CMapManager::__LoadMapInfoVector()
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class CMapOutdoor : public CMapBase
|
||||
|
||||
bool LoadSetting(const char * c_szFileName);
|
||||
|
||||
void ApplyLight(DWORD dwVersion, const D3DLIGHT9& c_rkLight);
|
||||
void ApplyLight(ULONG_PTR dwVersion, const D3DLIGHT9& c_rkLight);
|
||||
void SetEnvironmentScreenFilter();
|
||||
void SetEnvironmentSkyBox();
|
||||
void SetEnvironmentLensFlare();
|
||||
@@ -577,7 +577,7 @@ class CMapOutdoor : public CMapBase
|
||||
IDirect3DVertexBuffer9* m_pkVBNone[NONE_VB_NUM];
|
||||
DWORD m_dwSplatPos;
|
||||
DWORD m_dwNonePos;
|
||||
DWORD m_dwLightVersion;
|
||||
ULONG_PTR m_dwLightVersion;
|
||||
} m_kSTPD;
|
||||
|
||||
struct SoftwareTransformPatch_SRenderState {
|
||||
|
||||
@@ -129,7 +129,7 @@ void CMapOutdoor::__RenderTerrain_AppendPatch(const D3DXVECTOR3& c_rv3Center, fl
|
||||
m_PatchVector.push_back(std::make_pair(fDistance, lPatchNum));
|
||||
}
|
||||
|
||||
void CMapOutdoor::ApplyLight(DWORD dwVersion, const D3DLIGHT9& c_rkLight)
|
||||
void CMapOutdoor::ApplyLight(ULONG_PTR dwVersion, const D3DLIGHT9& c_rkLight)
|
||||
{
|
||||
m_kSTPD.m_dwLightVersion=dwVersion;
|
||||
STATEMANAGER.SetLight(0, &c_rkLight);
|
||||
|
||||
@@ -23,6 +23,7 @@ class CRaceData
|
||||
PART_HEAD,
|
||||
PART_WEAPON_LEFT,
|
||||
PART_HAIR,
|
||||
PART_ACCE,
|
||||
|
||||
PART_MAX_NUM,
|
||||
};
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(PRTerrainLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(PRTerrainLib
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES CONFIGURE_DEPENDS "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(PackLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(PackLib
|
||||
|
||||
@@ -163,6 +163,7 @@ bool CPackManager::GetFileWithPool(std::string_view path, TPackFile& result, CBu
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
RecordPackProfileLoad(
|
||||
"disk",
|
||||
"<disk>",
|
||||
@@ -212,6 +213,10 @@ void CPackManager::NormalizePath(std::string_view in, std::string& out) const
|
||||
if (in[i] == '\\')
|
||||
out[i] = '/';
|
||||
else
|
||||
out[i] = static_cast<char>(std::tolower(in[i]));
|
||||
out[i] = static_cast<char>(std::tolower(static_cast<unsigned char>(in[i])));
|
||||
}
|
||||
|
||||
static constexpr std::string_view kDrivePrefix = "d:/";
|
||||
if (out.rfind(kDrivePrefix, 0) == 0)
|
||||
out.erase(0, kDrivePrefix.size());
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_executable(PackMaker ${FILE_SOURCES})
|
||||
set_target_properties(PackMaker PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES CONFIGURE_DEPENDS "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(PythonModules STATIC ${FILE_SOURCES})
|
||||
GroupSourcesByFolder(PythonModules)
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
/* Auto-generated by Tools/freeze/generate_legacy_frozen.py */
|
||||
#include <python/Python.h>
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
extern unsigned char M___future__[];
|
||||
extern unsigned char M___main__[];
|
||||
extern unsigned char M__collections_abc[];
|
||||
@@ -673,5 +677,15 @@ const struct _frozen _PyImport_FrozenModules[] = {
|
||||
|
||||
void InitStandardPythonModules()
|
||||
{
|
||||
#if defined(__MINGW32__)
|
||||
HMODULE python = GetModuleHandleA("python314.dll");
|
||||
if (python) {
|
||||
const struct _frozen **frozen_modules = (const struct _frozen **)GetProcAddress(python, "PyImport_FrozenModules");
|
||||
if (frozen_modules) {
|
||||
*frozen_modules = _PyImport_FrozenModules;
|
||||
}
|
||||
}
|
||||
#else
|
||||
PyImport_FrozenModules = _PyImport_FrozenModules;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
file(GLOB_RECURSE FILE_SOURCES CONFIGURE_DEPENDS "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(ScriptLib STATIC ${FILE_SOURCES})
|
||||
|
||||
|
||||
36
src/ScriptLib/PyFrozenFlagShim.cpp
Normal file
36
src/ScriptLib/PyFrozenFlagShim.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <windows.h>
|
||||
#include <python/Python.h>
|
||||
|
||||
extern "C" int* M2_GetPyFrozenFlagPtr(void)
|
||||
{
|
||||
static int fallback_flag = 0;
|
||||
|
||||
HMODULE python = GetModuleHandleA("python314.dll");
|
||||
if (!python) {
|
||||
return &fallback_flag;
|
||||
}
|
||||
|
||||
FARPROC proc = GetProcAddress(python, "Py_FrozenFlag");
|
||||
if (!proc) {
|
||||
return &fallback_flag;
|
||||
}
|
||||
|
||||
return reinterpret_cast<int*>(proc);
|
||||
}
|
||||
|
||||
extern "C" PyObject* M2_GetPyNonePtr(void)
|
||||
{
|
||||
static PyObject* fallback_none = nullptr;
|
||||
|
||||
HMODULE python = GetModuleHandleA("python314.dll");
|
||||
if (!python) {
|
||||
return fallback_none;
|
||||
}
|
||||
|
||||
FARPROC proc = GetProcAddress(python, "_Py_NoneStruct");
|
||||
if (!proc) {
|
||||
return fallback_none;
|
||||
}
|
||||
|
||||
return reinterpret_cast<PyObject*>(proc);
|
||||
}
|
||||
@@ -10,6 +10,8 @@ bool __PyCallClassMemberFunc_ByCString(PyObject* poClass, const char* c_szFunc,
|
||||
bool __PyCallClassMemberFunc_ByPyString(PyObject* poClass, PyObject* poFuncName, PyObject* poArgs, PyObject** poRet);
|
||||
bool __PyCallClassMemberFunc(PyObject* poClass, PyObject* poFunc, PyObject* poArgs, PyObject** poRet);
|
||||
|
||||
extern "C" PyObject* M2_GetPyNonePtr(void);
|
||||
|
||||
PyObject * Py_BadArgument()
|
||||
{
|
||||
PyErr_BadArgument();
|
||||
@@ -36,13 +38,14 @@ PyObject * Py_BuildException(const char * c_pszErr, ...)
|
||||
|
||||
PyObject * Py_BuildNone()
|
||||
{
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
PyObject* pyNone = M2_GetPyNonePtr();
|
||||
Py_INCREF(pyNone);
|
||||
return pyNone;
|
||||
}
|
||||
|
||||
void Py_ReleaseNone()
|
||||
{
|
||||
Py_DECREF(Py_None);
|
||||
Py_DECREF(M2_GetPyNonePtr());
|
||||
}
|
||||
|
||||
bool PyTuple_GetObject(PyObject* poArgs, int pos, PyObject** ret)
|
||||
@@ -111,7 +114,7 @@ bool PyTuple_GetFloat(PyObject* poArgs, int pos, float* ret)
|
||||
if (!poItem)
|
||||
return false;
|
||||
|
||||
*ret = float(PyFloat_AsDouble(poItem));
|
||||
*ret = static_cast<float>(PyFloat_AsDouble(poItem));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -119,7 +122,7 @@ bool PyTuple_GetByte(PyObject* poArgs, int pos, unsigned char* ret)
|
||||
{
|
||||
int val;
|
||||
bool result = PyTuple_GetInteger(poArgs,pos,&val);
|
||||
*ret = unsigned char(val);
|
||||
*ret = static_cast<unsigned char>(val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -127,7 +130,7 @@ bool PyTuple_GetInteger(PyObject* poArgs, int pos, unsigned char* ret)
|
||||
{
|
||||
int val;
|
||||
bool result = PyTuple_GetInteger(poArgs,pos,&val);
|
||||
*ret = unsigned char(val);
|
||||
*ret = static_cast<unsigned char>(val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -135,7 +138,7 @@ bool PyTuple_GetInteger(PyObject* poArgs, int pos, WORD* ret)
|
||||
{
|
||||
int val;
|
||||
bool result = PyTuple_GetInteger(poArgs,pos,&val);
|
||||
*ret = WORD(val);
|
||||
*ret = static_cast<WORD>(val);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -452,4 +455,4 @@ bool __PyCallClassMemberFunc(PyObject* poClass, PyObject * poFunc, PyObject* poA
|
||||
Py_DECREF(poFunc);
|
||||
Py_XDECREF(poArgs);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(MSVC)
|
||||
list(REMOVE_ITEM FILE_SOURCES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/SpeedTreeStubs.cpp"
|
||||
)
|
||||
else()
|
||||
list(REMOVE_ITEM FILE_SOURCES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/SpeedTreeForest.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/SpeedTreeForestDirectX.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/SpeedTreeWrapper.cpp"
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(SpeedTreeLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(SpeedTreeLib
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(SphereLib STATIC ${FILE_SOURCES})
|
||||
|
||||
# target_link_libraries(SphereLib
|
||||
|
||||
@@ -1,13 +1,29 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
list(APPEND FILE_SOURCES "${CMAKE_SOURCE_DIR}/src/UserInterface/GUIDKeyCompat.cpp")
|
||||
|
||||
add_executable(UserInterface WIN32 ${FILE_SOURCES} ${CMAKE_SOURCE_DIR}/src/UserInterface/UserInterface.rc)
|
||||
set_target_properties(UserInterface PROPERTIES LINK_FLAGS "/level='requireAdministrator' /uiAccess='false'"
|
||||
set_target_properties(UserInterface PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
OUTPUT_NAME_DEBUG "Metin2_Debug"
|
||||
OUTPUT_NAME_RELEASE "Metin2_Release"
|
||||
OUTPUT_NAME_RELWITHDEBINFO "Metin2_RelWithDebInfo"
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(UserInterface PROPERTIES LINK_FLAGS "/level='requireAdministrator' /uiAccess='false'")
|
||||
endif()
|
||||
|
||||
target_include_directories(UserInterface PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:RC>:${CMAKE_SOURCE_DIR}/src/UserInterface>
|
||||
)
|
||||
|
||||
target_link_libraries(UserInterface
|
||||
AudioLib
|
||||
Discord
|
||||
@@ -25,6 +41,7 @@ target_link_libraries(UserInterface
|
||||
SpeedTreeLib
|
||||
SphereLib
|
||||
PackLib
|
||||
EterLib
|
||||
|
||||
lzo2
|
||||
libzstd_static
|
||||
@@ -32,17 +49,23 @@ target_link_libraries(UserInterface
|
||||
|
||||
DirectX
|
||||
Granny
|
||||
SpeedTree
|
||||
$<$<CXX_COMPILER_ID:MSVC>:SpeedTree>
|
||||
Python
|
||||
WebView
|
||||
|
||||
ws2_32
|
||||
imm32
|
||||
winmm
|
||||
strmiids
|
||||
amstrmid
|
||||
dmoguids
|
||||
ddraw
|
||||
version
|
||||
Dbghelp
|
||||
$<$<CXX_COMPILER_ID:MSVC>:Dbghelp>
|
||||
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:dbghelp>
|
||||
EterImageLib
|
||||
AudioLib
|
||||
PythonModules
|
||||
EterBase
|
||||
)
|
||||
|
||||
GroupSourcesByFolder(UserInterface)
|
||||
@@ -101,11 +101,12 @@ enum EDragonSoulStepTypes
|
||||
|
||||
#ifdef ENABLE_COSTUME_SYSTEM
|
||||
const DWORD c_Costume_Slot_Start = c_Equipment_Start + CItemData::WEAR_COSTUME_BODY;
|
||||
const DWORD c_Costume_Slot_Body = c_Costume_Slot_Start + CItemData::COSTUME_BODY;
|
||||
const DWORD c_Costume_Slot_Hair = c_Costume_Slot_Start + CItemData::COSTUME_HAIR;
|
||||
const DWORD c_Costume_Slot_Body = c_Equipment_Start + CItemData::WEAR_COSTUME_BODY;
|
||||
const DWORD c_Costume_Slot_Hair = c_Equipment_Start + CItemData::WEAR_COSTUME_HAIR;
|
||||
const DWORD c_Costume_Slot_Sash = c_Equipment_Start + CItemData::WEAR_COSTUME_SASH;
|
||||
|
||||
const DWORD c_Costume_Slot_Count = CItemData::COSTUME_NUM_TYPES;
|
||||
const DWORD c_Costume_Slot_End = c_Costume_Slot_Start + c_Costume_Slot_Count;
|
||||
const DWORD c_Costume_Slot_End = c_Costume_Slot_Sash + 1;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -762,6 +762,7 @@ bool CInstanceBase::Create(const SCreateData& c_rkCreateData)
|
||||
{
|
||||
SetHair(c_rkCreateData.m_dwHair);
|
||||
SetWeapon(c_rkCreateData.m_dwWeapon);
|
||||
SetAcce(c_rkCreateData.m_dwAcce);
|
||||
}
|
||||
|
||||
__Create_SetName(c_rkCreateData);
|
||||
@@ -2654,6 +2655,25 @@ void CInstanceBase::SetHair(DWORD eHair)
|
||||
m_GraphicThingInstance.SetHair(eHair);
|
||||
}
|
||||
|
||||
void CInstanceBase::SetAcce(DWORD eAcce)
|
||||
{
|
||||
if (IsPC() == false)
|
||||
return;
|
||||
|
||||
m_awPart[CRaceData::PART_ACCE] = eAcce;
|
||||
|
||||
m_GraphicThingInstance.DetachModelInstance(CRaceData::PART_MAIN, m_GraphicThingInstance, CRaceData::PART_ACCE);
|
||||
|
||||
if (0 == eAcce)
|
||||
return;
|
||||
|
||||
CItemData* pItemData;
|
||||
if (!CItemManager::Instance().GetItemDataPointer(eAcce, &pItemData))
|
||||
return;
|
||||
|
||||
m_GraphicThingInstance.AttachWeapon(eAcce, CRaceData::PART_MAIN, CRaceData::PART_ACCE);
|
||||
}
|
||||
|
||||
void CInstanceBase::ChangeHair(DWORD eHair)
|
||||
{
|
||||
if (!HAIR_COLOR_ENABLE)
|
||||
@@ -2673,6 +2693,18 @@ void CInstanceBase::ChangeHair(DWORD eHair)
|
||||
//RefreshState(type, true);
|
||||
}
|
||||
|
||||
void CInstanceBase::ChangeAcce(DWORD eAcce)
|
||||
{
|
||||
if (IsPC() == false)
|
||||
return;
|
||||
|
||||
if (GetPart(CRaceData::PART_ACCE) == eAcce)
|
||||
return;
|
||||
|
||||
SetAcce(eAcce);
|
||||
RefreshState(CRaceMotionData::NAME_WAIT, true);
|
||||
}
|
||||
|
||||
void CInstanceBase::SetArmor(DWORD dwArmor)
|
||||
{
|
||||
DWORD dwShape;
|
||||
@@ -2852,6 +2884,7 @@ bool CInstanceBase::ChangeArmor(DWORD dwArmor)
|
||||
DWORD dwRace = GetRace();
|
||||
DWORD eHair = GetPart(CRaceData::PART_HAIR);
|
||||
DWORD eWeapon = GetPart(CRaceData::PART_WEAPON);
|
||||
DWORD eAcce = GetPart(CRaceData::PART_ACCE);
|
||||
float fRot = GetRotation();
|
||||
float fAdvRot = GetAdvancingRotation();
|
||||
|
||||
@@ -2872,6 +2905,7 @@ bool CInstanceBase::ChangeArmor(DWORD dwArmor)
|
||||
SetArmor(dwArmor);
|
||||
SetHair(eHair);
|
||||
SetWeapon(eWeapon);
|
||||
SetAcce(eAcce);
|
||||
|
||||
SetRotation(fRot);
|
||||
SetAdvancingRotation(fAdvRot);
|
||||
|
||||
@@ -26,6 +26,7 @@ class CInstanceBase
|
||||
DWORD m_dwArmor;
|
||||
DWORD m_dwWeapon;
|
||||
DWORD m_dwHair;
|
||||
DWORD m_dwAcce;
|
||||
DWORD m_dwMountVnum;
|
||||
|
||||
short m_sAlignment;
|
||||
@@ -497,10 +498,12 @@ class CInstanceBase
|
||||
void SetArmor(DWORD dwArmor);
|
||||
void SetShape(DWORD eShape, float fSpecular=0.0f);
|
||||
void SetHair(DWORD eHair);
|
||||
void SetAcce(DWORD eAcce);
|
||||
bool SetWeapon(DWORD eWeapon);
|
||||
bool ChangeArmor(DWORD dwArmor);
|
||||
void ChangeWeapon(DWORD eWeapon);
|
||||
void ChangeHair(DWORD eHair);
|
||||
void ChangeAcce(DWORD eAcce);
|
||||
void ChangeGuild(DWORD dwGuildID);
|
||||
DWORD GetWeaponType();
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
#include <stb_image_write.h>
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
#include <IL/il.h>
|
||||
#include "crc32.h"
|
||||
#include "lzo_manager.h"
|
||||
#include "minilzo.h"
|
||||
#define CLZO LZOManager
|
||||
#include "EterBase/CRC32.h"
|
||||
#define sys_err TraceError
|
||||
#define sys_log Tracenf
|
||||
#define thecore_memcpy memcpy
|
||||
#else
|
||||
#define sys_err TraceError
|
||||
#define sys_log //(n, format, ...) Tracenf(format, __VA_ARGS__)
|
||||
|
||||
@@ -2,11 +2,15 @@
|
||||
#include <stdio.h>
|
||||
#include "MarkManager.h"
|
||||
|
||||
#if _MSC_VER < 1200
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1200
|
||||
#include "crc32.h"
|
||||
#else
|
||||
#define sys_err TraceError
|
||||
#if defined(_MSC_VER)
|
||||
#define sys_log // (n, format, ...) Tracenf(format, __VA_ARGS__)
|
||||
#else
|
||||
#define sys_log Tracenf
|
||||
#endif
|
||||
#define thecore_memcpy memcpy
|
||||
#define itertype(cont) typeof((cont).begin())
|
||||
#endif
|
||||
|
||||
@@ -2,6 +2,29 @@
|
||||
#include "MovieMan.h"
|
||||
#include "PythonApplication.h"
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
void CMovieMan::ClearToBlack()
|
||||
{
|
||||
}
|
||||
|
||||
void CMovieMan::PlayLogo(const char *pcszName)
|
||||
{
|
||||
(void)pcszName;
|
||||
}
|
||||
|
||||
void CMovieMan::PlayIntro()
|
||||
{
|
||||
}
|
||||
|
||||
BOOL CMovieMan::PlayTutorial(LONG nIdx)
|
||||
{
|
||||
(void)nIdx;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
// 2007-08-19, nuclei
|
||||
// add following files to the [Project Settings-Linker-Input]
|
||||
// DEBUG: ../dshow/strmbasd.lib ../dshow/dmoguids.lib ddraw.lib
|
||||
@@ -688,3 +711,5 @@ HRESULT CMovieMan::BuildFilterGraphManually(
|
||||
// }
|
||||
//}
|
||||
//#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -77,6 +77,7 @@ void SNetworkActorData::__copy__(const SNetworkActorData& src)
|
||||
m_dwArmor = src.m_dwArmor;
|
||||
m_dwWeapon = src.m_dwWeapon;
|
||||
m_dwHair = src.m_dwHair;
|
||||
m_dwAcce = src.m_dwAcce;
|
||||
|
||||
m_dwOwnerVID = src.m_dwOwnerVID;
|
||||
|
||||
@@ -104,6 +105,7 @@ SNetworkActorData::SNetworkActorData()
|
||||
m_dwArmor=0;
|
||||
m_dwWeapon=0;
|
||||
m_dwHair=0;
|
||||
m_dwAcce=0;
|
||||
m_dwEmpireID=0;
|
||||
|
||||
m_dwOwnerVID=0;
|
||||
@@ -356,6 +358,7 @@ CInstanceBase* CNetworkActorManager::__AppendCharacterManagerActor(SNetworkActor
|
||||
kCreateData.m_dwArmor=rkNetActorData.m_dwArmor;
|
||||
kCreateData.m_dwWeapon=rkNetActorData.m_dwWeapon;
|
||||
kCreateData.m_dwHair=rkNetActorData.m_dwHair;
|
||||
kCreateData.m_dwAcce=rkNetActorData.m_dwAcce;
|
||||
kCreateData.m_isMain=__IsMainActorVID(dwVID);
|
||||
|
||||
CInstanceBase* pOldInstance = rkChrMgr.GetInstancePtr(dwVID);
|
||||
@@ -472,7 +475,8 @@ void CNetworkActorManager::UpdateActor(const SNetworkUpdateActorData& c_rkNetUpd
|
||||
{
|
||||
pkInstFind->ChangeArmor(c_rkNetUpdateActorData.m_dwArmor);
|
||||
pkInstFind->ChangeWeapon(c_rkNetUpdateActorData.m_dwWeapon);
|
||||
pkInstFind->ChangeHair(c_rkNetUpdateActorData.m_dwHair);
|
||||
pkInstFind->ChangeHair(c_rkNetUpdateActorData.m_dwHair);
|
||||
pkInstFind->ChangeAcce(c_rkNetUpdateActorData.m_dwAcce);
|
||||
pkInstFind->ChangeGuild(c_rkNetUpdateActorData.m_dwGuildID);
|
||||
pkInstFind->SetAffectFlagContainer(c_rkNetUpdateActorData.m_kAffectFlags);
|
||||
pkInstFind->SetMoveSpeed(c_rkNetUpdateActorData.m_dwMovSpd);
|
||||
@@ -502,6 +506,7 @@ void CNetworkActorManager::UpdateActor(const SNetworkUpdateActorData& c_rkNetUpd
|
||||
rkNetActorData.m_dwArmor=c_rkNetUpdateActorData.m_dwArmor;
|
||||
rkNetActorData.m_dwWeapon=c_rkNetUpdateActorData.m_dwWeapon;
|
||||
rkNetActorData.m_dwHair=c_rkNetUpdateActorData.m_dwHair;
|
||||
rkNetActorData.m_dwAcce=c_rkNetUpdateActorData.m_dwAcce;
|
||||
rkNetActorData.m_sAlignment=c_rkNetUpdateActorData.m_sAlignment;
|
||||
rkNetActorData.m_byPKMode=c_rkNetUpdateActorData.m_byPKMode;
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ struct SNetworkActorData
|
||||
DWORD m_dwArmor;
|
||||
DWORD m_dwWeapon;
|
||||
DWORD m_dwHair;
|
||||
DWORD m_dwAcce;
|
||||
|
||||
DWORD m_dwOwnerVID;
|
||||
|
||||
@@ -85,6 +86,7 @@ struct SNetworkUpdateActorData
|
||||
DWORD m_dwArmor;
|
||||
DWORD m_dwWeapon;
|
||||
DWORD m_dwHair;
|
||||
DWORD m_dwAcce;
|
||||
DWORD m_dwMovSpd;
|
||||
DWORD m_dwAtkSpd;
|
||||
short m_sAlignment;
|
||||
@@ -100,6 +102,7 @@ struct SNetworkUpdateActorData
|
||||
m_dwArmor=0;
|
||||
m_dwWeapon=0;
|
||||
m_dwHair=0;
|
||||
m_dwAcce=0;
|
||||
m_dwMovSpd=0;
|
||||
m_dwAtkSpd=0;
|
||||
m_sAlignment=0;
|
||||
|
||||
@@ -1278,6 +1278,7 @@ enum ECharacterEquipmentPart
|
||||
CHR_EQUIPPART_WEAPON,
|
||||
CHR_EQUIPPART_HEAD,
|
||||
CHR_EQUIPPART_HAIR,
|
||||
CHR_EQUIPPART_ACCE,
|
||||
|
||||
CHR_EQUIPPART_NUM,
|
||||
};
|
||||
|
||||
@@ -728,7 +728,10 @@ bool CPythonApplication::Process()
|
||||
m_dwFaceAccCount += dwCurFaceCount;
|
||||
m_dwFaceAccTime += m_dwCurRenderTime;
|
||||
|
||||
m_fFaceSpd=(m_dwFaceAccCount/m_dwFaceAccTime);
|
||||
if (m_dwFaceAccTime != 0)
|
||||
m_fFaceSpd = static_cast<float>(m_dwFaceAccCount) / static_cast<float>(m_dwFaceAccTime);
|
||||
else
|
||||
m_fFaceSpd = 0.0f;
|
||||
|
||||
// °Å¸® ÀÚµ¿ Á¶Àý
|
||||
if (-1 == m_iForceSightRange)
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
#include "StdAfx.h"
|
||||
#include "PythonApplication.h"
|
||||
|
||||
#ifndef IID_ISampleGrabber
|
||||
DEFINE_GUID(IID_ISampleGrabber, 0x6b652fff, 0x11fe, 0x4fce, 0x92, 0xad, 0x02, 0x66, 0xb5, 0xd7, 0xc7, 0x8f);
|
||||
DEFINE_GUID(CLSID_SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37);
|
||||
|
||||
MIDL_INTERFACE("6B652FFF-11FE-4fce-92AD-0266B5D7C78F")
|
||||
ISampleGrabber : public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE SetOneShot(WINBOOL OneShot) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE SetMediaType(const AM_MEDIA_TYPE* pType) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE GetConnectedMediaType(AM_MEDIA_TYPE* pType) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE SetBufferSamples(WINBOOL BufferThem) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE GetCurrentBuffer(LONG* pBufferSize, LONG* pBuffer) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE GetCurrentSample(IMediaSample** ppSample) = 0;
|
||||
virtual HRESULT STDMETHODCALLTYPE SetCallback(IUnknown* pCallback, LONG WhichMethodToCallback) = 0;
|
||||
};
|
||||
#endif
|
||||
|
||||
static bool bInitializedLogo = false;
|
||||
|
||||
int CPythonApplication::OnLogoOpen(char* szName)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "StdAfx.h"
|
||||
#include "PythonApplication.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
#undef C8
|
||||
#include <wrl.h>
|
||||
#include <wil/com.h>
|
||||
@@ -118,3 +120,29 @@ void CPythonApplication::HideWebPage()
|
||||
else
|
||||
SetCursorMode(CURSOR_MODE_HARDWARE);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
bool CPythonApplication::IsWebPageMode()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void CPythonApplication::ShowWebPage(const char* c_szURL, const RECT& c_rcWebPage)
|
||||
{
|
||||
TraceError("WebView2 is not available in this build");
|
||||
}
|
||||
|
||||
void CPythonApplication::MoveWebPage(const RECT& c_rcWebPage)
|
||||
{
|
||||
}
|
||||
|
||||
void CPythonApplication::HideWebPage()
|
||||
{
|
||||
if (m_pySystem.IsSoftwareCursor())
|
||||
SetCursorMode(CURSOR_MODE_SOFTWARE);
|
||||
else
|
||||
SetCursorMode(CURSOR_MODE_HARDWARE);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1437,6 +1437,7 @@ void initchr()
|
||||
PyModule_AddIntConstant(poModule, "PART_WEAPON", CRaceData::PART_WEAPON);
|
||||
PyModule_AddIntConstant(poModule, "PART_HEAD", CRaceData::PART_HEAD);
|
||||
PyModule_AddIntConstant(poModule, "PART_WEAPON_LEFT", CRaceData::PART_WEAPON_LEFT);
|
||||
PyModule_AddIntConstant(poModule, "PART_ACCE", CRaceData::PART_ACCE);
|
||||
|
||||
/////
|
||||
|
||||
|
||||
@@ -654,12 +654,14 @@ void initItem()
|
||||
// Item Sub Type
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_TYPE_BODY", CItemData::COSTUME_BODY);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_TYPE_HAIR", CItemData::COSTUME_HAIR);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_TYPE_SASH", CItemData::COSTUME_SASH);
|
||||
|
||||
// 인벤토리 및 장비창에서의 슬롯 번호
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_START", c_Costume_Slot_Start);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_COUNT", c_Costume_Slot_Count);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_BODY", c_Costume_Slot_Body);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_HAIR", c_Costume_Slot_Hair);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_SASH", c_Costume_Slot_Sash);
|
||||
PyModule_AddIntConstant(poModule, "COSTUME_SLOT_END", c_Costume_Slot_End);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -317,6 +317,7 @@ class CPythonNetworkStream : public CNetworkStream, public CSingleton<CPythonNet
|
||||
// Main Game Phase
|
||||
bool SendC2CPacket(DWORD dwSize, void * pData);
|
||||
bool SendChatPacket(const char * c_szChat, BYTE byType = CHAT_TYPE_TALKING);
|
||||
bool SendBiologSubmit();
|
||||
bool SendWhisperPacket(const char * name, const char * c_szChat);
|
||||
bool SendMessengerAddByVIDPacket(DWORD vid);
|
||||
bool SendMessengerAddByNamePacket(const char * c_szName);
|
||||
|
||||
@@ -499,6 +499,13 @@ PyObject* netSendChatPacket(PyObject* poSelf, PyObject* poArgs)
|
||||
return Py_BuildNone();
|
||||
}
|
||||
|
||||
PyObject* netSendBiologSubmit(PyObject* poSelf, PyObject* poArgs)
|
||||
{
|
||||
CPythonNetworkStream& rkNetStream = CPythonNetworkStream::Instance();
|
||||
rkNetStream.SendBiologSubmit();
|
||||
return Py_BuildNone();
|
||||
}
|
||||
|
||||
PyObject* netSendEmoticon(PyObject* poSelf, PyObject* poArgs)
|
||||
{
|
||||
int eEmoticon;
|
||||
@@ -1700,6 +1707,7 @@ void initnet()
|
||||
{ "IsConnect", netIsConnect, METH_VARARGS },
|
||||
|
||||
{ "SendChatPacket", netSendChatPacket, METH_VARARGS },
|
||||
{ "SendBiologSubmit", netSendBiologSubmit, METH_VARARGS },
|
||||
{ "SendEmoticon", netSendEmoticon, METH_VARARGS },
|
||||
{ "SendWhisperPacket", netSendWhisperPacket, METH_VARARGS },
|
||||
|
||||
|
||||
@@ -788,6 +788,11 @@ bool CPythonNetworkStream::SendChatPacket(const char * c_szChat, BYTE byType)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CPythonNetworkStream::SendBiologSubmit()
|
||||
{
|
||||
return SendChatPacket("/biolog_submit");
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Emoticon
|
||||
void CPythonNetworkStream::RegisterEmoticonString(const char * pcEmoticonString)
|
||||
@@ -838,7 +843,7 @@ void CPythonNetworkStream::__ConvertEmpireText(DWORD dwEmpireID, char* szText)
|
||||
{
|
||||
if (pbText[0]>=0xb0 && pbText[0]<=0xc8 && pbText[1]>=0xa1 && pbText[1]<=0xfe)
|
||||
{
|
||||
uHanPos=(pbText[0]-0xb0)*(0xfe-0xa1+1)+(pbText[1]-0xa1);
|
||||
uHanPos = (pbText[0] - 0xb0) * (0xfe - 0xa1 + 1) + (pbText[1] - 0xa1);
|
||||
pbText[0]=rkTextConvTable.aacHan[uHanPos][0];
|
||||
pbText[1]=rkTextConvTable.aacHan[uHanPos][1];
|
||||
}
|
||||
@@ -4357,4 +4362,4 @@ void CPythonNetworkStream::Discord_Close()
|
||||
{
|
||||
Discord_Shutdown();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -120,7 +120,8 @@ bool CPythonNetworkStream::RecvCharacterAppendPacket()
|
||||
kNetActorData.m_dwEmpireID=0;/*chrAddPacket.bEmpire*/;
|
||||
kNetActorData.m_dwArmor=0;/*chrAddPacket.awPart[CHR_EQUIPPART_ARMOR]*/;
|
||||
kNetActorData.m_dwWeapon=0;/*chrAddPacket.awPart[CHR_EQUIPPART_WEAPON]*/;
|
||||
kNetActorData.m_dwHair=0;/*chrAddPacket.awPart[CHR_EQUIPPART_HAIR]*/;
|
||||
kNetActorData.m_dwHair=0;/*chrAddPacket.awPart[CHR_EQUIPPART_HAIR]*/;
|
||||
kNetActorData.m_dwAcce=0;/*chrAddPacket.awPart[CHR_EQUIPPART_ACCE]*/;
|
||||
kNetActorData.m_dwMountVnum=0;/*chrAddPacket.dwMountVnum*/;
|
||||
|
||||
kNetActorData.m_dwLevel = 0; // 몬스터 레벨 표시 안함
|
||||
@@ -178,7 +179,8 @@ bool CPythonNetworkStream::RecvCharacterAdditionalInfo()
|
||||
kNetActorData.m_dwEmpireID=chrInfoPacket.bEmpire;
|
||||
kNetActorData.m_dwArmor=chrInfoPacket.awPart[CHR_EQUIPPART_ARMOR];
|
||||
kNetActorData.m_dwWeapon=chrInfoPacket.awPart[CHR_EQUIPPART_WEAPON];
|
||||
kNetActorData.m_dwHair=chrInfoPacket.awPart[CHR_EQUIPPART_HAIR];
|
||||
kNetActorData.m_dwHair=chrInfoPacket.awPart[CHR_EQUIPPART_HAIR];
|
||||
kNetActorData.m_dwAcce=chrInfoPacket.awPart[CHR_EQUIPPART_ACCE];
|
||||
kNetActorData.m_dwMountVnum=chrInfoPacket.dwMountVnum;
|
||||
|
||||
__RecvCharacterAppendPacket(&kNetActorData);
|
||||
@@ -212,6 +214,7 @@ bool CPythonNetworkStream::RecvCharacterAppendPacketNew()
|
||||
kNetActorData.m_dwArmor=chrAddPacket.awPart[CHR_EQUIPPART_ARMOR];
|
||||
kNetActorData.m_dwWeapon=chrAddPacket.awPart[CHR_EQUIPPART_WEAPON];
|
||||
kNetActorData.m_dwHair=chrAddPacket.awPart[CHR_EQUIPPART_HAIR];
|
||||
kNetActorData.m_dwAcce=chrAddPacket.awPart[CHR_EQUIPPART_ACCE];
|
||||
kNetActorData.m_dwStateFlags=chrAddPacket.bStateFlag;
|
||||
kNetActorData.m_dwVID=chrAddPacket.dwVID;
|
||||
kNetActorData.m_dwMountVnum=chrAddPacket.dwMountVnum;
|
||||
@@ -240,6 +243,7 @@ bool CPythonNetworkStream::RecvCharacterUpdatePacket()
|
||||
kNetUpdateActorData.m_dwArmor=chrUpdatePacket.awPart[CHR_EQUIPPART_ARMOR];
|
||||
kNetUpdateActorData.m_dwWeapon=chrUpdatePacket.awPart[CHR_EQUIPPART_WEAPON];
|
||||
kNetUpdateActorData.m_dwHair=chrUpdatePacket.awPart[CHR_EQUIPPART_HAIR];
|
||||
kNetUpdateActorData.m_dwAcce=chrUpdatePacket.awPart[CHR_EQUIPPART_ACCE];
|
||||
kNetUpdateActorData.m_dwVID=chrUpdatePacket.dwVID;
|
||||
kNetUpdateActorData.m_kAffectFlags.CopyData(0, sizeof(chrUpdatePacket.dwAffectFlag[0]), &chrUpdatePacket.dwAffectFlag[0]);
|
||||
kNetUpdateActorData.m_kAffectFlags.CopyData(32, sizeof(chrUpdatePacket.dwAffectFlag[1]), &chrUpdatePacket.dwAffectFlag[1]);
|
||||
@@ -265,6 +269,7 @@ bool CPythonNetworkStream::RecvCharacterUpdatePacketNew()
|
||||
kNetUpdateActorData.m_dwArmor=chrUpdatePacket.awPart[CHR_EQUIPPART_ARMOR];
|
||||
kNetUpdateActorData.m_dwWeapon=chrUpdatePacket.awPart[CHR_EQUIPPART_WEAPON];
|
||||
kNetUpdateActorData.m_dwHair=chrUpdatePacket.awPart[CHR_EQUIPPART_HAIR];
|
||||
kNetUpdateActorData.m_dwAcce=chrUpdatePacket.awPart[CHR_EQUIPPART_ACCE];
|
||||
kNetUpdateActorData.m_dwVID=chrUpdatePacket.dwVID;
|
||||
kNetUpdateActorData.m_kAffectFlags.CopyData(0, sizeof(chrUpdatePacket.dwAffectFlag[0]), &chrUpdatePacket.dwAffectFlag[0]);
|
||||
kNetUpdateActorData.m_kAffectFlags.CopyData(32, sizeof(chrUpdatePacket.dwAffectFlag[1]), &chrUpdatePacket.dwAffectFlag[1]);
|
||||
@@ -473,4 +478,3 @@ bool CPythonNetworkStream::RecvCharacterAppendPacket()
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ bool CPythonNetworkStream::LoadConvertTable(DWORD dwEmpireID, const char* c_szFi
|
||||
return false;
|
||||
|
||||
DWORD dwEngCount=26;
|
||||
DWORD dwHanCount=(0xc8-0xb0+1)*(0xfe-0xa1+1);
|
||||
DWORD dwHanCount = (0xc8 - 0xb0 + 1) * (0xfe - 0xa1 + 1);
|
||||
DWORD dwHanSize=dwHanCount*2;
|
||||
DWORD dwFileSize=dwEngCount*2+dwHanSize;
|
||||
|
||||
|
||||
@@ -27,8 +27,12 @@
|
||||
#include "EterLib/FontManager.h"
|
||||
|
||||
extern "C" {
|
||||
#if defined(__MINGW32__)
|
||||
int _fltused = 0;
|
||||
#else
|
||||
extern int _fltused;
|
||||
FILE __iob_func[3] = { *stdin, *stdout, *stderr };
|
||||
#endif
|
||||
volatile int _AVOID_FLOATING_POINT_LIBRARY_BUG = _fltused;
|
||||
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
|
||||
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
// #include "afxres.h"
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
@@ -70,19 +70,19 @@ END
|
||||
// Cursor
|
||||
//
|
||||
|
||||
IDC_CURSOR_NORMAL CURSOR "Cursors\\cursor.cur"
|
||||
IDC_CURSOR_CHAIR CURSOR "Cursors\\cursor_chair.cur"
|
||||
IDC_CURSOR_DOOR CURSOR "Cursors\\cursor_door.cur"
|
||||
IDC_CURSOR_NO CURSOR "Cursors\\cursor_no.cur"
|
||||
IDC_CURSOR_PICK CURSOR "Cursors\\cursor_pick.cur"
|
||||
IDC_CURSOR_TALK CURSOR "Cursors\\cursor_talk.cur"
|
||||
IDC_CURSOR_ATTACK CURSOR "Cursors\\cursor_attack.cur"
|
||||
IDC_CURSOR_BUY CURSOR "Cursors\\cursor_buy.cur"
|
||||
IDC_CURSOR_SELL CURSOR "Cursors\\cursor_sell.cur"
|
||||
IDC_CURSOR_CAMERA_ROTATE CURSOR "Cursors\\cursor_camera_rotate.cur"
|
||||
IDC_CURSOR_HSIZE CURSOR "Cursors\\cursor_hsize.cur"
|
||||
IDC_CURSOR_VSIZE CURSOR "Cursors\\cursor_vsize.cur"
|
||||
IDC_CURSOR_HVSIZE CURSOR "Cursors\\cursor_hvsize.cur"
|
||||
IDC_CURSOR_NORMAL CURSOR "Cursors/cursor.cur"
|
||||
IDC_CURSOR_CHAIR CURSOR "Cursors/cursor_chair.cur"
|
||||
IDC_CURSOR_DOOR CURSOR "Cursors/cursor_door.cur"
|
||||
IDC_CURSOR_NO CURSOR "Cursors/cursor_no.cur"
|
||||
IDC_CURSOR_PICK CURSOR "Cursors/cursor_pick.cur"
|
||||
IDC_CURSOR_TALK CURSOR "Cursors/cursor_talk.cur"
|
||||
IDC_CURSOR_ATTACK CURSOR "Cursors/cursor_attack.cur"
|
||||
IDC_CURSOR_BUY CURSOR "Cursors/cursor_buy.cur"
|
||||
IDC_CURSOR_SELL CURSOR "Cursors/cursor_sell.cur"
|
||||
IDC_CURSOR_CAMERA_ROTATE CURSOR "Cursors/cursor_camera_rotate.cur"
|
||||
IDC_CURSOR_HSIZE CURSOR "Cursors/cursor_hsize.cur"
|
||||
IDC_CURSOR_VSIZE CURSOR "Cursors/cursor_vsize.cur"
|
||||
IDC_CURSOR_HVSIZE CURSOR "Cursors/cursor_hvsize.cur"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
22
toolchains/linux-mingw64.cmake
Normal file
22
toolchains/linux-mingw64.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
|
||||
get_filename_component(_TOOLCHAIN_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
|
||||
|
||||
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
|
||||
set(CMAKE_LINKER "${_TOOLCHAIN_DIR}/mingw-lld-bin/x86_64-w64-mingw32-ld" CACHE FILEPATH "" FORCE)
|
||||
|
||||
set(_MINGW_LLD_FLAGS "-B${_TOOLCHAIN_DIR}/mingw-lld-bin -fuse-ld=lld")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${_MINGW_LLD_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${_MINGW_LLD_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${_MINGW_LLD_FLAGS}" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
Reference in New Issue
Block a user