58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
#include "../script_component.hpp"
|
|
|
|
if (!hasInterface) exitWith {};
|
|
|
|
params [
|
|
["_subjectID", "", [""]],
|
|
["_recordTitle", "", [""]],
|
|
["_recordText", "", [""]],
|
|
["_recordIcon", "", [""]]
|
|
];
|
|
|
|
// Check if all parameters are provided
|
|
if (
|
|
count _subjectID isEqualTo 0 ||
|
|
count _recordTitle isEqualTo 0 ||
|
|
count _recordText isEqualTo 0
|
|
) exitWith {
|
|
[LEVEL_ERROR, QUOTE(COMPONENT), "Not all parameters provided"] call EFUNC(common,log);
|
|
};
|
|
|
|
// Check if already created
|
|
private _subjectRecords = GVAR(diaryRecords) getOrDefault [_subjectID, createHashMap, true];
|
|
private _existingRecord = _subjectRecords getOrDefault [_recordTitle, diaryRecordNull, true];
|
|
|
|
if (!isNull _existingRecord) then {
|
|
player setDiaryRecordText [[_subjectID, _existingRecord], [_recordTitle, _recordText, _recordIcon]];
|
|
|
|
[
|
|
LEVEL_DEBUG,
|
|
QUOTE(COMPONENT),
|
|
format ["Updated diary record: %1", _recordTitle],
|
|
[
|
|
["subjectID", _subjectID],
|
|
["recordTitle", _recordTitle]
|
|
]
|
|
] call EFUNC(common,log);
|
|
} else {
|
|
private _new = player createDiaryRecord [
|
|
_subjectID,
|
|
[
|
|
_recordTitle,
|
|
_recordText,
|
|
_recordIcon
|
|
]
|
|
];
|
|
_subjectRecords set [_recordTitle, _new];
|
|
GVAR(diaryRecords) set [_subjectID, _subjectRecords];
|
|
|
|
[
|
|
LEVEL_DEBUG,
|
|
QUOTE(COMPONENT),
|
|
format ["Created diary record: %1", _recordTitle],
|
|
[
|
|
["subjectID", _subjectID],
|
|
["recordTitle", _recordTitle]
|
|
]
|
|
] call EFUNC(common,log);
|
|
}; |