Commit Graph

63 Commits (new-script-api)

Author SHA1 Message Date
MiroslavR d790747389 Implement deletion of moved references (Bug #3471) 9 years ago
scrawl 121bdd3e39 Update comment 9 years ago
scrawl 3d6323f13a Force-enable hasWater() for exterior cells (Fixes #3222) 9 years ago
scrawl fbee32729a Cache CellId
ESM::Cell::getCellId() was allocating a string on every call. This caused functions dealing with cellIds to be unnecessarily expensive.

For example, World::moveObject spent almost as much time comparing CellIds as it did updating Bullet's AABB after the move. OpGetDistance was by far the most expensive script instruction because it has to compare cellIds.

The total cost of getCellId() relative to the frame loop was about 0.3%.
9 years ago
Stanislav Bas 4a16eba716 Make deleted flag a parameter of load/save methods (instead of a record member) in ESM records 10 years ago
Stanislav Bas e8a9567be3 Move DELE handling to CellRef record 10 years ago
Stanislav Bas 7ecb54a776 Set Deleted flag to false when initializing ESM records 10 years ago
Stanislav Bas b667338a8f Add NAME and DELE handling to Cell record 10 years ago
scrawl 28caeadef4 Improve error message for not found records 10 years ago
Rohit Nirmal 997347b01e Silence -Wreorder warnings. 10 years ago
cc9cii dcce59f76c Pass MovedCellRef info to RefCollection. Still has debugging code. 10 years ago
cc9cii f1a58994c6 Merge branch 'master' into moveref
Conflicts:
	apps/opencs/model/world/columns.hpp
	apps/opencs/model/world/commands.cpp
	apps/opencs/model/world/commands.hpp
	apps/opencs/model/world/ref.cpp
	apps/opencs/view/world/dialoguesubview.cpp
	apps/opencs/view/world/dialoguesubview.hpp
	apps/opencs/view/world/util.cpp
	components/esm/cellref.hpp
10 years ago
dteviot 946dd16696 Fixed Windows warning.
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
10 years ago
dteviot e02bab67ba Fixed MSVC warnings.
warning C4099: 'ESM::ESMReader' : type name first seen using 'class' now seen using 'struct'
warning C4099: 'ESM::CellId' : type name first seen using 'struct' now seen using 'class'
10 years ago
Marc Zinnschlag 7f905470fa fixed moved reference loading 10 years ago
Thoronador 773669952b remove initializing constructors from "dumb structs"
As suggested by Marc Zinnschlag:
https://github.com/OpenMW/openmw/pull/423#issuecomment-68526701
10 years ago
Thoronador 87fac78823 fix uninitialized members in Cell and structures 10 years ago
scrawl 7252cb63a6 Fix cppcheck issues 10 years ago
scrawl ccde462308 Fix typo (RefId -> RefNum) 11 years ago
scrawl 4e0c133fb3 Add comment to Cell NAM0 (it's a RefId counter) 11 years ago
scrawl 73be457805 Merge ESM::Cell fields by subrecord
Fixes an issue with the Morrowind Patched mod where cell ambient values would become black due to the new cell records not including an AMBI subrecord.

Also fixes a bug where mLeasedRefs was incorrectly cleared when overwriting a cell (*oldcell = *cell;)
11 years ago
scrawl 039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
11 years ago
Marc Zinnschlag 1b5301eec0 Merge branch 'savedgame'
Conflicts:
	apps/openmw/mwbase/mechanicsmanager.hpp
	apps/openmw/mwbase/soundmanager.hpp
	apps/openmw/mwgui/mapwindow.hpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
	apps/openmw/mwsound/soundmanagerimp.hpp
	components/esm/loadcell.cpp
11 years ago
scrawl 03cf383be7 Merge branch 'master' of https://github.com/zinnschlag/openmw into savedgame
Conflicts:
	apps/openmw/mwgui/referenceinterface.cpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
	apps/openmw/mwscript/cellextensions.cpp
	apps/openmw/mwworld/cells.cpp
	apps/openmw/mwworld/cells.hpp
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/store.cpp
	apps/openmw/mwworld/worldimp.cpp
11 years ago
scrawl 4c0045b418 Bug #1109: Do not reset water level when loading a plugin with no water level record (for real this time) 11 years ago
scrawl 3ea1407ed3 Closes #1109: Don't reset water level when loading a plugin that does include water level records 11 years ago
Marc Zinnschlag 8c5f313546 added savedgame-specifc record structs for objects state 11 years ago
Marc Zinnschlag 9025210965 Merge branch 'refnum' into savedgame
Conflicts:
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/manualref.hpp
	components/esm/cellref.hpp
11 years ago
Marc Zinnschlag 43dd3b8ef2 removed redundant deletion flag from CellRef 11 years ago
Marc Zinnschlag c22e38f825 removing 255 content file limitation 11 years ago
Marc Zinnschlag c42e74dadf make 4 byte record type accessable from record struct 11 years ago
Marc Zinnschlag 874ce26bef added missing consts to record save functions 11 years ago
Chris Robinson 602be9bbe7 Avoid swimming into the air from underwater 12 years ago
Glorf 98baf9fac1 Bugfix #718 12 years ago
Marc Zinnschlag 0c33dd86d5 added basic cell table 12 years ago
Marc Zinnschlag 8c7d578ddc moved the CellRef struct to its own header 12 years ago
scrawl 6f1575d42a CELL record corrections 12 years ago
scrawl 8e2f9f5186 Fix CellRef to load current weapon/armor health correctly, also show it in the tooltips 12 years ago
greye 9133182f2f restore loading CELL records in esmtool 12 years ago
Chris Robinson e2d7cc49e3 Merge remote-tracking branch 'zini/next' into animation2 12 years ago
Douglas Mencken df5919f2c5 Use `signed char' explicitly where needed. It is important because:
- It is implementation-dependent if plain `char' signed or not.
- C standard defines three *distinct* types: char, signed char,
  and unsigned char.
- Assuming that char is always unsigned or signed can lead to
  compile-time and run-time errors.

You can also use int8_t, but then it would be less obvious for developers
to never assume that char is always unsigned (or always signed).

Conflicts:

	components/esm/loadcell.hpp
12 years ago
Chris Robinson f197c67e95 Fix a circular include 12 years ago
Mark Siewert eefbdde6de - For pull request: remove all instances of maps used to track refnumbers.
- new file: apps/openmw/mwworld/store.cpp, had to move reference merging method out of the header file to prevent three-way recursion/unresolved forward references in custom compare operators.
12 years ago
Mark Siewert a8e02779b2 - Add support for multiple plugins trying to modify the same reference
- Fix a small signed/unsigned warning
12 years ago
Mark Siewert d6377fb2e3 - Support deleting references from a plugin
- Add preliminary support for loading some unique fields appearing only in savegames
- Add a few lines required for supporting respawning references. Incomplete.
12 years ago
Mark Siewert 42eefaf36f - Add support for loading references from multiple esm/esp files. Full reference ID mangling coming soon (currently, moved references are simply cloned).
- Reference loader now (partially) supports MVRF tag.
12 years ago
Mark Siewert 7f77bf76c7 - Add support for multiple esm contexts in cell store. This will allow to generate references from multiple esX files. Currently, only the first context is used.
- Add many TODOs to mark points where more work is required to fully implement this feature.
12 years ago
greye 3494e17b7c wipe record superclass 12 years ago
greye 721324c1db rm record inheritance, rework esmtool accordingly 12 years ago
greye 1339787863 remove underscores from filenames in esm 12 years ago