Browse Source

Converted CZ_INPUT_EDITDLG to struct (#9003)

Lemongrass3110 3 months ago
parent
commit
b12526368b
3 changed files with 17 additions and 8 deletions
  1. 9 7
      src/map/clif.cpp
  2. 1 1
      src/map/clif_packetdb.hpp
  3. 7 0
      src/map/packets.hpp

+ 9 - 7
src/map/clif.cpp

@@ -13296,20 +13296,22 @@ void clif_parse_NpcNextClicked(int32 fd,map_session_data *sd)
 }
 
 
-/// NPC numeric input dialog value (CZ_INPUT_EDITDLG).
-/// 0143 <npc id>.L <value>.L
+/// NPC numeric input dialog value.
+/// 0143 <npc id>.L <value>.L (CZ_INPUT_EDITDLG)
 void clif_parse_NpcAmountInput(int32 fd,map_session_data *sd){
-	struct s_packet_db* info = &packet_db[RFIFOW(fd,0)];
-	int32 npcid = RFIFOL(fd,info->pos[0]);
-	int32 amount = (int32)RFIFOL(fd,info->pos[1]);
+	if( sd == nullptr ){
+		return;
+	}
+
+	const PACKET_CZ_INPUT_EDITDLG* p = reinterpret_cast<PACKET_CZ_INPUT_EDITDLG*>( RFIFOP( fd, 0 ) );
 
-	sd->npc_amount = amount;
+	sd->npc_amount = p->value;
 
 	if( battle_config.idletime_option&IDLE_NPC_INPUT ){
 		sd->idletime = last_tick;
 	}
 
-	npc_scriptcont(sd, npcid, false);
+	npc_scriptcont( sd, p->GID, false );
 }
 
 

+ 1 - 1
src/map/clif_packetdb.hpp

@@ -139,7 +139,7 @@
 	packet(0x013e,24);
 	parseable_packet(0x013f,26,clif_parse_GM_Item_Monster,2);
 	parseable_packet( HEADER_CZ_MOVETO_MAP, sizeof( PACKET_CZ_MOVETO_MAP ), clif_parse_MapMove, 0 );
-	parseable_packet(0x0143,10,clif_parse_NpcAmountInput,2,6);
+	parseable_packet( HEADER_CZ_INPUT_EDITDLG, sizeof( PACKET_CZ_INPUT_EDITDLG ), clif_parse_NpcAmountInput, 0 );
 	packet(0x0145,19);
 	parseable_packet(0x0146,6,clif_parse_NpcCloseClicked,2);
 	packet(0x0147,39);

+ 7 - 0
src/map/packets.hpp

@@ -1769,6 +1769,13 @@ struct PACKET_CZ_SELECT_WARPPOINT{
 } __attribute__((packed));
 DEFINE_PACKET_HEADER(CZ_SELECT_WARPPOINT, 0x11b);
 
+struct PACKET_CZ_INPUT_EDITDLG{
+	int16 packetType;
+	uint32 GID;
+	int32 value;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_INPUT_EDITDLG, 0x143);
+
 // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
 #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
 	#pragma pack( pop )