clean up comment about Ep3 reverse-engineering
This commit is contained in:
@@ -18,10 +18,6 @@
|
|||||||
|
|
||||||
namespace Episode3 {
|
namespace Episode3 {
|
||||||
|
|
||||||
// The comment in Server.hh does not apply to this file (and DataIndexes.cc).
|
|
||||||
// Except for the Location structure, these structures and functions are not
|
|
||||||
// based on Sega's original implementation.
|
|
||||||
|
|
||||||
class CardIndex;
|
class CardIndex;
|
||||||
class MapIndex;
|
class MapIndex;
|
||||||
class COMDeckIndex;
|
class COMDeckIndex;
|
||||||
@@ -638,7 +634,7 @@ struct CardDefinition {
|
|||||||
// The game then samples N card IDs from the appropriate buckets (where N is
|
// The game then samples N card IDs from the appropriate buckets (where N is
|
||||||
// the number chosen above), but for the first 1 or 2 cards, it applies the
|
// the number chosen above), but for the first 1 or 2 cards, it applies the
|
||||||
// restriction described above and re-draws if the card is the wrong type.
|
// restriction described above and re-draws if the card is the wrong type.
|
||||||
// After sampling the N card IDs, it shuffles them and presents them to the
|
// After sampling the N card IDs, it sorts them and presents them to the
|
||||||
// player.
|
// player.
|
||||||
//
|
//
|
||||||
// There is one more effect to consider after cards are chosen: cards may
|
// There is one more effect to consider after cards are chosen: cards may
|
||||||
|
|||||||
@@ -1621,14 +1621,14 @@ void Server::on_server_data_input(const string& data) {
|
|||||||
throw runtime_error("command is incomplete");
|
throw runtime_error("command is incomplete");
|
||||||
}
|
}
|
||||||
if (header.subcommand != 0xB3) {
|
if (header.subcommand != 0xB3) {
|
||||||
throw runtime_error("server data command is not B3");
|
throw runtime_error("server data command is not 6xB3");
|
||||||
}
|
}
|
||||||
|
|
||||||
handler_t handler = nullptr;
|
handler_t handler = nullptr;
|
||||||
try {
|
try {
|
||||||
handler = this->subcommand_handlers.at(header.subsubcommand);
|
handler = this->subcommand_handlers.at(header.subsubcommand);
|
||||||
} catch (const out_of_range&) {
|
} catch (const out_of_range&) {
|
||||||
throw runtime_error("unknown CAxB3 subsubcommand");
|
throw runtime_error("unknown CAx subsubcommand");
|
||||||
}
|
}
|
||||||
|
|
||||||
string unmasked_data = data;
|
string unmasked_data = data;
|
||||||
|
|||||||
+13
-6
@@ -19,17 +19,24 @@ struct Lobby;
|
|||||||
namespace Episode3 {
|
namespace Episode3 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This implementation of Episode 3 battles (contained in all files in the
|
* This implementation of Episode 3 battles is derived from Sega's original
|
||||||
* src/Episode3 directory, except for DataIndexes.hh/cc) is derived from Sega's
|
* server implementation, reverse-engineered from the Episode 3 client
|
||||||
* original server implementation, reverse-engineered from the Episode 3 client
|
|
||||||
* executable. The control flow, function breakdown, and structure definitions
|
* executable. The control flow, function breakdown, and structure definitions
|
||||||
* in these files map very closely to how their server implementation was
|
* in these files map very closely to how their server implementation was
|
||||||
* written; notable differences (due to necessary environment differences or bug
|
* written; notable differences (due to necessary environment differences or bug
|
||||||
* fixes) are described in the comments therein.
|
* fixes) are described in the comments therein.
|
||||||
*
|
*
|
||||||
* Some debugging functions have been added which are not part of the original
|
* The following files are direct reverse-engineerings of Sega's original code,
|
||||||
* implementation. Notably, this applies to functions like debug message senders
|
* except where noted in the comments:
|
||||||
* and loggers and all str() functions.
|
* AssistServer.hh/cc
|
||||||
|
* Card.hh/cc
|
||||||
|
* CardSpecial.hh/cc
|
||||||
|
* DeckState.hh/cc
|
||||||
|
* MapState.hh/cc
|
||||||
|
* PlayerState.hh/cc
|
||||||
|
* PlayerStateSubordinates.hh/cc
|
||||||
|
* RulerServer.hh/cc
|
||||||
|
* Server.hh/cc
|
||||||
*
|
*
|
||||||
* There are likely undiscovered bugs in this code, some originally written by
|
* There are likely undiscovered bugs in this code, some originally written by
|
||||||
* Sega, but more written by me as I manually transcribed and updated this code.
|
* Sega, but more written by me as I manually transcribed and updated this code.
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ struct ServerState;
|
|||||||
|
|
||||||
namespace Episode3 {
|
namespace Episode3 {
|
||||||
|
|
||||||
// The comment in Server.hh does not apply to this file (and Tournament.cc).
|
|
||||||
|
|
||||||
class Tournament : public std::enable_shared_from_this<Tournament> {
|
class Tournament : public std::enable_shared_from_this<Tournament> {
|
||||||
public:
|
public:
|
||||||
enum Flag : uint8_t {
|
enum Flag : uint8_t {
|
||||||
|
|||||||
Reference in New Issue
Block a user