1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-30 09:15:38 +00:00
openmw/components/esm3
elsid e892c62b10
Fix loading, inserting and moving topic info records
Topic info records need to have specific order defined via mNext and mPrev
fields (next and previous records). When loading multiple files a record may be
inserted into middle of the topic but neighborhood records may not be aware of
it. Having the order it's possible to move the records within one topic.

Sort the record once after loading all content files but preserve the order for
all other operations. Use std::map to group info ids by topic to make sure the
topics order is stable. Keep order within a topic for info ids on loading new
records. Use this order later for sorting the records.
2023-03-13 21:57:38 +01:00
..
activespells.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
activespells.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
aipackage.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
aipackage.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
aisequence.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
aisequence.hpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
animationstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
animationstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
cellid.cpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
cellid.hpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
cellref.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
cellref.hpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
cellstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
cellstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
containerstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
containerstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
controlsstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
controlsstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
creaturelevliststate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
creaturelevliststate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
creaturestate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
creaturestate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
creaturestats.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
creaturestats.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
custommarkerstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
custommarkerstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
debugprofile.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
debugprofile.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
dialoguestate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
dialoguestate.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
doorstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
doorstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
effectlist.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
effectlist.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
esmreader.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
esmreader.hpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
esmwriter.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
esmwriter.hpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
filter.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
filter.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
fogstate.cpp Avoid UB on empty fog data record 2023-02-17 23:42:49 +01:00
fogstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
formatversion.hpp Support variable size strings in ESM3 2023-02-13 10:18:32 +01:00
globalmap.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
globalmap.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
globalscript.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
globalscript.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
infoorder.cpp Fix loading, inserting and moving topic info records 2023-03-13 21:57:38 +01:00
infoorder.hpp Fix loading, inserting and moving topic info records 2023-03-13 21:57:38 +01:00
inventorystate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
inventorystate.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
journalentry.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
journalentry.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
loadacti.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadacti.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadalch.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadalch.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadappa.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadappa.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadarmo.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadarmo.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadbody.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadbody.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadbook.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadbook.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
loadbsgn.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadbsgn.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadcell.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadcell.hpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
loadclas.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadclas.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadclot.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadclot.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadcont.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadcont.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadcrea.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadcrea.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loaddial.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loaddial.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loaddoor.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loaddoor.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadench.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadench.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadfact.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadfact.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadglob.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadglob.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadgmst.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadgmst.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadinfo.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadinfo.hpp openMW_test_suite compiles and runs 2022-12-27 19:15:55 +01:00
loadingr.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadingr.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadland.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
loadland.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
loadlevlist.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadlevlist.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
loadligh.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadligh.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadlock.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadlock.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadltex.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadltex.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadmgef.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadmgef.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadmisc.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadmisc.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadnpc.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadnpc.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadpgrd.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadpgrd.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadprob.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadprob.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadrace.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadrace.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadregn.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadregn.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadrepa.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadrepa.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadscpt.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadscpt.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadskil.cpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadskil.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadsndg.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadsndg.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadsoun.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadsoun.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadspel.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadspel.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadsscr.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadsscr.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
loadstat.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadstat.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
loadtes3.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
loadtes3.hpp Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
loadweap.cpp Replace ESM::RefId::sEmpty by default constructed RefId where possible 2023-02-18 01:07:15 +01:00
loadweap.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
locals.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
locals.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
magiceffects.cpp Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
magiceffects.hpp Remove redundant ESM::RefId member functions 2022-12-30 00:32:47 +01:00
mappings.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
mappings.hpp Remove ESM:: namespace qualifier in components/esm3/ and tests 2022-04-12 02:04:24 +02:00
npcstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
npcstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
npcstats.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
npcstats.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
objectstate.cpp Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
objectstate.hpp Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
player.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
player.hpp Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type 2022-12-27 19:15:54 +01:00
projectilestate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
projectilestate.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
queststate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
queststate.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
quickkeys.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
quickkeys.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
readerscache.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
readerscache.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
savedgame.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
savedgame.hpp Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
spelllist.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
spelllist.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
spellstate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
spellstate.hpp Convert RefId to class 2023-02-15 23:20:44 +01:00
statstate.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
statstate.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
stolenitems.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
stolenitems.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00
transport.cpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
transport.hpp Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
variant.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
variant.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
variantimp.cpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
variantimp.hpp Apply clang-format to code base 2022-09-22 21:35:26 +03:00
weatherstate.cpp Add functions to read and write ESM::RefId and use them 2023-02-13 22:07:58 +01:00
weatherstate.hpp create a specific esm reader function for RefID to avoid allocation for string and then again for RefId 2022-12-27 19:15:57 +01:00