Mercury233
fb3b0dbf73
fix HINT_ZONE and fix MSG_HINT in puzzle mode ( #3170 )
2026-09-23 22:46:30 +08:00
Mercury233
1b35981929
header updates ( #3157 )
2026-08-11 08:21:50 +08:00
Mercury233
58febe3cfc
update network headers ( #3148 )
2026-07-25 15:47:20 +08:00
Mercury233
7ea6ad9f8d
update & fix duel timer ( #3144 )
2026-07-21 08:16:31 +08:00
Mercury233
1d5038b152
fix tag duel init ( #3134 )
2026-07-07 15:04:37 +08:00
Mercury233
35513e0e08
fix player disconnect ( #3104 )
2026-07-07 14:36:41 +08:00
Mercury233
147e269e30
add support for POS_REVEAL ( #3121 )
2026-06-24 09:54:38 +08:00
Nanahira and Mercury233
2321b35cd9
Fix replay response recording for retry handling ( #3116 )
...
* add yrp format 2.5 & rollback replay when MSG_RETRY
* simplify
* remove yrp 2.5
* fix to #3116 (#3124 )
* format
* implement same logic on SingleMode
---------
Co-authored-by: Mercury233 <me@mercury233.me >
2026-06-24 09:54:17 +08:00
salix5
2f3d9e4716
use std::array for query buffers ( #3112 )
2026-06-21 14:48:04 +08:00
Mercury233
9f04ec5879
fix RefreshSingle ( #3111 )
2026-06-21 14:02:56 +08:00
Nanahira
dfd5f480d0
Prevent opening hand result changes before duel start ( #3117 )
2026-06-21 13:57:16 +08:00
Copilot
f5adfddf18
Response length capped at UINT8_MAX ( #3118 )
2026-06-21 10:16:48 +08:00
salix5 and Copilot
8ef2167e5b
Remove CTOS_DeckData and use uint32_t array in deck loading functions ( #3071 )
...
* Use size_t for length in HandleCTOSPacket
Co-authored-by: Copilot <copilot@github.com >
* Use uint32_t in deck loading functions
Co-authored-by: Copilot <copilot@github.com >
* fix
Co-authored-by: Copilot <copilot@github.com >
* Validate deck update length in SingleDuel and TagDuel
Co-authored-by: Copilot <copilot@github.com >
* revert
---------
Co-authored-by: Copilot <copilot@github.com >
2026-05-12 15:10:10 +08:00
salix5
df02543f6c
Use std::vector in EndDuel for SingleDuel and TagDuel ( #3077 )
2026-05-06 09:03:47 +08:00
salix5
50b693f713
Use size_t for index and return uint32_t in CheckDeck ( #3051 )
2026-04-15 12:55:43 +08:00
Mercury233
9fa42dd103
move global vars from gframe to member of mainGame ( #3041 )
2026-04-11 08:57:44 +08:00
salix5
6fea874dac
Change Deck to (const CardDataC*) vector ( #3006 )
2026-03-25 09:34:16 +08:00
mercury233
631eed90f8
use std::swap in SingleDuel::TPResult
2026-02-27 16:33:30 +08:00
Mercury233
488e66c5a4
fix face-down MSG_SPSUMMONING ( #2896 )
2025-08-15 17:06:47 +08:00
salix5
42a427a4fa
use function template BufferIO::Read ( #2835 )
2025-07-06 13:18:46 +08:00
Mercury233
e7ebb75fa0
update forced in MSG_SELECT_CHAIN ( #2797 )
2025-06-29 17:40:43 +08:00
Mercury233
f4db575058
update MSG_CONFIRM_CARDS, add skip_panel ( #2470 )
2025-06-29 17:39:57 +08:00
salix5
b3482765e4
fix: seeding std::mt19937 with only 1 uint32_t ( #2820 )
2025-06-18 15:47:55 +08:00
salix5
fd189e5c8c
DeckManager: use uint32_t code ( #2739 )
...
* fix LoadLFListSingle
* update LoadDeck, LoadSide
* rename to LoadDeckFromStream
* update CTOS_DeckData
* static member function
2025-03-29 10:44:21 +08:00
salix5
dc5a305301
use <ctime> header ( #2668 )
2025-02-12 16:26:38 +08:00
salix5
ad9a70691e
fix DeckManager::CheckDeck ( #2656 )
...
* fix DeckManager::CheckDeck
* use MAX_CARD_ID
2025-01-31 17:09:58 +08:00
salix5
2bfb8198bd
check len before memcpy in UpdateDeck ( #2652 )
2025-01-24 00:59:24 +08:00
salix5
d376ed0e65
use <cwchar> function ( #2651 )
2025-01-17 19:50:59 +08:00
salix5
1127be0fba
add CTOS_DeckData ( #2641 )
...
* add CTOS_DeckData
* Update netserver.cpp
* update length check
* update length check
2025-01-11 18:09:47 +08:00
salix5
cc18709fb0
Replay: add read/write template ( #2637 )
...
* Replay: add read/write template
* Replay: remove WriteInt8, WriteInt16
* use int32_t in WriteInt32
* remove ReadInt8, ReadInt16
* use int32_t in ReadInt32
* update ReadData
* add ReadHeader
* use array index
2024-12-27 08:23:02 +08:00
salix5
fb4580f93d
Patch1 ( #2635 )
...
* update include in network.h
* format
2024-12-15 15:15:24 +08:00
salix5
f2278ae751
use vector rbegin ( #2628 )
...
* use vector rbegin
* const reference
* use vector assign
* minor update
* init
2024-12-06 23:50:39 +08:00
salix5
85793b7105
replace intN macro ( #2627 )
...
* remove int32
* replace uint32_t
* remove uint8
2024-12-05 19:29:41 +08:00
salix5
c1cd59c475
change byte to unsigned char ( #2622 )
...
the dependency of byte is Windows SDK, not common.h
2024-11-30 15:27:20 +08:00
salix5
51929625b3
BufferIO: add CopyCharArray ( #2616 )
...
array length is determined by reference to array
2024-11-16 11:51:18 +08:00
salix5
2dd2263c44
use <cstring> functions ( #2580 )
2024-08-18 03:14:02 +08:00
salix5
848348ca9c
deckManager: add LoadCurrentDeck, SaveDeckBuffer ( #2571 )
...
* update LoadDeck from int array
* update LoadDeck from std::istringstream
* reorder
* rename to LoadCurrentDeck
* akways clear current_deck in LoadCurrentDeck
* reorder
* change LoadDeck from std::istringstream
* set errorcode for TYPE_TOKEN
* use LoadDeck in export deck
* update LoadSide
* fix CheckDeck
* fix LoadLFListSingle
* minor fix
* add SaveDeckBuffer
* fix LoadSide
* update LoadDeck(Deck&, std::istringstream&
2024-08-11 05:06:08 +08:00
salix5
bb82764e0b
Use local variable in ServerEchoRead, ClientRead ( #2562 )
...
* use local var in ServerEchoRead, ClientRead
* zero init in GetResponse
2024-06-18 16:54:48 +08:00
salix5
cc91dc81ee
verify the source of BufferIO::CopyWStr ( #2558 )
...
* verify the source of BufferIO::CopyWStr
* add BufferIO::NullTerminate
* use MAX_STRING_ID
* use constant
* use constant
2024-06-09 11:00:08 +08:00
salix5
e209e77502
disconnect when the packet is too large ( #2551 )
...
* 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
2024-05-31 21:52:06 +08:00
salix5
1f03d7321c
update get_log_message() ( #2550 )
2024-05-31 21:51:52 +08:00
salix5
b290125977
Use BufferIO::ReadUInt8 ( #2537 )
...
* 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
2024-05-02 21:59:41 +08:00
salix5
31bd9394da
remove warning 4267 ( #2529 )
2024-04-21 20:46:54 +08:00
salix5
e3155746c5
fix: check response size before writing ( #2514 )
...
* update DuelClient::response_buf[]
* fix: check response size before writing
2024-02-14 04:03:07 +08:00
salix5
771bd5d3de
Revert "match_result use player_id"
...
This reverts commit c4d7ca2db2 .
2023-12-26 19:51:22 +08:00
salix5
ee5fea7e02
clear data while face-down
...
MSG_UPDATE_DATA
flag=0: clear
MSG_UPDATE_CARD
flag=QUERY_CODE, code=0: clear
2023-12-19 16:35:12 +08:00
salix5
a24d3db31a
remove memset
2023-12-18 22:35:12 +08:00
salix5
c4d7ca2db2
match_result use player_id
...
player_id: the index of players[] when G1 starts
type: first/second player in current duel
2023-12-18 22:33:29 +08:00
salix5
3c6de95686
update message handler
2023-12-18 11:00:05 +08:00
salix5
86825b0a6c
update script reader
2023-12-18 01:37:32 +08:00