2.7+ prerendered cutscene support

This commit is contained in:
hartie95
2022-07-23 21:59:23 +02:00
committed by Luke H-W
parent 938b54c2ee
commit ffeff92dd6
5 changed files with 58 additions and 24 deletions

View File

@@ -132,7 +132,8 @@ public class GameMainQuest {
ParentQuest.Builder proto = ParentQuest.newBuilder()
.setParentQuestId(getParentQuestId())
.setIsFinished(isFinished())
.setParentQuestState(getState().getValue());
.setParentQuestState(getState().getValue())
.setCutsceneEncryptionKey(QuestManager.getQuestKey(parentQuestId));
for (GameQuest quest : this.getChildQuests().values()) {
ChildQuest childQuest = ChildQuest.newBuilder()

View File

@@ -0,0 +1,12 @@
package emu.grasscutter.game.quest;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class QuestEncryptionKey {
int mainQuestId;
long encryptionKey;
}

View File

@@ -2,8 +2,6 @@ package emu.grasscutter.game.quest;
import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.binout.MainQuestData;
@@ -23,6 +21,11 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
public class QuestManager extends BasePlayerManager {
private final Int2ObjectMap<GameMainQuest> quests;
public static long getQuestKey(int mainQuestId){
QuestEncryptionKey questEncryptionKey = GameData.getMainQuestEncryptionMap().get(mainQuestId);
return questEncryptionKey != null ? questEncryptionKey.getEncryptionKey() : 0L;
}
public QuestManager(Player player) {
super(player);
this.quests = new Int2ObjectOpenHashMap<>();