-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSave.cpp
More file actions
37 lines (34 loc) · 1023 Bytes
/
Save.cpp
File metadata and controls
37 lines (34 loc) · 1023 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "Save.h"
#include "changeLog.h"
#include "NifFile.h"
void NifSE_SaveCallback(void * reserved) {
dPrintAndLog("NifSave","Saving registered nifs");
UInt8 prevMod = 0;
UInt32 prevNif = 0;
bool prevOpen = false;
bool diffMod = false;
bool diffNif = false;
for ( vector<changeLog>::iterator i = NifFile::delta.begin(); i != NifFile::delta.end(); ++i ) {
dPrintAndLog("NifSave","Saving nif #"+UIntToString(i->mod)+"-"+UIntToString(i->nif)+" change to block #"+UIntToString(i->block)+".");
if ( prevMod != i->mod ) {
i->saveMod();
diffMod = true;
}
if ( prevNif != i->nif || diffMod ) {
i->saveNif();
diffNif = true;
}
if ( i->type == kNiflibType_NifFile && i->act == kBasicAct_Open )
prevOpen = true;
else {
if ( diffNif || prevOpen )
serInterface->OpenRecord('niCh', g_pluginVersion);
i->saveCh();
prevOpen = false;
}
prevMod = i->mod;
prevNif = i->nif;
diffNif = false;
}
dPrintAndLog("NifSave","Save complete.\n");
}