summaryrefslogtreecommitdiff
path: root/src/net/eathena
AgeCommit message (Collapse)AuthorFilesLines
2025-06-25Split #include "utils/performance.h" out of localconsts.hFedja Beader5-0/+5
only about 160 out of 1500 files that include localconsts.h need to include performance.h Saves 12% from compile times (with profiler ON) and 0.1% with profiler OFF. **** mana/plus!189
2025-05-24Switch source code headers to ManaVerse & update copyrights to 2025Fedja Beader190-570/+570
.. instead of manaplus's header. & update copyrights to 2025. Open problem: should it be "The ManaVerse Client", "the ManaVerse client" or something in between in "This file is part of ..." line? All caps is current situation. Squashed with: * update copyright dates for 2025 * Revert "Switch to branch of mplint that checks for manaverse copyright headers" * Change back to uppercase The Why? This line was changed 3 times in history and all had an uppercase The. PS: ManaVerse has no endorsment from the parent project, ManaPlus. * Change to "This file is part of the ManaVerse Client" poppet says 'the' instead of 'The' find . \( -name "*.h" -o -name "*.cpp" -o -name "*.cc" -o -name "*.inc" \) -execdir sed -i -e 's/This file is part of The ManaPlus Client/This file is part of the ManaVerse Client/' {} \+ * Change 'The ManaPlus Client' to 'The ManaVerse Client' in headers find . \( -name "*.h" -o -name "*.cpp" -o -name "*.cc" -o -name "*.inc" \) -execdir sed -i -e '2s/ManaPlus/ManaVerse/' {} \+ * Switch to branch of mplint that checks for manaverse copyright headers .. instead of manaplus's **** mana/plus!179
2025-05-21Fix copy-paste failure of profiler block namesFedja Beader1-3/+3
introduced in 8ad99cc3 / "Add profiler lines into some functions." **** mana/plus!181
2025-05-21Implement ZC_SOUND / 0x01d3 / processBeingSoundEffectFedja Beader1-4/+14
Squashed with: * Remove TODOs. Repeats and the other two fields are implemented in latest herc, but they set beingID to 0 when repeats are requested... what... Repeats need more in-client support to implement, anyways **** mana/plus!180
2025-05-112025 Q1 miscallaneous reformattingFedja Beader1-0/+1
**** mana/plus!176
2025-04-26Use stdint.h instead of ifdefing tr1/cstdint, cstdint and stdint.hFedja Beader1-9/+1
Rationale: By the standard, cstdint guarantees these basic types in std::, but *may* put them into the global namespace. By including stdint.h directly, we guarantee that these types are in the global namespace. stdint.h is also a C++ standard header guaranteed as part of the C compatibility support, thus toolchains should support this. The proper(tm) way of going about this would mean either prefixing [u]int[0-9]*_t with std:: everywhere where they are used (a chore) or having a proxy header that includes cstdint and around 50 using statements. The latter sounds to me like a good approach for toolchains that do not provide stdint.h and do not pollute global namespace. If such a toolchain exists in the wild. See discussion at https://stackoverflow.com/questions/13642827/cstdint-vs-stdint-h In practice, my toolchain's (gcc 14 on GNU) cstdint includes stdint.h then drags those types into std:: as well. **** mana/plus!170
2025-04-03Fix wrong read of clif_GM_kickack packetFedja Beader4-2/+14
2024-08/01/#Debug.log:[14:25:43] Wrong actual or planned inbound packet size!. Packet id: 205(0xcd), Planned size: 3, Actual size: 6 2 bytes packet id + 1 byte flag = 3 2 bytes packet id + 4 byte flag (wrong) = 6 Squashed with: * Separate processKickAck handler for eathena * Move ea's adminrecv and its sole handler processKickAck into TMWA namespace * Revert "Fix wrong read of clif_GM_kickack packet" This would break TMWA packet processing, as @thorbjorn pointed out. This reverts commit efe43bac4de90b3e427d985b77cb3dd3206bcf9d. **** mana/plus!148
2025-01-29Trim too much newliningFedja Beader1-15/+4
Pointless change, I know. **** mana/plus!115
2025-01-28Fix typo: opitons -> optionsFedja Beader1-4/+4
**** mana/plus!114
2024-08-28Further improve skill error handling and messages.Fedja Beader1-57/+41
Squashed with: * Appease linters + more reformat * Further improve skill error handling and messages. 24751878 "Improve skill error messages." added trailing dots only on the second branch. This adds missing dots on the first one as well as compacts the logic. **** mana/plus!93
2024-08-28Remove silly msg.read* duplicationFedja Beader6-52/+25
& shaves ~5KB from debug binary. previd=""; while read -r line; do if [[ $line =~ .*"msg.read"[^\"]*"\""([^\"]*).* ]]; then id="${BASH_REMATCH[1]}"; if [[ "$id" == "$previd" ]]; then printf "%s\n" "$line"; fi; previd="$id"; fi; done < <(grep -r 'msg.read.*' src/net/) **** mana/plus!91
2024-08-21Fix skill fail packet handling causing nullptr crash when switching charactersFedja Beader1-2/+6
How to reproduce: spam emote then quickly switch char Thread 1 "manaplus" received signal SIGSEGV, Segmentation fault. SkillDialog::getSkill (this=0x0, id=id@entry=1) at gui/windows/skilldialog.cpp:805 0 SkillDialog::getSkill (this=0x0, id=id@entry=1) at gui/windows/skilldialog.cpp:805 1 EAthena::SkillRecv::processSkillFailed (msg=...) at net/eathena/skillrecv.cpp:302 ... **** mana/plus!92
2024-05-16Refactor loadFromLogFile calls into ChatTab contructorFedja Beader2-4/+0
This has the side effect that now #Debug history is also loaded. **** mana/plus!84
2024-05-09Fix guild lvl-up packet parsing AND change password causing client exit in MLFedja Beader1-3/+1
What happened: 1) herc evol sends 0x100 as packet ID offset 2) 0x100 is added to 0x0062 of SMSG_CHAR_PASSWORD_RESPONSE 3) SMSG_CHAR_PASSWORD_RESPONSE is then inserted into 0x162 slot of packet map, shadowing SMSG_GUILD_SKILL_INFO 4) on guild lvl-up, server sends this in SMSG_GUILD_SKILL_INFO 5) ManaVerse exits in confusion. Note 1: due to popupmenu paste not working in change password dialog, tested password change only with invalid old password, which worked (opened error dialog instead of client exiting). Note 2: Some packet handlers are bound using &Ea::LoginRecv prefix, this one had &LoginRecv and this was kept this way (uses vtable lookup?). ~~TODO: SMSG_CHAR_PASSWORD_RESPONSE seems to be something about password changes, but I could not find this packet either in TMWA or herc. Still, I need to test if these still work on all active servers~~ Tested. Squashed with: * Fix exit on password change, too * Fix guild lvl-up packet parsing causing client exit in ML **** mana/plus!81
2024-04-27Fix "Show items" (equipment display on other players)Fedja Beader1-1/+1
See #73 for discussion Squashed with: * Fix mana pearl showing in arrows slot in Classic * Fix off-by-one. Was causing Old Towel to render in torso slot in ML. **** mana/plus!78
2024-03-25Typofix Guil -> Guild and insert AndFedja Beader3-14/+14
See merge request mana/plus!64
2024-03-11Remove last-login(time) from char select window.Fedja Beader1-1/+3
No server in use still sends that field. **** Approved-by: Jesusalva Jesusalva <jesusalva@themanaworld.org>
2024-03-11TypofixFedja Beader2-2/+2
**** Approved-by: Jesusalva Jesusalva <jesusalva@themanaworld.org> Approved-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
2024-02-16Client rebranding: Partly import changes from !28Jesusalva Jesusalva1-2/+3
Co-Authored-By: jak1 <jak1@themanaworld.org> Co-Authored-By: jesusalva <jesusalva@themanaworld.org> Co-Authored-By: Fedja Beader <fedja@protonmail.ch>
2024-02-09Update copyright headers up to 2023Jesusalva Jesusalva189-189/+378
2023-04-07added missing cstdint includejak11-0/+4
2021-06-06added exitcode 7 to unique sessions (-S)jak11-0/+15
2021-04-13moved all skillbased errors to debugChatTabjak11-2/+8
2019-10-16Fix code style, ignore some warning in clang-tidyAndrei Karas1-1/+1
2019-08-19Add new shuffle packetsAndrei Karas3-0/+1156
2019-08-19Update shortcuts related packets for zeroAndrei Karas3-2/+17
2019-08-19Update packet SMSG_BEING_HAT_EFFECTSAndrei Karas1-4/+11
2019-08-19Update packet SMSG_RANKS_LISTAndrei Karas3-9/+43
2019-08-19Update packet SMSG_HOMUNCULUS_INFOAndrei Karas3-0/+96
2019-06-26Update packet CMSG_SET_SHORTCUTSAndrei Karas3-1/+10
2019-06-26Update packet CMSG_SHORTCUTS_ROW_SHIFTAndrei Karas3-3/+22
2019-06-26Update packet SMSG_PLAYER_SHORTCUTSAndrei Karas3-8/+60
2019-06-24Fix code styleAndrei Karas2-3/+1
2019-05-18Fix code styleAndrei Karas5-11/+12
2019-05-16Remove extra include from generalhandler.cppAndrei Karas1-1/+0
2019-05-15Remove extra unused attribute in gamerecv.cppAndrei Karas1-1/+1
2019-05-15Change protocol version to 26Andrei Karas1-1/+1
2019-05-15Fix different server packets for packet versions where item id size was changedAndrei Karas1-0/+46
2019-05-15Update shuffle packetsAndrei Karas3-0/+340
2019-05-15Add packet SMSG_NAME_RESPONSE_TITLE 0x0adfAndrei Karas3-0/+79
2019-05-15Add packet SMSG_REFINE_ANNOUNCE 0x0adaAndrei Karas3-0/+26
2019-05-15Add packet CMSG_REFINE_CLOSE 0x0aa4Andrei Karas3-0/+11
2019-05-14Add item CMSG_REFINE_ITEM 0x0aa3Andrei Karas3-0/+27
2019-05-14Add packet SMSG_REFINE_ADD_ITEM 0x0aa2Andrei Karas3-0/+29
2019-05-14Add packet CMSG_REFINE_ADD_ITEM 0x0aa1Andrei Karas5-0/+116
2019-05-14Add packet SMSG_REFINE_WINDOW_OPEN 0x0aa0Andrei Karas4-0/+81
2019-05-14Add packet SMSG_MAP_LOAD_CONFIRM 0x0b1bAndrei Karas3-0/+24
2019-05-14Update packets SMSG_ACK_MERGE_ITEMS and SMSG_MERGE_ITEMAndrei Karas1-4/+13
2019-05-14Add packet SMSG_ROULETTE_CLOSE 0x0a1eAndrei Karas3-0/+20
2019-05-14Update packet SMSG_NPC_CASH_BUYAndrei Karas2-3/+14