rom24-quickmud-python 2.9.3__py3-none-any.whl → 2.9.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
mud/mob_cmds.py CHANGED
@@ -648,11 +648,19 @@ def do_mpoload(ch: Character, argument: str) -> None:
648
648
  if mode.startswith("r"):
649
649
  room.add_object(obj)
650
650
  return
651
+ # mirroring ROM src/mob_cmds.c:603-607 → src/handler.c:1626 obj_to_char.
652
+ # Route through Character.add_object so the INV-013 carrier field
653
+ # and INV-011 carry counters stay in lockstep with inventory.
654
+ add = getattr(ch, "add_object", None)
655
+ if callable(add):
656
+ add(obj)
657
+ return
651
658
  inventory = getattr(ch, "inventory", None)
652
659
  if inventory is None:
653
660
  inventory = []
654
661
  ch.inventory = inventory
655
662
  inventory.append(obj)
663
+ obj.location = ch
656
664
 
657
665
 
658
666
  def _resolve_transfer_location(ch: Character, token: str) -> Room | None:
mud/models/character.py CHANGED
@@ -540,7 +540,12 @@ class Character:
540
540
  return base_weight + silver // 10 + (gold * 2) // 5
541
541
 
542
542
  def add_object(self, obj: Object) -> None:
543
+ # mirroring ROM src/handler.c:1626 obj_to_char — the carrier
544
+ # field is set atomically with the inventory append. Using the
545
+ # INV-013 `obj.location` property dispatch sets `carried_by`
546
+ # and clears `in_room` / `in_obj` per the property contract.
543
547
  self.inventory.append(obj)
548
+ obj.location = self
544
549
  self.carry_number += _object_carry_number(obj)
545
550
  self._recalculate_carry_weight()
546
551
 
@@ -551,6 +556,10 @@ class Character:
551
556
  else:
552
557
  self.carry_number += carry_delta
553
558
  self.equipment[slot] = obj
559
+ # mirroring ROM src/handler.c equip_char — equipped objs stay
560
+ # owned by the carrier (only wear_loc changes); INV-013 makes
561
+ # carried_by the canonical carrier field.
562
+ obj.carried_by = self
554
563
  self._recalculate_carry_weight()
555
564
 
556
565
  def remove_object(self, obj: Object) -> None:
@@ -563,6 +572,10 @@ class Character:
563
572
  del self.equipment[slot]
564
573
  break
565
574
  self.carry_number = max(0, self.carry_number - carry_delta)
575
+ # mirroring ROM src/handler.c:1642 obj_from_char — extraction
576
+ # clears the carrier back-pointer atomically. INV-013.
577
+ if getattr(obj, "carried_by", None) is self:
578
+ obj.carried_by = None
566
579
  self._recalculate_carry_weight()
567
580
 
568
581
  # START affects_saves
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rom24-quickmud-python
3
- Version: 2.9.3
3
+ Version: 2.9.5
4
4
  Summary: A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading
5
5
  Author-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
6
6
  Maintainer-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
@@ -7,7 +7,7 @@ mud/game_loop.py,sha256=nzGos1soW6oN3LCdl_XYlmB-k2QRI0mnpGn5JofbFXM,52109
7
7
  mud/game_tick_scheduler.py,sha256=7ybo2ekDQQPGN82u6fhcrrg7tZ-JMtGy4UUrZv9_Umo,1539
8
8
  mud/handler.py,sha256=UDX7lxaOUFvHBgIJrkxfgVjm0n7B_vD-9xCvvN2CdLM,51995
9
9
  mud/logging.py,sha256=DoKcplYwEePAmXKE2CI_wNk4pF-pc_aouoxa5C6tXlc,582
10
- mud/mob_cmds.py,sha256=Qd2A7YEkLJsKsRcnIR5a-f0EkdX1akSPiq3OsAkvnWg,45825
10
+ mud/mob_cmds.py,sha256=Hv7tFhABraQLRbQihHOHTDE4qgE0GSuue1_RQkchQW4,46158
11
11
  mud/mobprog.py,sha256=TZiv4ZErFAlcO1TWaJryzZ5kwTZFe5DSqKVlo6qJcTc,59173
12
12
  mud/notes.py,sha256=mJM_f1lQ-Y1us7MHzHkgfozYKQCBm84FKRjmKpgoiOE,11501
13
13
  mud/registry.py,sha256=s8tGVKLZUU6-5c7HtBqhHQWLVxzFM4A9bpJ8avGt_0I,306
@@ -134,7 +134,7 @@ mud/models/area.py,sha256=RDn6e2N9AhoMW4d68-o8i1p1tNhuszaWjbOIkGTlW9I,835
134
134
  mud/models/area_json.py,sha256=GUCWUgFf2s6DUWzcLLYhoxTP38P5cu1vrSD1W3i7D2c,731
135
135
  mud/models/board.py,sha256=LDcNFHB7X3_BNJ9efTW_VJ-vOAQG1pPIByh1EsXseVA,6283
136
136
  mud/models/board_json.py,sha256=XG8t7lLW7b_V3IjzbGF-o6Ym36CTgKiOiBVZb-M0BpA,472
137
- mud/models/character.py,sha256=NVAXkqHgzCWN1Z4YqeU_CqbO63nfK3OcY_Sfa1xM_ag,51900
137
+ mud/models/character.py,sha256=CpeRH0VIlaZanz_VnAEWH9bRMKEvatJgJ8Yk_tF3j4I,52652
138
138
  mud/models/character_json.py,sha256=7rdI92S-JT38xb2iUyXTAJpLmFOIRy2pb6v1Yen8VQY,1046
139
139
  mud/models/clans.py,sha256=vMeVpK4VbYBtGYxRFdg2lUmkrjkCvqEM_jCOTNiuG3g,2227
140
140
  mud/models/classes.py,sha256=Fv0KjS339EBWqz5OBZu5TYSIDSRYpoalLTBJOf-6ThI,2602
@@ -216,9 +216,9 @@ mud/world/obj_find.py,sha256=tgnUkbFjnCl586Lzl6yRzCmllZSNEfQpQlrxCMVcUGU,5295
216
216
  mud/world/time_persistence.py,sha256=K4uhRpu08IDHY5uReBYTvw4BHuqsSxWvbv-h1VsPvf8,1663
217
217
  mud/world/vision.py,sha256=NRk3cvrGyyldU4W98qAVlYZp9wL-IUE1dTgk6DpM-NA,11609
218
218
  mud/world/world_state.py,sha256=3KpiDP6v24sZDn9-g44UypXpegzgRShHo1XvektJzdU,8810
219
- rom24_quickmud_python-2.9.3.dist-info/licenses/LICENSE,sha256=anQ2j9As6sIC8tZgQCXbo0-09JDH9vPiqhA9djnOvkY,1078
220
- rom24_quickmud_python-2.9.3.dist-info/METADATA,sha256=-IVsyn-ZbspIdmqhnJlnm1kfANB7ghvHxgy7pWIQlCE,15670
221
- rom24_quickmud_python-2.9.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
222
- rom24_quickmud_python-2.9.3.dist-info/entry_points.txt,sha256=VFru08UQTXZA_CkK-NBjJmWHyEX5a3864fQHjhaojbw,41
223
- rom24_quickmud_python-2.9.3.dist-info/top_level.txt,sha256=Fk1WPmabIIjp7_iZXLYpbAVqiq7lG7TeAHt30AsOKtQ,4
224
- rom24_quickmud_python-2.9.3.dist-info/RECORD,,
219
+ rom24_quickmud_python-2.9.5.dist-info/licenses/LICENSE,sha256=anQ2j9As6sIC8tZgQCXbo0-09JDH9vPiqhA9djnOvkY,1078
220
+ rom24_quickmud_python-2.9.5.dist-info/METADATA,sha256=LQqN5baUzzl00XWgEpzsZPXOLiBSynP78kGmcnzFlOw,15670
221
+ rom24_quickmud_python-2.9.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
222
+ rom24_quickmud_python-2.9.5.dist-info/entry_points.txt,sha256=VFru08UQTXZA_CkK-NBjJmWHyEX5a3864fQHjhaojbw,41
223
+ rom24_quickmud_python-2.9.5.dist-info/top_level.txt,sha256=Fk1WPmabIIjp7_iZXLYpbAVqiq7lG7TeAHt30AsOKtQ,4
224
+ rom24_quickmud_python-2.9.5.dist-info/RECORD,,