Browse Source

Fixed clif_guild_positioninfolist

Fixes #8648

Thanks to @thanna, @laziem, @skstrife and @AoShinRO
Lemongrass3110 8 months ago
parent
commit
7880596b03
2 changed files with 14 additions and 11 deletions
  1. 6 5
      src/map/clif.cpp
  2. 8 6
      src/map/packets_struct.hpp

+ 6 - 5
src/map/clif.cpp

@@ -8871,13 +8871,14 @@ static void clif_guild_positioninfolist(map_session_data& sd){
 
 	for(size_t i=0;i<MAX_GUILDPOSITION;i++){
 		guild_position& gp = g->guild.position[i];
+		PACKET_ZC_POSITION_INFO_sub& position = p->posInfo[i];
 
-		p->posInfo[i].positionID = i;
-		p->posInfo[i].right = gp.mode;
-		p->posInfo[i].ranking = i;
-		p->posInfo[i].payRate = gp.exp_mode;
+		position.positionID = static_cast<decltype(position.positionID)>( i );
+		position.right = gp.mode;
+		position.ranking = static_cast<decltype(position.ranking)>( i );
+		position.payRate = gp.exp_mode;
 
-		p->PacketLength += static_cast<decltype(p->PacketLength)>( sizeof( p->posInfo[0] ) );
+		p->PacketLength += static_cast<decltype(p->PacketLength)>( sizeof( position ) );
 	}
 
 	clif_send(p,p->PacketLength,&sd.bl,SELF);

+ 8 - 6
src/map/packets_struct.hpp

@@ -4998,15 +4998,17 @@ struct PACKET_ZC_POSITION_ID_NAME_INFO {
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(ZC_POSITION_ID_NAME_INFO, 0x0166);
 
+struct PACKET_ZC_POSITION_INFO_sub {
+	int positionID;
+	int right;
+	int ranking;
+	int payRate;
+} __attribute__((packed));
+
 struct PACKET_ZC_POSITION_INFO {
 	int16 PacketType;
 	int16 PacketLength;
-	struct {
-		int positionID;
-		int right;
-		int ranking;
-		int payRate;
-	} posInfo[MAX_GUILDPOSITION];
+	struct PACKET_ZC_POSITION_INFO_sub posInfo[];
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(ZC_POSITION_INFO, 0x0160);