Browse Source

EQ2emu merge update with LoginStructs broke world list on char creation

Reverted LoginStructs.xml, also added a mem leak fix in LWorld.cpp (something I should have dealt with earlier)
Image 4 years ago
parent
commit
74e4b20180
4 changed files with 35 additions and 68 deletions
  1. 3 2
      EQ2/source/LoginServer/LWorld.cpp
  2. 16 33
      EQ2/structs/LoginStructs.xml
  3. BIN
      server/EQ2Login__Debug.exe
  4. 16 33
      server/LoginStructs.xml

+ 3 - 2
EQ2/source/LoginServer/LWorld.cpp

@@ -1127,7 +1127,7 @@ EQ2Packet* LWorldList::MakeServerListPacket(int8 lsadmin, int16 version) {
 	}
 	ServerNum+=3;
 	*/
-	
+
 	PacketStruct* packet = configReader.getStruct("LS_WorldList", version);
 	packet->setArrayLengthByName("num_worlds", 1);
 
@@ -1155,7 +1155,8 @@ EQ2Packet* LWorldList::MakeServerListPacket(int8 lsadmin, int16 version) {
 		}
 	}
 
-			EQ2Packet* pack = packet->serialize();
+	EQ2Packet* pack = packet->serialize();
+	safe_delete(ServerListData);
 	ServerListData = pack;
 	MWorldMap.releasereadlock();
 

+ 16 - 33
EQ2/structs/LoginStructs.xml

@@ -75,39 +75,22 @@ to zero and treated like placeholders." />
 </Data>
 </Struct>-->
 <Struct Name="LS_WorldList" ClientVersion="1" OpcodeName="OP_WorldListMsg">
-	<Data ElementName="num_worlds" Type="int8" />
-	<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
-		<Data ElementName="id" Type="int32" Size="1" />
-		<Data ElementName="name" Type="EQ2_16Bit_String" />
-		<Data ElementName="name2" Type="EQ2_16Bit_String" />
-		<Data ElementName="tag" Type="int8" Size="1" />
-		<Data ElementName="locked" Type="int8" Size="1" />
-		<Data ElementName="hidden" Type="int8" Size="1" />
-		<Data ElementName="unknown" Type="int8" Size="1" />
-		<Data ElementName="num_players" Type="int16" Size="1" />
-		<Data ElementName="load" Type="int8" Size="1" />
-		<Data ElementName="number_online_flag" Type="int8" Size="1" />
-		<Data ElementName="feature_set" Type="int8" Size="1" />
-		<Data ElementName="allowed_races" Type="int32" Size="1" />
-	</Data>
-</Struct>
-<Struct Name="LS_WorldList" ClientVersion="60100" OpcodeName="OP_WorldListMsg">
-	<Data ElementName="num_worlds" Type="int8" />
-	<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
-		<Data ElementName="id" Type="int32" Size="1" />
-		<Data ElementName="name" Type="EQ2_16Bit_String" />
-		<Data ElementName="name2" Type="EQ2_16Bit_String" />
-		<Data ElementName="tag" Type="int8" Size="1" />
-		<Data ElementName="locked" Type="int8" Size="1" />
-		<Data ElementName="hidden" Type="int8" Size="1" />
-		<Data ElementName="unknown" Type="int8" Size="1" />
-		<Data ElementName="num_players" Type="int16" Size="1" />
-		<Data ElementName="load" Type="int8" Size="1" />
-		<Data ElementName="number_online_flag" Type="int8" Size="1" />
-		<Data ElementName="feature_set" Type="int8" Size="2" />
-		<Data ElementName="allowed_races" Type="int32" Size="1" />
-		</Data>
-	<Data ElementName="unknown2" Type="int8" />
+<Data ElementName="num_worlds" Type="int8" />
+<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
+  <Data ElementName="id" Type="int32" Size="1" />
+  <Data ElementName="name" Type="EQ2_16Bit_String" />
+  <Data ElementName="name2" Type="EQ2_16Bit_String" />
+  <Data ElementName="tag" Type="int8" Size="1" />
+  <Data ElementName="locked" Type="int8" Size="1" />
+  <Data ElementName="hidden" Type="int8" Size="1" />
+  <Data ElementName="unknown" Type="int8" Size="1" />
+  <Data ElementName="num_players" Type="int16" Size="1" />
+  <Data ElementName="load" Type="int8" Size="1" />
+  <Data ElementName="number_online_flag" Type="int8" Size="1" />
+  <Data ElementName="feature_set" Type="int8" Size="2" />
+  <Data ElementName="allowed_races" Type="int32" Size="1" />
+</Data>
+<Data ElementName="unknown2" Type="int8" />
 </Struct>
 <Struct Name="LS_WorldUpdate" ClientVersion="1" OpcodeName="OP_WorldStatusChangeMsg">
 <Data ElementName="server_id" Type="int32" Size="1" />

BIN
server/EQ2Login__Debug.exe


+ 16 - 33
server/LoginStructs.xml

@@ -75,39 +75,22 @@ to zero and treated like placeholders." />
 </Data>
 </Struct>-->
 <Struct Name="LS_WorldList" ClientVersion="1" OpcodeName="OP_WorldListMsg">
-	<Data ElementName="num_worlds" Type="int8" />
-	<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
-		<Data ElementName="id" Type="int32" Size="1" />
-		<Data ElementName="name" Type="EQ2_16Bit_String" />
-		<Data ElementName="name2" Type="EQ2_16Bit_String" />
-		<Data ElementName="tag" Type="int8" Size="1" />
-		<Data ElementName="locked" Type="int8" Size="1" />
-		<Data ElementName="hidden" Type="int8" Size="1" />
-		<Data ElementName="unknown" Type="int8" Size="1" />
-		<Data ElementName="num_players" Type="int16" Size="1" />
-		<Data ElementName="load" Type="int8" Size="1" />
-		<Data ElementName="number_online_flag" Type="int8" Size="1" />
-		<Data ElementName="feature_set" Type="int8" Size="1" />
-		<Data ElementName="allowed_races" Type="int32" Size="1" />
-	</Data>
-</Struct>
-<Struct Name="LS_WorldList" ClientVersion="60100" OpcodeName="OP_WorldListMsg">
-	<Data ElementName="num_worlds" Type="int8" />
-	<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
-		<Data ElementName="id" Type="int32" Size="1" />
-		<Data ElementName="name" Type="EQ2_16Bit_String" />
-		<Data ElementName="name2" Type="EQ2_16Bit_String" />
-		<Data ElementName="tag" Type="int8" Size="1" />
-		<Data ElementName="locked" Type="int8" Size="1" />
-		<Data ElementName="hidden" Type="int8" Size="1" />
-		<Data ElementName="unknown" Type="int8" Size="1" />
-		<Data ElementName="num_players" Type="int16" Size="1" />
-		<Data ElementName="load" Type="int8" Size="1" />
-		<Data ElementName="number_online_flag" Type="int8" Size="1" />
-		<Data ElementName="feature_set" Type="int8" Size="2" />
-		<Data ElementName="allowed_races" Type="int32" Size="1" />
-		</Data>
-	<Data ElementName="unknown2" Type="int8" />
+<Data ElementName="num_worlds" Type="int8" />
+<Data ElementName="world_list" Type="Array" ArraySizeVariable="num_worlds">
+  <Data ElementName="id" Type="int32" Size="1" />
+  <Data ElementName="name" Type="EQ2_16Bit_String" />
+  <Data ElementName="name2" Type="EQ2_16Bit_String" />
+  <Data ElementName="tag" Type="int8" Size="1" />
+  <Data ElementName="locked" Type="int8" Size="1" />
+  <Data ElementName="hidden" Type="int8" Size="1" />
+  <Data ElementName="unknown" Type="int8" Size="1" />
+  <Data ElementName="num_players" Type="int16" Size="1" />
+  <Data ElementName="load" Type="int8" Size="1" />
+  <Data ElementName="number_online_flag" Type="int8" Size="1" />
+  <Data ElementName="feature_set" Type="int8" Size="2" />
+  <Data ElementName="allowed_races" Type="int32" Size="1" />
+</Data>
+<Data ElementName="unknown2" Type="int8" />
 </Struct>
 <Struct Name="LS_WorldUpdate" ClientVersion="1" OpcodeName="OP_WorldStatusChangeMsg">
 <Data ElementName="server_id" Type="int32" Size="1" />