Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UStageManifest 클래스 참조

#include <StageManifest.h>

UStageManifest에 대한 상속 다이어그램 :
Inheritance graph
UStageManifest에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

 UStageManifest ()
 
virtual FPrimaryAssetId GetPrimaryAssetId () const override
 
virtual void PostLoad () override
 
virtual void OnBundleLoaded_Implementation (FGameplayTag BundleTag) override
 
virtual void OnBundleReleased_Implementation (FGameplayTag BundleTag) override
 
virtual FSectionData GetSectionTable (const FName &SectionID)
 
virtual FDT_ToastMessageTable GetToastMessageTable (const FName &RowID)
 
virtual FDT_PortraitTable GetPortraitTable (const FName &RowID)
 
virtual FDT_ScenarioCutsceneTable GetScenarioCutsceneTable (const FName &RowID)
 
virtual FDT_TutorialTable GetTutorialTable (const FName &RowID)
 
virtual FDT_ConstellationTable GetConstellationTable (const FName &RowID)
 
virtual FDT_BuffTable GetBuffTable (const FName &RowID)
 
virtual FDT_ConstellationTable GetRandomConstellationTable ()
 
FORCEINLINE const TMap< FName, FDT_ConstellationTable > & GetConstellationMap () const
 
virtual FDT_SituationTable GetSituationTable (const FName &RowID)
 
virtual TArray< FDT_SituationTableDrawSituationChoices (int32 PlayerLevel, const TArray< FName > &EquippedIDs, int32 DrawCount=3)
 
virtual float GetRequiredExp (int32 Level)
 
virtual FDT_LevelTable GetLevelTable (int32 Level)
 
bool HasLevelData () const
 
- IDataAssetBundle(으)로부터 상속된 Public 멤버 함수
void OnBundleLoaded (FGameplayTag BundleTag)
 
void OnBundleReleased (FGameplayTag BundleTag)
 

Public 속성

TSoftObjectPtr< UDataTable > SectionDataMap
 
TSoftObjectPtr< UDataTable > WaveDataMap
 
TSoftObjectPtr< UDataTable > SpawnDataMap
 
TSoftObjectPtr< UDataTable > MonsterDataMap
 
TSoftObjectPtr< UDataTable > ToastMessageDataMap
 
TSoftObjectPtr< UDataTable > PortraitDataMap
 
TSoftObjectPtr< UDataTable > ScenarioCutsceneDataMap
 
TSoftObjectPtr< UDataTable > TutorialDataMap
 
TSoftObjectPtr< UDataTable > ConstellationDataMap
 
TSoftObjectPtr< UDataTable > BuffDataMap
 
TSoftObjectPtr< UDataTable > SituationDataMap
 
TSoftObjectPtr< UDataTable > LevelDataMap
 
friend FStageManifestHandle
 

Private 멤버 함수

void BuildCache ()
 

정적 Private 멤버 함수

template<typename TRow >
static void FillRowMap (const TSoftObjectPtr< UDataTable > &TablePtr, const TCHAR *TableName, TMap< FName, TRow > &OutMap)
 

Private 속성

TMap< FName, FSectionDataSectionMap
 
TMap< FName, FWaveDataCollectionWaveMap
 
TMap< FName, TArray< FWaveSpawnEntry > > SpawnMap
 
TMap< FName, FMonsterDataCollectionMonsterMap
 
TMap< FName, FDT_ToastMessageTableToastMessageMap
 
TMap< FName, FDT_PortraitTablePortraitMap
 
TMap< FName, FDT_ScenarioCutsceneTableScenarioCutsceneMap
 
TMap< FName, FDT_TutorialTableTutorialMap
 
TMap< FName, FDT_ConstellationTableConstellationMap
 
TMap< FName, FDT_BuffTableBuffMap
 
TMap< FName, FDT_SituationTableSituationMap
 
TMap< int32, FDT_LevelTableLevelMap
 

상세한 설명

프로그램 구동 극초기에 에셋 매니저가 불러오는 스테이지&웨이브 데이터 컨테이너.

생성자 & 소멸자 문서화

◆ UStageManifest()

UStageManifest::UStageManifest ( )
231{
232 SectionDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("SectionData");
233 WaveDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("WaveData");
234 SpawnDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("SpawnData");
235 MonsterDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("MonsterData");
236 ToastMessageDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("ToastMessageData");
237 PortraitDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("PortraitData");
238 ScenarioCutsceneDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("ScenarioCutsceneData");
239 TutorialDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("TutorialData");
240 ConstellationDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("ConstellationData");
241 BuffDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("BuffData");
242 SituationDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("SituationData");
243 LevelDataMap = GetEnvironmentSoftPtrByKey<UDataTable>("LevelData");
244}
TSoftObjectPtr< UDataTable > LevelDataMap
Definition StageManifest.h:264
TSoftObjectPtr< UDataTable > MonsterDataMap
Definition StageManifest.h:240
TSoftObjectPtr< UDataTable > ToastMessageDataMap
Definition StageManifest.h:243
TSoftObjectPtr< UDataTable > SituationDataMap
Definition StageManifest.h:261
TSoftObjectPtr< UDataTable > ConstellationDataMap
Definition StageManifest.h:255
TSoftObjectPtr< UDataTable > WaveDataMap
Definition StageManifest.h:234
TSoftObjectPtr< UDataTable > PortraitDataMap
Definition StageManifest.h:246
TSoftObjectPtr< UDataTable > TutorialDataMap
Definition StageManifest.h:252
TSoftObjectPtr< UDataTable > SpawnDataMap
Definition StageManifest.h:237
TSoftObjectPtr< UDataTable > ScenarioCutsceneDataMap
Definition StageManifest.h:249
TSoftObjectPtr< UDataTable > BuffDataMap
Definition StageManifest.h:258
TSoftObjectPtr< UDataTable > SectionDataMap
Definition StageManifest.h:231

멤버 함수 문서화

◆ BuildCache()

void UStageManifest::BuildCache ( )
private
286{
287 SectionMap.Empty();
288 WaveMap.Empty();
289 SpawnMap.Empty();
290 MonsterMap.Empty();
291 ToastMessageMap.Empty();
292 PortraitMap.Empty();
293 ScenarioCutsceneMap.Empty();
294 TutorialMap.Empty();
295 ConstellationMap.Empty();
296 BuffMap.Empty();
297 SituationMap.Empty();
298 LevelMap.Empty();
299
300 const UDataTable* SectionTable = SectionDataMap.LoadSynchronous();
301 const UDataTable* WaveTable = WaveDataMap.LoadSynchronous();
302 const UDataTable* SpawnTable = SpawnDataMap.LoadSynchronous();
303 const UDataTable* MonsterTable = MonsterDataMap.LoadSynchronous();
304
305 if (SectionTable == nullptr)
306 {
307 LOG_WARNING(LogCKAsset, "SectionDataMap 로드 실패: DataTable이 nullptr입니다.");
308 return;
309 }
310
311 if (WaveTable == nullptr)
312 {
313 LOG_WARNING(LogCKAsset, "WaveDataMap 로드 실패: DataTable이 nullptr입니다.");
314 return;
315 }
316
317 if (SpawnTable == nullptr)
318 {
319 LOG_WARNING(LogCKAsset, "SpawnDataMap 로드 실패: DataTable이 nullptr입니다.");
320 return;
321 }
322
323 if (MonsterTable == nullptr)
324 {
325 LOG_WARNING(LogCKAsset, "MonsterDataMap 로드 실패: DataTable이 nullptr입니다.");
326 return;
327 }
328
329 TArray<FDT_SectionTable*> SectionTableRows;
330 SectionTable->GetAllRows(TEXT("UStageManifest::BuildCache"), SectionTableRows);
331
332 TArray<FDT_WaveTable*> WaveTableRows;
333 WaveTable->GetAllRows(TEXT("UStageManifest::BuildCache"), WaveTableRows);
334
335 TArray<FDT_SpawnTable*> SpawnTableRows;
336 SpawnTable->GetAllRows(TEXT("UStageManifest::BuildCache"), SpawnTableRows);
337
338 TArray<FEnemyStatTableRow*> MonsterTableRows;
339 MonsterTable->GetAllRows(TEXT("UStageManifest::BuildCache"), MonsterTableRows);
340
341 for (const FEnemyStatTableRow* MonsterRow : MonsterTableRows)
342 {
343 if (MonsterMap.Contains(MonsterRow->Enemy_ID) == false)
344 {
345 MonsterMap.Add(MonsterRow->Enemy_ID, FMonsterDataCollection(MonsterRow->Enemy_ID));
346 }
347
348 MonsterMap[MonsterRow->Enemy_ID].MonsterList.Emplace(*MonsterRow);
349 }
350
351 for (const FDT_SpawnTable* SpawnRow : SpawnTableRows)
352 {
353 TArray<FWaveSpawnEntry> SpawnEntries;
354 ExpandSpawnRow(*SpawnRow, SpawnEntries);
355 SpawnMap.Add(SpawnRow->Spawn_ID, MoveTemp(SpawnEntries));
356 }
357
358 for (const FDT_WaveTable* WaveRow : WaveTableRows)
359 {
360 FWaveDataCollection Collection(WaveRow->Wave_ID, this);
361 Collection.WaveTable = *WaveRow;
362
363 TArray<FString> SpawnLines;
364 WaveRow->Spawn_ID.ParseIntoArrayLines(SpawnLines, true);
365
366 const FString* SpawnIDLine = nullptr;
367
368 for (const FString& Line : SpawnLines)
369 {
370 if (Line.TrimStartAndEnd().IsEmpty() == false)
371 {
372 SpawnIDLine = &Line;
373 break;
374 }
375 }
376
377 if (SpawnIDLine == nullptr)
378 {
379 SpawnIDLine = &WaveRow->Spawn_ID;
380 }
381
382 if (SpawnLines.Num() > 1)
383 {
384 LOG_WARNING(LogCKAsset, "Wave '%s'의 Spawn_ID에 줄바꿈이 포함되어 첫 번째 줄만 사용합니다: %s", *WaveRow->Wave_ID.ToString(), **SpawnIDLine);
385 }
386
387 TArray<FString> Parts;
388 SpawnIDLine->ParseIntoArray(Parts, TEXT("&"), true);
389
390 for (const FString& Part : Parts)
391 {
392 const FString Trimmed = Part.TrimStartAndEnd();
393
394 if (Trimmed.IsEmpty() == false)
395 {
396 Collection.ParsedSpawnIDs.Add(FName(*Trimmed));
397 }
398 }
399
400 WaveMap.Add(WaveRow->Wave_ID, MoveTemp(Collection));
401 }
402
403 for (const FDT_SectionTable* SectionRow : SectionTableRows)
404 {
405 FSectionData SectionData(*SectionRow, this);
406 SectionMap.Add(SectionRow->Section_ID, MoveTemp(SectionData));
407 }
408
409 // 아래 테이블들은 서로 독립적이다. 하나가 없다고 나머지를 건너뛰면 안 된다.
410 FillRowMap(ToastMessageDataMap, TEXT("ToastMessageDataMap"), ToastMessageMap);
411 FillRowMap(PortraitDataMap, TEXT("PortraitDataMap"), PortraitMap);
412 FillRowMap(ScenarioCutsceneDataMap, TEXT("ScenarioCutsceneDataMap"), ScenarioCutsceneMap);
413 FillRowMap(TutorialDataMap, TEXT("TutorialDataMap"), TutorialMap);
414 FillRowMap(BuffDataMap, TEXT("BuffDataMap"), BuffMap);
415 FillRowMap(SituationDataMap, TEXT("SituationDataMap"), SituationMap);
416 FillRowMap(ConstellationDataMap, TEXT("ConstellationDataMap"), ConstellationMap);
417
418 // 문자열 컬럼의 파싱은 로드할 때마다 다시 한다. 테이블을 재임포트하지 않아도 최신 값이 반영된다.
419 for (TPair<FName, FDT_SituationTable>& Pair : SituationMap)
420 {
421 ParseSituationTags(Pair.Value);
422 }
423
424 for (TPair<FName, FDT_ConstellationTable>& Pair : ConstellationMap)
425 {
426 ParseConstellationReactionTags(Pair.Value);
427 }
428
429 // BuildCache 가 PIE 에서 실제로 도는지, 무엇을 채웠는지를 가른다. 진단용.
430 LOG_INFO(LogCKAsset, "BuildCache 완료: Situation %d개 / Constellation %d개 / Buff %d개 / Level %d개",
431 SituationMap.Num(), ConstellationMap.Num(), BuffMap.Num(), LevelMap.Num());
432
433 for (const TPair<FName, FDT_ConstellationTable>& Pair : ConstellationMap)
434 {
435 LOG_INFO(LogCKAsset, " Constellation %s : Reaction_Tags=\"%s\" -> 파싱=%s",
436 *Pair.Key.ToString(), *Pair.Value.Reaction_Tags, *BroadcastTag::ToDisplayString(Pair.Value.ParsedReactionTags));
437 }
438
439 // 레벨 표는 행 이름이 아니라 레벨 숫자를 키로 쓴다.
440 if (const UDataTable* LevelTable = LevelDataMap.LoadSynchronous())
441 {
442 for (const TPair<FName, uint8*>& Pair : LevelTable->GetRowMap())
443 {
444 const FDT_LevelTable* Row = reinterpret_cast<const FDT_LevelTable*>(Pair.Value);
445
446 if (Row)
447 {
448 LevelMap.Add(Row->Level, *Row);
449 }
450 }
451 }
452 else
453 {
454 LOG_WARNING(LogCKAsset, "LevelDataMap 로드 실패: DataTable이 nullptr입니다.");
455 }
456}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
TMap< FName, FDT_SituationTable > SituationMap
Definition StageManifest.h:315
TMap< FName, FMonsterDataCollection > MonsterMap
Definition StageManifest.h:300
TMap< FName, FWaveDataCollection > WaveMap
Definition StageManifest.h:295
TMap< FName, FDT_PortraitTable > PortraitMap
Definition StageManifest.h:304
TMap< FName, FDT_ScenarioCutsceneTable > ScenarioCutsceneMap
Definition StageManifest.h:306
TMap< FName, FSectionData > SectionMap
Definition StageManifest.h:292
TMap< FName, FDT_ConstellationTable > ConstellationMap
Definition StageManifest.h:311
TMap< FName, FDT_BuffTable > BuffMap
Definition StageManifest.h:313
TMap< FName, TArray< FWaveSpawnEntry > > SpawnMap
Definition StageManifest.h:297
TMap< FName, FDT_TutorialTable > TutorialMap
Definition StageManifest.h:308
static void FillRowMap(const TSoftObjectPtr< UDataTable > &TablePtr, const TCHAR *TableName, TMap< FName, TRow > &OutMap)
Definition StageManifest.h:272
TMap< int32, FDT_LevelTable > LevelMap
Definition StageManifest.h:317
TMap< FName, FDT_ToastMessageTable > ToastMessageMap
Definition StageManifest.h:302
CK_UE_API FString ToDisplayString(ESituationTag Tags)
Definition SituationTag.cpp:28
Definition DT_LevelTable.h:14
int32 Level
Definition DT_LevelTable.h:26
Definition DT_SectionTable.h:8
Definition DT_SpawnTable.h:41
Definition DT_WaveTable.h:8
Definition StatTable.h:47
Definition StageManifest.h:29
Definition StageManifest.h:133
Definition StageManifest.h:74
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DrawSituationChoices()

TArray< FDT_SituationTable > UStageManifest::DrawSituationChoices ( int32  PlayerLevel,
const TArray< FName > &  EquippedIDs,
int32  DrawCount = 3 
)
virtual
496{
497 TArray<FDT_SituationTable> Result;
498
499 // 지금까지 장착한 카드들이 모아온 방송 태그. 선행 조건 판정의 기준이 된다.
501
502 for (const FName& EquippedID : EquippedIDs)
503 {
504 if (const FDT_SituationTable* EquippedRow = SituationMap.Find(EquippedID))
505 {
506 OwnedTags |= EquippedRow->ParsedTags;
507 }
508 }
509
510 // 선행 조건은 태그와 상황 ID 를 모두 만족해야 통과한다. 비어 있으면 조건 없음이다.
511 auto MeetsRequirements = [&OwnedTags, &EquippedIDs](const FDT_SituationTable& Row)
512 {
513 if (EnumHasAllFlags(OwnedTags, Row.RequiredTags) == false)
514 {
515 return false;
516 }
517
518 for (const FName& RequiredID : Row.RequiredSituationIDs)
519 {
520 if (EquippedIDs.Contains(RequiredID) == false)
521 {
522 return false;
523 }
524 }
525
526 return true;
527 };
528
529 // 레벨 제한, 이미 장착한 항목, 선행 조건을 걸러 후보를 만든다.
530 TArray<const FDT_SituationTable*> Candidates;
531
532 for (const TPair<FName, FDT_SituationTable>& Pair : SituationMap)
533 {
534 const FDT_SituationTable& Row = Pair.Value;
535
536 if (Row.Unlock_Level > PlayerLevel || EquippedIDs.Contains(Row.Situation_ID))
537 {
538 continue;
539 }
540
541 if (MeetsRequirements(Row) == false)
542 {
543 continue;
544 }
545
546 Candidates.Add(&Row);
547 }
548
549 // 뽑을 때마다 후보에서 제거해 같은 상황이 두 번 나오지 않게 한다.
550 while (Result.Num() < DrawCount && Candidates.IsEmpty() == false)
551 {
552 const int32 PickedIndex = FMath::RandRange(0, Candidates.Num() - 1);
553
554 Result.Add(*Candidates[PickedIndex]);
555 Candidates.RemoveAt(PickedIndex);
556 }
557
558 if (Result.Num() < DrawCount)
559 {
560 LOG_WARNING(LogCKAsset, "레벨 %d 에서 뽑을 수 있는 상황이 %d개뿐입니다. (요청 %d개)", PlayerLevel, Result.Num(), DrawCount);
561 }
562
563 return Result;
564}
ESituationTag
Definition SituationTag.h:17
Definition DT_SituationTable.h:20
FName Situation_ID
Definition DT_SituationTable.h:32
int32 Unlock_Level
Definition DT_SituationTable.h:59
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FillRowMap()

template<typename TRow >
static void UStageManifest::FillRowMap ( const TSoftObjectPtr< UDataTable > &  TablePtr,
const TCHAR *  TableName,
TMap< FName, TRow > &  OutMap 
)
inlinestaticprivate
273 {
274 const UDataTable* Table = TablePtr.LoadSynchronous();
275
276 if (Table == nullptr)
277 {
278 LOG_WARNING(LogCKAsset, "%s 로드 실패: DataTable이 nullptr입니다.", TableName);
279 return;
280 }
281
282 for (const TPair<FName, uint8*>& Pair : Table->GetRowMap())
283 {
284 if (const TRow* Row = reinterpret_cast<const TRow*>(Pair.Value))
285 {
286 OutMap.Add(Pair.Key, *Row);
287 }
288 }
289 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetBuffTable()

FDT_BuffTable UStageManifest::GetBuffTable ( const FName &  RowID)
virtual
628{
629 if (const FDT_BuffTable* Row = BuffMap.Find(RowID))
630 {
631 return *Row;
632 }
633
634 LOG_WARNING(LogCKAsset, "BuffMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
635 return FDT_BuffTable();
636}
Definition DT_BuffTable.h:15
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetConstellationMap()

FORCEINLINE const TMap< FName, FDT_ConstellationTable > & UStageManifest::GetConstellationMap ( ) const
inline
203 {
204 return ConstellationMap;
205 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetConstellationTable()

FDT_ConstellationTable UStageManifest::GetConstellationTable ( const FName &  RowID)
virtual
616{
617 if (const FDT_ConstellationTable* Row = ConstellationMap.Find(RowID))
618 {
619 return *Row;
620 }
621
622 LOG_WARNING(LogCKAsset, "ConstellationMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
623 return FDT_ConstellationTable();
624}
Definition DT_ConstellationTable.h:19
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetLevelTable()

FDT_LevelTable UStageManifest::GetLevelTable ( int32  Level)
virtual
484{
485 if (const FDT_LevelTable* Row = LevelMap.Find(Level))
486 {
487 return *Row;
488 }
489
490 LOG_WARNING(LogCKAsset, "LevelMap에서 레벨 %d 행을 찾을 수 없습니다.", Level);
491 return FDT_LevelTable();
492}

◆ GetPortraitTable()

FDT_PortraitTable UStageManifest::GetPortraitTable ( const FName &  RowID)
virtual
580{
581 if (const FDT_PortraitTable* Row = PortraitMap.Find(RowID))
582 {
583 return *Row;
584 }
585
586 LOG_WARNING(LogCKAsset, "PortraitMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
587 return FDT_PortraitTable();
588}
Definition DT_PortraitTable.h:10
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetPrimaryAssetId()

FPrimaryAssetId UStageManifest::GetPrimaryAssetId ( ) const
overridevirtual
248{
249 return FPrimaryAssetId("StagesData", GetFName());
250}

◆ GetRandomConstellationTable()

FDT_ConstellationTable UStageManifest::GetRandomConstellationTable ( )
virtual
640{
641 if (ConstellationMap.IsEmpty())
642 {
643 LOG_WARNING(LogCKAsset, "ConstellationMap이 비어 있어 성좌를 뽑을 수 없습니다.");
644 return FDT_ConstellationTable();
645 }
646
647 TArray<FName> ConstellationIDs;
648 ConstellationMap.GetKeys(ConstellationIDs);
649
650 const FName PickedID = ConstellationIDs[FMath::RandRange(0, ConstellationIDs.Num() - 1)];
651
652 return ConstellationMap[PickedID];
653}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetRequiredExp()

float UStageManifest::GetRequiredExp ( int32  Level)
virtual
472{
473 if (const FDT_LevelTable* Row = LevelMap.Find(Level))
474 {
475 return Row->Required_Exp;
476 }
477
478 // 표에 없는 레벨은 최종 레벨로 본다.
479 return 0.0f;
480}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetScenarioCutsceneTable()

FDT_ScenarioCutsceneTable UStageManifest::GetScenarioCutsceneTable ( const FName &  RowID)
virtual
592{
593 if (const FDT_ScenarioCutsceneTable* Row = ScenarioCutsceneMap.Find(RowID))
594 {
595 return *Row;
596 }
597
598 LOG_WARNING(LogCKAsset, "ScenarioCutsceneMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
600}
Definition DT_ScenarioCutsceneTable.h:10

◆ GetSectionTable()

FSectionData UStageManifest::GetSectionTable ( const FName &  SectionID)
virtual
657{
658 if (const FSectionData* SectionData = SectionMap.Find(SectionID))
659 {
660 return *SectionData;
661 }
662
663 LOG_WARNING(LogCKAsset, "TotalSectionDataCache에서 SectionID '%s'를 찾을 수 없습니다.", *SectionID.ToString());
664 return FSectionData();
665}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetSituationTable()

FDT_SituationTable UStageManifest::GetSituationTable ( const FName &  RowID)
virtual
460{
461 if (const FDT_SituationTable* Row = SituationMap.Find(RowID))
462 {
463 return *Row;
464 }
465
466 LOG_WARNING(LogCKAsset, "SituationMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
467 return FDT_SituationTable();
468}

◆ GetToastMessageTable()

FDT_ToastMessageTable UStageManifest::GetToastMessageTable ( const FName &  RowID)
virtual
568{
569 if (const FDT_ToastMessageTable* Row = ToastMessageMap.Find(RowID))
570 {
571 return *Row;
572 }
573
574 LOG_WARNING(LogCKAsset, "ToastMessageMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
575 return FDT_ToastMessageTable();
576}
Definition DT_ToastMessageTable.h:10

◆ GetTutorialTable()

FDT_TutorialTable UStageManifest::GetTutorialTable ( const FName &  RowID)
virtual
604{
605 if (const FDT_TutorialTable* Row = TutorialMap.Find(RowID))
606 {
607 return *Row;
608 }
609
610 LOG_WARNING(LogCKAsset, "TutorialMap에서 RowID '%s'를 찾을 수 없습니다.", *RowID.ToString());
611 return FDT_TutorialTable();
612}
Definition FDT_TutorialTable.h:10

◆ HasLevelData()

bool UStageManifest::HasLevelData ( ) const
inline
226 {
227 return LevelMap.Num() > 0;
228 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnBundleLoaded_Implementation()

void UStageManifest::OnBundleLoaded_Implementation ( FGameplayTag  BundleTag)
overridevirtual
261{
262 IDataAssetBundle::OnBundleLoaded_Implementation(BundleTag);
263 BuildCache();
264}
void BuildCache()
Definition StageManifest.cpp:285
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnBundleReleased_Implementation()

void UStageManifest::OnBundleReleased_Implementation ( FGameplayTag  BundleTag)
overridevirtual
268{
269 IDataAssetBundle::OnBundleReleased_Implementation(BundleTag);
270 SectionMap.Empty();
271 WaveMap.Empty();
272 SpawnMap.Empty();
273 MonsterMap.Empty();
274 ToastMessageMap.Empty();
275 PortraitMap.Empty();
276 ScenarioCutsceneMap.Empty();
277 TutorialMap.Empty();
278 ConstellationMap.Empty();
279 BuffMap.Empty();
280 SituationMap.Empty();
281 LevelMap.Empty();
282}

◆ PostLoad()

void UStageManifest::PostLoad ( )
overridevirtual
254{
255 Super::PostLoad();
256 BuildCache();
257}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ BuffDataMap

TSoftObjectPtr<UDataTable> UStageManifest::BuffDataMap

◆ BuffMap

TMap<FName, FDT_BuffTable> UStageManifest::BuffMap
private

◆ ConstellationDataMap

TSoftObjectPtr<UDataTable> UStageManifest::ConstellationDataMap

◆ ConstellationMap

TMap<FName, FDT_ConstellationTable> UStageManifest::ConstellationMap
private

◆ FStageManifestHandle

friend UStageManifest::FStageManifestHandle

◆ LevelDataMap

TSoftObjectPtr<UDataTable> UStageManifest::LevelDataMap

◆ LevelMap

TMap<int32, FDT_LevelTable> UStageManifest::LevelMap
private

◆ MonsterDataMap

TSoftObjectPtr<UDataTable> UStageManifest::MonsterDataMap

◆ MonsterMap

TMap<FName, FMonsterDataCollection> UStageManifest::MonsterMap
private

◆ PortraitDataMap

TSoftObjectPtr<UDataTable> UStageManifest::PortraitDataMap

◆ PortraitMap

TMap<FName, FDT_PortraitTable> UStageManifest::PortraitMap
private

◆ ScenarioCutsceneDataMap

TSoftObjectPtr<UDataTable> UStageManifest::ScenarioCutsceneDataMap

◆ ScenarioCutsceneMap

TMap<FName, FDT_ScenarioCutsceneTable> UStageManifest::ScenarioCutsceneMap
private

◆ SectionDataMap

TSoftObjectPtr<UDataTable> UStageManifest::SectionDataMap

◆ SectionMap

TMap<FName, FSectionData> UStageManifest::SectionMap
private

◆ SituationDataMap

TSoftObjectPtr<UDataTable> UStageManifest::SituationDataMap

◆ SituationMap

TMap<FName, FDT_SituationTable> UStageManifest::SituationMap
private

◆ SpawnDataMap

TSoftObjectPtr<UDataTable> UStageManifest::SpawnDataMap

◆ SpawnMap

TMap<FName, TArray<FWaveSpawnEntry> > UStageManifest::SpawnMap
private

◆ ToastMessageDataMap

TSoftObjectPtr<UDataTable> UStageManifest::ToastMessageDataMap

◆ ToastMessageMap

TMap<FName, FDT_ToastMessageTable> UStageManifest::ToastMessageMap
private

◆ TutorialDataMap

TSoftObjectPtr<UDataTable> UStageManifest::TutorialDataMap

◆ TutorialMap

TMap<FName, FDT_TutorialTable> UStageManifest::TutorialMap
private

◆ WaveDataMap

TSoftObjectPtr<UDataTable> UStageManifest::WaveDataMap

◆ WaveMap

TMap<FName, FWaveDataCollection> UStageManifest::WaveMap
private

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: