* move header files to game.h
* include mutex when necessary
* include myfilesystem.h when necessary
* include thread when necessary
* include string
* include GL when necessary
* remove #pragma once
* rename guard macro to YGOPRO_CONFIG_H
* fix warning C4456, C4458
* move GL to game.h
* use <cstring> functions
* include <wchar.h>
* use memcpy in DuelClient, NetServer
* NetServer: discard too large packet
* DuelClient: discard too large packet
* replace memcpy with std::memcpy
* disconnect when the packet is too large
* check packet_len
* check len in HandleCTOSPacket()
* check len in HandleSTOCPacketLan()
* remove bool type in HostInfo
* check len in packet handling
* add boundary check to STOC_CHAT packet
* use memcpy in DuelMode::JoinGame
* add DECK_MAX_SIZE, DECK_MIN_SIZE
* fix DuelMode::UpdateDeck()
* fix
* fix Manager::OpenDeckFile()
* update DuelMode init
* update DuelMode::JoinGame
* update DuelMode::GetResponse
* Revert "check len in packet handling"
This reverts commit 2b5c12f360.
* use memcpy in GetPosition
* check struct size by static_assert
* update DuelMode::UpdateDeck
* check if the struct is trivially copyable
* replace unsigned short to uint16_t
* replace unsigned int to uint32_t
* add padding member to STOC_HS_PlayerEnter
* workaround: use STOC_HS_PlayerEnter_size
* change code, location, position to unsigned
* change code, location, postion to unsigned
* use ReadUInt8() for 1-byte data
* Game::LocalPlayer() returns 0, 1
* wrong matching
* change card code to unsigned
Old version:
pheader.flag does not contain REPLAY_UNIFORM
RNG: mt19937
distribution: almost-uniform
New version
pheader.flag contains REPLAY_UNIFORM
RNG: mt19937
distribution: uniform
* add bounds checking
* update RNG in replay mode
* replace mtrandom with mt19937
* replace mtrandom with mt19937
* replace mtrandom with mt19937
* really retrying one when MSG_RETRY
* remove unnecessary retry paramter
* retry in single mode
* different hint for different action
* update retry hint