EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EVEMarshalOpcodes.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur
24 */
25 
26 // no clue where these come from, how they were found, or how i can implement the unfinished ones....
27 
28 
29 #ifndef EVE_MARSHAL_OPCODES_H
30 #define EVE_MARSHAL_OPCODES_H
31 
33 {
34  Op_PyNone = 0x01,
35  Op_PyToken = 0x02,
36  Op_PyLongLong = 0x03,
37  Op_PyLong = 0x04,
39  Op_PyByte = 0x06,
40  Op_PyMinusOne = 0x07,
43  Op_PyReal = 0x0A,
44  Op_PyZeroReal = 0x0B,
45  //Op_PyUnused1 = 0x0C,
46  Op_PyBuffer = 0x0D,
47  Op_PyEmptyString = 0x0E, //not 100% sure.
48  Op_PyCharString = 0x0F, //a single character string
49  Op_PyShortString = 0x10, //string limited to 255 chars
52  Op_PyLongString = 0x13, //string with length extension support
53  Op_PyTuple = 0x14,
54  Op_PyList = 0x15,
55  Op_PyDict = 0x16,
56  Op_PyObject = 0x17,
57  //Op_Pyunk2 = 0x18,
58  Op_PySubStruct = 0x19, //another stream nested in the current stream, length implied by marshaling a single element.
59  //Op_Pyunk3 = 0x1A, //"load"
62  //Op_PyUnused2 = 0x1D,
63  //Op_PyUnused3 = 0x1E,
64  Op_PyTrue = 0x1F,
65  Op_PyFalse = 0x20,
66  Op_cPicked = 0x21,
68  Op_PyObjectEx2 = 0x23, // still not 100% completed
70  Op_PyOneTuple = 0x25,
72  Op_PyOneList = 0x27,
74  Op_PyWStringUCS2Char = 0x29, // a single character string
75  Op_PyPackedRow = 0x2A, // still working on this one...
77  Op_PyTwoTuple = 0x2C,
80  Op_PyVarInteger = 0x2F, // variable length integer field??? // PyLong from Byte array
82 
83  // seen these on main server.
84  // E Unmarshal: Invalid stream received (header byte ...)
85  // = 0x5
86  // = 0xE
87  // = 0xCC
88 }; //6 bits
89 
90 static const uint8 PyRepSaveMask = 0x40;
91 static const uint8 PyRepUnknownMask = 0x80;
92 static const uint8 MarshalHeaderByte = 0x7E; //'~'
93 
94 #endif//EVE_MARSHAL_OPCODES_H
95 
96 
97 
98 
99 
unsigned __int8 uint8
Definition: eve-compat.h:46
static const uint8 PyRepSaveMask
static const uint8 PyRepUnknownMask
PyRepOpcode
static const uint8 MarshalHeaderByte