jvoisin
|
534e20cf3a
|
Replace another assert with a throw
It fixes the following crash:
```nasm
[----------------------------------registers-----------------------------------]
RAX: 0xffffffffffffffe4
RBX: 0x7fffffffbd88 --> 0x0
RCX: 0x555555861f01 --> 0xd6000055555582fa
RDX: 0x1
RSI: 0x0
RDI: 0xff
RBP: 0x2e94
RSP: 0x7fffffff9bb0 --> 0x0
RIP: 0x55555574e286 (<_ZN4ESM44Cell4loadERNS_6ReaderE+182>: mov eax,DWORD PTR [rax+0xc])
R8 : 0x0
R9 : 0x555555836bd0 --> 0x555555861f90 --> 0x100000000000000
R10: 0xffffffff
R11: 0x0
R12: 0x7fffffffbd88 --> 0x0
R13: 0x7fffffffbd30 --> 0x7fffffffbd28 --> 0xff0001
R14: 0x7fffffff9da0 --> 0x10fc
R15: 0x7fffffff9ea8 --> 0x7fffffff9eb8 --> 0x0
EFLAGS: 0x10206 (carry PARITY adjust zero sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
0x55555574e27c <_ZN4ESM44Cell4loadERNS_6ReaderE+172>: mov rdi,r12
0x55555574e27f <_ZN4ESM44Cell4loadERNS_6ReaderE+175>: xor esi,esi
0x55555574e281 <_ZN4ESM44Cell4loadERNS_6ReaderE+177>: call 0x5555557edfb0 <_ZNK4ESM46Reader3grpEm>
=> 0x55555574e286 <_ZN4ESM44Cell4loadERNS_6ReaderE+182>: mov eax,DWORD PTR [rax+0xc]
0x55555574e289 <_ZN4ESM44Cell4loadERNS_6ReaderE+185>: cmp eax,0xff
0x55555574e28e <_ZN4ESM44Cell4loadERNS_6ReaderE+190>: ja 0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
0x55555574e294 <_ZN4ESM44Cell4loadERNS_6ReaderE+196>: cmp al,0x5
0x55555574e296 <_ZN4ESM44Cell4loadERNS_6ReaderE+198>: jne 0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
[------------------------------------stack-------------------------------------]
0000| 0x7fffffff9bb0 --> 0x0
0008| 0x7fffffff9bb8 --> 0x0
0016| 0x7fffffff9bc0 --> 0x0
0024| 0x7fffffff9bc8 --> 0x0
0032| 0x7fffffff9bd0 --> 0x0
0040| 0x7fffffff9bd8 --> 0x0
0048| 0x7fffffff9be0 --> 0x0
0056| 0x7fffffff9be8 --> 0x0
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x000055555574e286 in ESM4::Cell::load (this=0x7fffffff9da0, reader=...) at /home/jvoisin/dev/openmw/openmw/components/esm4/loadcell.cpp:68
68 if (reader.grp().type == ESM4::Grp_ExteriorSubCell && reader.grp().label.grid[1] == 0
gdb-peda$ bt
this=<optimized out>, reader=...) at /home/jvoisin/dev/openmw/openmw/apps/esmtool/tes4.cpp:547
recordInvocable=...) at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:31
at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:23
at ../csu/libc-start.c:381
```
|
2023-05-21 20:07:52 +02:00 |
|
psi29a
|
e1754b840a
|
Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour
Closes #6725
See merge request OpenMW/openmw!3037
|
2023-05-21 17:33:13 +00:00 |
|
jvoisin
|
81bd034a9e
|
Guard an undefined behaviour
`std::vector.back()` on an empty `std::vector` is undefined.
This should fix #6725.
Thanks to @Capostrophic for the investigation.
|
2023-05-20 19:35:06 +02:00 |
|
jvoisin
|
cde7aeac3d
|
Replace an asert with a conditional throw
The assert is reachable, resulting in a brutal `abort`
instead of a nice exception.
|
2023-05-20 19:33:14 +02:00 |
|
Petr Mikheev
|
be26fbdacb
|
Explicitly intialize the fields in ESM4::Cell that don't have default constructors.
|
2023-05-18 20:21:47 +02:00 |
|
Petr Mikheev
|
61232f4b75
|
Fix uninitialized mWaterLevel in esm4/loadwrld.cpp
|
2023-05-18 02:10:39 +02:00 |
|
elsid
|
15f3e3ae71
|
Support ESM4 IDLE record
|
2023-05-17 22:59:34 +02:00 |
|
elsid
|
584c0dbcdc
|
Support reading bool GMST by ESM4
|
2023-05-17 22:59:34 +02:00 |
|
elsid
|
010db45a10
|
Read ESM::FormId using ESM4::Reader::getFormId
|
2023-05-17 22:59:29 +02:00 |
|
florent.teppe
|
93b3d9238c
|
mWater level disabled for skyrim.
|
2023-05-12 22:05:54 +02:00 |
|
florent.teppe
|
3de08e654f
|
Better handling of water levels for exterior cells.
Especially for skyrim and it's weird water level values in exteriors.
If we don't have a valid exterior water level we use the world's water level
|
2023-05-12 22:05:54 +02:00 |
|
florent.teppe
|
a62e75fd19
|
Initial attempt at loading esm4 exteriors
|
2023-05-12 22:05:52 +02:00 |
|
Bret Curtis
|
95fff7b77b
|
show which file is not found
|
2023-05-10 21:43:55 +02:00 |
|
jvoisin
|
c7a3f43915
|
Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
|
2023-04-30 16:26:03 +02:00 |
|
Petr Mikheev
|
7b6f0cefb9
|
Fix regressions in ESM4 reader caused by !2902
|
2023-04-22 17:07:54 +02:00 |
|
Petr Mikheev
|
3546d2b3e5
|
Make Store<ESM4::Reference> to use FormId instead of RefId
|
2023-04-20 01:47:16 +02:00 |
|
Petr Mikheev
|
00beb06391
|
Initial Lua bindings for ESM4 types; bindings for ESM4Door.
|
2023-04-20 01:47:16 +02:00 |
|
Petr Mikheev
|
ff774d6406
|
Load more ESM4 records
|
2023-04-09 18:52:11 +02:00 |
|
Petr Mikheev
|
f09a689a4f
|
Merge ESM::RefNum and ESM4::FormId
|
2023-04-09 00:23:32 +02:00 |
|
psi29a
|
aad9ce53db
|
Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records
See merge request OpenMW/openmw!2892
|
2023-04-04 09:51:02 +00:00 |
|
elsid
|
dbed00842e
|
Split components/esm4/common.hpp header
|
2023-04-04 10:12:20 +02:00 |
|
elsid
|
87ac85223a
|
Support loading ESM4 GMST records
|
2023-04-04 09:59:35 +02:00 |
|
florent.teppe
|
f99e65843a
|
Removes most cellId.hpp include, simplifies id generation for cells.
|
2023-04-03 14:16:32 +02:00 |
|
florent.teppe
|
6895a452ef
|
restores the concept of worldspace for MWWorld::Cell
|
2023-04-03 14:16:04 +02:00 |
|
florent.teppe
|
a3a7767093
|
applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
|
2023-03-28 17:11:30 +02:00 |
|
florent.teppe
|
464092e323
|
fix oblivion and skyrim
|
2023-03-28 17:11:30 +02:00 |
|
florent.teppe
|
34dd24b261
|
Initial changes to detect when context isn't usable
|
2023-03-28 17:11:30 +02:00 |
|
elsid
|
90ed24f4c9
|
Split type traits for ESM4, ESM3 and unite common
|
2023-03-26 19:07:23 +02:00 |
|
psi29a
|
d64eea2fc6
|
Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char
Closes #7113
See merge request OpenMW/openmw!2760
|
2023-03-18 09:30:48 +00:00 |
|
Shi Han
|
a90e3b8c3b
|
Move from std::atoi to std::from_char
|
2023-03-18 09:30:48 +00:00 |
|
elsid
|
67e96d48ba
|
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
|
2023-03-18 03:00:18 +01:00 |
|
psi29a
|
a60f657f5a
|
Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference
See merge request OpenMW/openmw!2804
|
2023-03-17 21:46:37 +00:00 |
|
Alexei Dobrohotov
|
3d87bc185d
|
Updates to ESM4::Ammunition loading
|
2023-03-13 01:36:07 +03:00 |
|
florent.teppe
|
214cb8d8fe
|
Only loads ESM4::reference when they are needed
and only those from the cell they are a part of.
The cell stores where it starts in the file for quick access later.
|
2023-03-04 23:40:41 +01:00 |
|
Alexei Dobrohotov
|
540fa00f12
|
Don't use ESM4::Lighting fog power as fog density
|
2023-02-27 05:50:58 +03:00 |
|
Cédric Mocquillon
|
6e23ad82d5
|
Load esm files from vfs
|
2023-02-19 21:58:19 +01:00 |
|
florent.teppe
|
a71a86e64a
|
Load light models in the engine. Doesn't emit light
|
2023-02-06 20:22:17 +01:00 |
|
psi29a
|
4032c447e9
|
Merge branch 'load-ESM4-Cell' into 'master'
Can load and coc into an interrior oblivion cell
See merge request OpenMW/openmw!2647
|
2023-02-06 08:56:23 +00:00 |
|
florent.teppe
|
1caed2de2a
|
Applies some review comments.
Proper visit for ESM::CellVariant
Fixed MWWorldCell constructor
|
2023-02-04 17:09:54 +01:00 |
|
elsid
|
f1dbd9b959
|
Fix -Wduplicated-branches warnings
|
2023-02-04 00:10:30 +01:00 |
|
elsid
|
c79c14da91
|
Fix -Wnon-virtual-dtor warnings
|
2023-02-03 23:00:09 +01:00 |
|
Andrzej Głuszak
|
c9e5f0208d
|
Replace boost::scoped_array with std::vector
|
2023-01-29 20:40:07 +01:00 |
|
elsid
|
d541436b15
|
Support parent, type and value fields in esmtool for ESM4
|
2023-01-29 03:02:00 +01:00 |
|
elsid
|
e7acced5e9
|
Move metafunctions to check ESM4 field existence to a separate header
|
2023-01-29 03:00:48 +01:00 |
|
elsid
|
5bb088218e
|
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
|
2023-01-29 02:35:06 +01:00 |
|
florent.teppe
|
f9da66e9ee
|
Greatly improved how the variant on MWWorld::CellRef works
|
2023-01-28 18:57:55 +01:00 |
|
florent.teppe
|
531e55e04c
|
Better handling of the esm3 vs esm4 cell problem
Common attribute are in one structure that has two constructors, one for ESM3 vs ESM4 Cell
Mood part of MWWorld::Cell
|
2023-01-27 13:39:39 +01:00 |
|
florent.teppe
|
c896a2ca48
|
Crashfix on launch
|
2023-01-26 22:37:32 +01:00 |
|
florent.teppe
|
e81e278363
|
Implements some cell params + linux compile fix
|
2023-01-26 22:37:31 +01:00 |
|
florent.teppe
|
562e129bd0
|
encapsulations of esm3 cell and esm4 cells.
|
2023-01-26 22:37:31 +01:00 |
|