1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 06:35:30 +00:00

57 Commits

Author SHA1 Message Date
Evil Eye
5491512905 Use string_view in more places and reduce the number of empty string literals 2023-05-21 16:39:32 +02:00
elsid
b88f0d2dbd
Replace mwscript program serialization into a vector with simple struct
Mostly to avoid string literal lookup by index with iteration over all preciding
literals and calling strlen. This is very inefficient. In genral this makes code
much more straightforward but also makes it portable since now int and float of
different sizes are properly supported.
2023-01-14 00:07:37 +01:00
fteppe
125b21de20 Initial commit: In ESM structures, replace the string members that are RefIds to other records, to a new strong type
The strong type is actually just a string underneath, but this will help in the future to have a distinction so it's easier to search and replace when we use an integer ID

Slowly going through all the changes to make, still hundreds of errors

a lot of functions/structures use std::string or stringview to designate an ID. So it takes time

Continues slowly replacing ids. There are technically more and more compilation errors

I have good hope that there is a point where the amount of errors will dramatically go down as all the main functions use the ESM::RefId type

Continue moving forward, changes to the stores

slowly moving along

Starting to see the fruit of those changes.

still many many error, but more and more Irun into a situation where a function is sandwiched between two functions that use the RefId type.

More replacements. Things are starting to get easier

I can see more and more often the issue is that the function is awaiting a RefId, but is given a string
there is less need to go down functions and to fix a long list of them.

Still moving forward, and for the first time error count is going down!

Good pace, not sure about topics though, mId and mName are actually the same thing and are used interchangeably

Cells are back to using string for the name, haven't fixed everything yet. Many other changes

Under the bar of 400 compilation errors.

more good progress <100 compile errors!

More progress

Game settings store can use string for find, it was a bit absurd how every use of it required to create refId from string

some more progress on other fronts

Mostly game settings clean

one error opened a lot of other errors. Down to 18, but more will prbably appear

only link errors left??

Fixed link errors

OpenMW compiles, and launches, with some issues, but still!
2022-12-27 19:15:54 +01:00
Evil Eye
a24e9e4c0a Mark constant methods const 2022-10-17 09:43:20 +02:00
Evil Eye
81f138cea0 Prevent potentially returning garbage flags 2022-10-17 09:37:56 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
Evil Eye
c6ca0e78c9 Make getStringLiteral return a string_view 2022-05-21 01:21:55 +02:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
Ivan Beloborodov
ead0cb5ce0 #6419 Topic shouldn't be greyed out if they can produce another topic reference. 2021-12-02 08:04:29 +00:00
Evil Eye
1196e0cfe6 Change disposition to work like vanilla 2021-07-06 17:03:56 +02:00
Bret Curtis
5a824d0333 components/compiler cleanup; also cleaned up related cascading warnings; fixed up final/override issues 2020-10-22 23:57:53 +02:00
Andrei Kortunov
6c591c190b Add support for service-specific refusals (feature #5580) 2020-10-20 18:58:26 +04:00
Andrei Kortunov
8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
fredzio
947f3cf13c Optionally change color of keywords in the dialogue window based on the
next answer:
- if the answer was already heard, apply "color topic exhaused" setting
- if the answer was never heard, and the current actor is specified in
the dialog, apply "color topic specific"
- otherwise, do nothing special
2020-05-02 01:42:05 +02:00
Andrei Kortunov
bd2188a0f8 Use the logging system for compiler errors 2019-04-23 22:20:18 +04:00
Capostrophic
ab29f9e13f Add permanent barter disposition change option (feature #3103) 2018-08-01 17:31:35 +03:00
scrawl
e564dd842e Refactor dialogue responses to make sure messages from scripts are printer afterwards, not before the dialogue response (Fixes #4166)
Don't delete Link objects prematurely (Fixes #4171)
2017-10-23 23:33:06 +00:00
scrawl
768da57da2 Fix dialogue topics displayed in lower case 2017-10-22 20:50:15 +00:00
scrawl
2ce79e07a4 Refactor dialogue GUI to talk to the dialogue manager, not the other way around and not both ways.
- Fix memory leaks in DialogueWindow
- Fix Link objects being deleted from their own event handler
2017-09-25 23:38:28 +02:00
scrawl
f8ffd85146 Topic passed to keywordSelected() no longer has to be lower case
Remove redundant mDialogueMap
2017-09-25 19:03:38 +02:00
Allofich
60c67bc327 Run scripts for voiced dialogue
(Fixes #3787)
2017-04-21 10:39:11 +09:00
scrawl
3f27c8cc97 Always print context for script warnings to remove the need for verbose option
(Fixes #2813)
2017-02-21 04:32:59 +01:00
scrawl
141e9d36a4 Get rid of unused DialogueManager::mScriptVerbose 2015-06-04 20:12:39 +02:00
Jordan Ayers
419046e121 Dialogue: Use std::set for known topics in the manager.
There were three different data structures being used for topic lists
in this code.  (map< string, true >, list< string >, and vector< string >)
Switch the local topic lists to set< string >.  This supports everything
the list and map were doing, reduces the variety of data structures, and
makes count (a more efficient search) available.

The vector has not changed, since it's tied to the ESM modules, and must
meet other requirements.
2015-01-29 18:28:13 -06:00
scrawl
c883a73d30 Several warning fixes 2015-01-23 15:34:47 +01:00
scrawl
5104a5a023 Add missing setFactionReaction instruction, use absolute storage instead of difference
Seems to be closer to how MW is storing it (it has the complete FACT record in the savegame, actually).

This (somewhat) breaks OMW savegame compatibility in that old changes are discarded, but I don't think the faction reactions are quest relevant anywhere.
2015-01-20 00:53:31 +01:00
MiroslavR
ed6bdc0bde Use all topics to search for keywords in dialogues (Fixes #2013)
Move KeywordSearch to MWDialogue
Move hypertext parsing functions to a new file
2014-10-18 20:07:40 +02:00
scrawl
2dd54dbcfc Implement ClearInfoActor script instruction (Fixes #1422) 2014-06-10 18:49:41 +02:00
scrawl
865486604f Make trade disposition changes temporary again, as in vanilla 2014-05-31 13:57:07 +02:00
scrawl
e266c39c5d Implement modFactionReaction instruction (Closes #1347) 2014-05-27 14:54:29 +02:00
scrawl
27a05027f4 Fixes #1172: Added basic loading/saving progress bar
The progress is not particularly accurate. It simply uses the current / total number of records written/read as indication. Cell records are currently the largest by far, but there is a good chance that could be optimized using a change tracking system.
2014-04-28 11:29:57 +02:00
scrawl
f921f2e7db Make PcRaiseRank, PcLowerRank and PcJoinFaction properly accept references instead of using the actor that the player talked to last.
This also solves a potential crash when no actor has been talked to yet, e.g. immediately after loading a savegame.
2014-04-26 12:04:37 +02:00
Marc Zinnschlag
367919200f moved CellRefList into a separate file 2014-02-23 20:11:05 +01:00
Marc Zinnschlag
9f721fd144 store list of known topics in saved game files 2014-02-16 12:54:27 +01:00
scrawl
9bf7bf529c Implement crime-related dialogue globals as they are described in MSFD 2014-01-09 00:40:25 +01:00
scrawl
c85c2cff4e Fix disposition changes from trades not applying properly 2014-01-08 01:46:42 +01:00
scrawl
12691040d1 Fix incorrect disposition testing and get rid of of a related hack that is no longer needed. 2014-01-04 02:49:10 +01:00
scrawl
7dc30a01cd Some changes suggested by cppcheck 2013-07-31 18:46:32 +02:00
Chris Robinson
d8ec813939 Say something from the "hit" dialog topic when losing health 2013-07-24 10:02:50 -07:00
scrawl
c41f119ba6 Added new game button 2013-05-15 17:54:18 +02:00
scrawl
78e6dab9d2 Dialogue history rewrite WIP 2013-05-04 14:15:47 +02:00
scrawl
b0199c703c Companion UI 2013-03-31 13:13:46 +02:00
scrawl
6c1ff8caca Merge branch 'master' into next
Conflicts:
	apps/openmw/mwworld/weather.cpp
	components/fileorderlist/model/datafilesmodel.cpp
2013-03-20 02:29:03 +01:00
scrawl
cebcbe11f8 Implemented service refusal 2013-03-16 20:32:21 +01:00
scrawl
7ab236337b Dialogue responses should be random only for persuasion results 2013-03-14 21:33:00 +01:00
lazydev
cd5d95ed22 1. Dialogs in Russian version now works.
2. Destination names it travel window are now translated
2012-12-31 04:15:47 +04:00
Marc Zinnschlag
caaffd1ec2 handle persuasion records properly 2012-12-08 14:24:15 +01:00
Marc Zinnschlag
2a1727d4c5 improved error reporting for dialogue scripts (enabled via --script-verbose) 2012-11-13 15:35:46 +01:00
Marc Zinnschlag
75f64aa38b Merge branch 'master' into dialogue
Conflicts:
	apps/openmw/mwdialogue/dialoguemanagerimp.hpp
	apps/openmw/mwmechanics/npcstats.cpp
	apps/openmw/mwmechanics/npcstats.hpp
2012-11-10 15:44:44 +01:00