polserver/pol-core/bscript
Fernando Rozenblit 721e4fefe0
Refactor Item states to be explicit instead of implicit (#919)
* extend tests

* more tests for world save

* explicit handle the special layers in wornitem

* add Location variant and relocate() methods

* refactor GottenItem and ensure Chr, not wornitems, is saved

* deflake escript watch test

* dropitem and undo refactoring

* uomod changes

* add more item tests (buy, sell, hair...)

* use location for undoing trade container properly

* rewrite loaddata to use relocate, fixing startup crashes

* do remaining location changes

* fix CI tests

* remove container pointer from item and add wearer() reference

* remove layer writes and explicit intrinsic weapon handling

* add preparing state for fresh items without serial number

* move wornitems to detached state only when it has a serial number

* load corpse items into the correct layer

* do not set a layer on load before the item is equipped

* add more tests to equipped and intrinsic items

* remove layer and substitute with the location()

* add core-changes summary

* mark items as being worn on corpse if they only moved within the corpse

* block Preparing from being reached, just to be sure

* added integrity sweep check

* Reduce direect changes to item location

* Add Item::move_into() and rewrite calling sites

* Fix container slots

* get rid of the slot_index on the item, because Location() already has it

* fix race in test leading to macos issues

* fix dangling pointer

* remove corpse can_equip_list and rely on the GottenItem rules to dress the corpse again

* let item->destroy() detach the item

* make integrity checks fail the tests

* use place_at(item, newpos) for changing item position InWorld

* add boat test for item moved out of boat that should not be visible anymore

* use place_at() in more places

* ensure CreateItemAtLocation really does

* fix Claude instructions

* remove state we didn't need

* fine tuning

* reduce test flakiness
2026-08-10 18:17:53 +00:00
..
compiler Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bapplicobj.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bapplicobj.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
barray.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
barray.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bboolean.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bboolean.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bclassinstance.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bclassinstance.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bcontinuation.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bcontinuation.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bcontiter.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bcontiter.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bdict.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bdict.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bdouble.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bdouble.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
berror.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
berror.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bfuncref.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bfuncref.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
blong.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
blong.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bobject.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bobject.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bobjectimp.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bobjectimp.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bregexp.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bregexp.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bspecialjump.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bspecialjump.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bspread.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bspread.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bstring.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bstring.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bstruct.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
bstruct.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
buninit.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
buninit.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
CMakeLists.txt CMake target cleanup, removed configure options (#614) 2024-02-01 08:07:37 +01:00
CMakeSources.cmake Fixed shortcircuit optimization for consecutive jumps (#898) 2026-07-22 12:58:56 +02:00
compilercfg.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
compilercfg.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
config.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
eprog.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
eprog.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
eprog_read.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
escript_config.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
escriptv.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
escriptv.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
escrutil.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
escrutil.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
execmodl.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
execmodl.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
exectype.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
executor.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
executor.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
executor.inl.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
executortype.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
filefmt.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
fmodule.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
fmodule.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
modules.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
objaccess.cpp Refactor Item states to be explicit instead of implicit (#919) 2026-08-10 18:17:53 +00:00
object.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
objmembers.h Refactor Item states to be explicit instead of implicit (#919) 2026-08-10 18:17:53 +00:00
objmethods.h Clang Tidy concat namespaces (#855) 2026-01-17 10:30:21 +01:00
StdAfx.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
StdAfx.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
StoredToken.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
StoredToken.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
str.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
str.h removed printOn method these debug strings where only used at a single (#899) 2026-07-21 08:50:32 +02:00
symcont.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
symcont.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
tkn_strm.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
token.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
token.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
tokens.cpp Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00
tokens.h Includes are now all relative to pol-core basefolder (#906) 2026-07-25 23:01:18 +02:00