@@ -481,33 +481,36 @@ func (geh gameEventHandler) bombBegindefuse(desc *msg.CSVCMsg_GameEventListDescr
481481func (geh gameEventHandler ) itemEquip (desc * msg.CSVCMsg_GameEventListDescriptorT , ge * msg.CSVCMsg_GameEvent ) {
482482 player , weapon := geh .itemEvent (desc , ge )
483483 geh .dispatch (events.ItemEquip {
484- Player : player ,
485- Weapon : weapon ,
484+ Player : player ,
485+ Weapon : * weapon ,
486+ WeaponPtr : weapon ,
486487 })
487488}
488489
489490func (geh gameEventHandler ) itemPickup (desc * msg.CSVCMsg_GameEventListDescriptorT , ge * msg.CSVCMsg_GameEvent ) {
490491 player , weapon := geh .itemEvent (desc , ge )
491- geh .dispatch (events.ItemPickup {
492+ // Delayed because of #119 - Equipment.UniqueID()
493+ geh .parser .delayedEvents = append (geh .parser .delayedEvents , events.ItemPickup {
492494 Player : player ,
493- Weapon : weapon ,
495+ Weapon : * weapon ,
494496 })
495497}
496498
497499func (geh gameEventHandler ) itemRemove (desc * msg.CSVCMsg_GameEventListDescriptorT , ge * msg.CSVCMsg_GameEvent ) {
498500 player , weapon := geh .itemEvent (desc , ge )
499501 geh .dispatch (events.ItemDrop {
500- Player : player ,
501- Weapon : weapon ,
502+ Player : player ,
503+ Weapon : * weapon ,
504+ WeaponPtr : weapon ,
502505 })
503506}
504507
505- func (geh gameEventHandler ) itemEvent (desc * msg.CSVCMsg_GameEventListDescriptorT , ge * msg.CSVCMsg_GameEvent ) (* common.Player , common.Equipment ) {
508+ func (geh gameEventHandler ) itemEvent (desc * msg.CSVCMsg_GameEventListDescriptorT , ge * msg.CSVCMsg_GameEvent ) (* common.Player , * common.Equipment ) {
506509 data := mapGameEventData (desc , ge )
507510 player := geh .playerByUserID32 (data ["userid" ].GetValShort ())
508511
509512 wepType := common .MapEquipment (data ["item" ].GetValString ())
510- weapon := common . NewEquipment ( wepType )
513+ weapon := getPlayerWeapon ( player , wepType )
511514
512515 return player , weapon
513516}
0 commit comments