1#pragma once
2
3#include "Library/Execute/ExecuteOrder.h"
4#include "Library/Execute/ExecuteTable.h"
5#include "Library/Execute/ExecuteTableHolderDraw.h"
6#include "Library/Execute/ExecuteTableHolderUpdate.h"
7
8static constexpr al::ExecuteOrder drawTableArr[] = {
9 // 3D(カリング)
10 {.listName: "カリング", .executeGroup: "ActorModelDrawCulling", .listMaxSize: 512, .groupType: "システム"},
11 // 3D(デプスシャドウ)
12 {.listName: "デプスシャドウ[キャラクター]", .executeGroup: "ActorModelDrawDepthShadow", .listMaxSize: 192, .groupType: "影"},
13 {.listName: "デプスシャドウ[地形]", .executeGroup: "ActorModelDrawDepthShadow", .listMaxSize: 192, .groupType: "影"},
14 {.listName: "デプスシャドウ[マーチングキューブ]", .executeGroup: "ActorModelDrawDepthShadowMarchingCube", .listMaxSize: 16, .groupType: "影"},
15 {.listName: "デプスシャドウ[独自]", .executeGroup: "Functor", .listMaxSize: 16, .groupType: "影"},
16 // 3D(デプスシャドウプレイヤー)
17 {.listName: "デプスシャドウ[プレイヤー]", .executeGroup: "ActorModelDrawDepthShadow", .listMaxSize: 128, .groupType: "影"},
18 {.listName: "Mii[顔モデル](デプスシャドウ)", .executeGroup: "Draw", .listMaxSize: 8, .groupType: "影"},
19 // 3D(スタティックデプスシャドウ)
20 {.listName: "スタティックデプスシャドウ[地形]", .executeGroup: "ActorModelDrawStaticDepthShadow", .listMaxSize: 128, .groupType: "影"},
21 // 3D(ワールドAo)
22 {.listName: "ワールドAo[地形]", .executeGroup: "ActorModelDrawWorldAo", .listMaxSize: 192, .groupType: "影"},
23 // 3D(海用デプス)
24 {.listName: "海用デプス[浜辺]", .executeGroup: "ActorModelDrawWorldAo", .listMaxSize: 8, .groupType: "影"},
25 {.listName: "海用デプス[高さ]", .executeGroup: "ActorModelDrawWorldAo", .listMaxSize: 8, .groupType: "影"},
26 // 3D(空)
27 {.listName: "空", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
28 // 3D(不透明Zプリパス)
29 {.listName: "Zプリパス[カリング]", .executeGroup: "ActorModelDrawDepthOnly", .listMaxSize: 512, .groupType: "地形"},
30 {.listName: "Zプリパス[キャラクター]", .executeGroup: "ActorModelDrawDepthOnly", .listMaxSize: 128, .groupType: "敵"},
31 {.listName: "Zプリパス[地形]", .executeGroup: "ActorModelDrawDepthOnly", .listMaxSize: 128, .groupType: "地形"},
32 {.listName: "Zプリパス[遠景]", .executeGroup: "ActorModelDrawDepthOnly", .listMaxSize: 128, .groupType: "地形"},
33 {.listName: "Zプリパス[ディザ]", .executeGroup: "ActorModelDrawDepthDither", .listMaxSize: 196, .groupType: "敵"},
34 {.listName: "プレイヤー", .executeGroup: "ActorModelDrawDepthDither", .listMaxSize: 196, .groupType: "プレイヤー"},
35 // 3D(ディファード地形)
36 {.listName: "地形オブジェ[地形前]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 128, .groupType: "地形オブジェ"},
37 {.listName: "地形オブジェ[地形前ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 32, .groupType: "地形オブジェ"},
38 {.listName: "地形オブジェ[地形前ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "地形オブジェ"},
39 {.listName: "敵[地形前]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 16, .groupType: "敵"},
40 {.listName: "敵[地形前ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "敵"},
41 {.listName: "NPC[地形前]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 16, .groupType: "NPC"},
42 {.listName: "NPC[地形前ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "NPC"},
43 {.listName: "プレイヤー[地形前]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 16, .groupType: "プレイヤー"},
44 {.listName: "地形[浮遊]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形"},
45 {.listName: "地形", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 256, .groupType: "地形"},
46 {.listName: "地形[ディファード]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 32, .groupType: "地形"},
47 {.listName: "地形[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 32, .groupType: "地形"},
48 {.listName: "地形[ディファード不透明]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "地形"},
49 {.listName: "地形[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 64, .groupType: "地形"},
50 {.listName: "地形[埋没]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形"},
51 // 3D(ディファード鏡映り込みなし)
52 {.listName: "地形[鏡映り込みなし]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形"},
53 // 3D(ディファードキャラクター)
54 {.listName: "シャドウマスク[地形オブジェ]", .executeGroup: "Draw", .listMaxSize: 3, .groupType: "影"},
55 {.listName: "足跡", .executeGroup: "ActorModelDrawDeferredFootPrint", .listMaxSize: 4, .groupType: "プレイヤー"},
56 {.listName: "地形オブジェ", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 128, .groupType: "地形オブジェ"},
57 {.listName: "地形オブジェ[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 16, .groupType: "地形オブジェ"},
58 {.listName: "地形オブジェ[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "地形オブジェ"},
59 {.listName: "地形オブジェ[マーチングキューブ]", .executeGroup: "ActorModelDrawDeferredMarchingCube", .listMaxSize: 32, .groupType: "地形オブジェ"},
60 {.listName: "地形[地形オブジェ後]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形"},
61 {.listName: "敵[シルエット前]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 128, .groupType: "敵"},
62 {.listName: "アクター描画[シルエット前]", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
63 {.listName: "シルエット[プレイヤー]", .executeGroup: "ActorModelDrawDeferredSilhouette", .listMaxSize: 196, .groupType: "プレイヤー"},
64 {.listName: "シルエット[オブジェ]", .executeGroup: "ActorModelDrawDeferredSilhouette", .listMaxSize: 64, .groupType: "地形オブジェ"},
65 {.listName: "シルエットモデル[敵]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 64, .groupType: "敵"},
66 {.listName: "地形[シルエット後]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形"},
67 {.listName: "地形オブジェ[シルエット後]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形オブジェ"},
68 {.listName: "シャドウマスク[敵]", .executeGroup: "Draw", .listMaxSize: 3, .groupType: "影"},
69 {.listName: "敵", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 128, .groupType: "敵"},
70 {.listName: "敵[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 16, .groupType: "敵"},
71 {.listName: "敵[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "敵"},
72 {.listName: "NPC", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 96, .groupType: "NPC"},
73 {.listName: "NPC[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 8, .groupType: "NPC"},
74 {.listName: "NPC[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 8, .groupType: "NPC"},
75 {.listName: "Mii[顔モデル]", .executeGroup: "Draw", .listMaxSize: 4, .groupType: "システム"},
76 {.listName: "シャドウマスク[アイテム]", .executeGroup: "Draw", .listMaxSize: 3, .groupType: "影"},
77 {.listName: "アイテム", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 64, .groupType: "アイテム"},
78 {.listName: "アイテム[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 8, .groupType: "アイテム"},
79 {.listName: "アイテム[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 8, .groupType: "アイテム"},
80 // 3D(ディファード異空間)
81 {.listName: "異空間オブジェ", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 64, .groupType: "地形オブジェ"},
82 // 3D(ディファードプレイヤー)
83 {.listName: "シャドウマスク[プレイヤー]", .executeGroup: "Draw", .listMaxSize: 4, .groupType: "影"},
84 {.listName: "プレイヤー", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 196, .groupType: "プレイヤー"},
85 {.listName: "プレイヤー装飾", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "プレイヤー"},
86 {.listName: "プレイヤー装飾[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 16, .groupType: "プレイヤー"},
87 // 3D(ディファード中景)
88 {.listName: "地形オブジェ[キャラ後]", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 32, .groupType: "地形オブジェ"},
89 {.listName: "シャドウマスク[ブロック]", .executeGroup: "Draw", .listMaxSize: 3, .groupType: "影"},
90 {.listName: "中景", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 8, .groupType: "地形"},
91 {.listName: "中景[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 8, .groupType: "地形"},
92 {.listName: "中景[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDeferredOpa", .listMaxSize: 8, .groupType: "地形"},
93 {.listName: "大気散乱", .executeGroup: "Draw", .listMaxSize: 1, .groupType: "地形"},
94 {.listName: "ディファード空", .executeGroup: "ActorModelDrawDeferredSky", .listMaxSize: 16, .groupType: "地形"},
95 {.listName: "ディファード空[デモ]", .executeGroup: "ActorModelDrawDeferredSky", .listMaxSize: 8, .groupType: "地形"},
96 // 3D(ディファード半透明)
97 {.listName: "地形[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "地形"},
98 {.listName: "地形[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "地形"},
99 {.listName: "地形オブジェ[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "地形オブジェ"},
100 {.listName: "地形オブジェ[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "地形オブジェ"},
101 {.listName: "敵[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "敵"},
102 {.listName: "敵[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "敵"},
103 {.listName: "NPC[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "NPC"},
104 {.listName: "NPC[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "NPC"},
105 {.listName: "アイテム[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "アイテム"},
106 {.listName: "アイテム[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "アイテム"},
107 {.listName: "プレイヤー装飾[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 8, .groupType: "プレイヤー"},
108 {.listName: "プレイヤー装飾[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 16, .groupType: "プレイヤー"},
109 {.listName: "シャドウマスク[モデルライト後]", .executeGroup: "Draw", .listMaxSize: 4, .groupType: "影"},
110 {.listName: "アクター描画", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
111 // 3D(デプスクリアプレイヤー)
112 {.listName: "プレイヤー", .executeGroup: "ActorModelDrawDepthForce", .listMaxSize: 196, .groupType: "プレイヤー"},
113 {.listName: "プレイヤー装飾[ディファード不透明のみ]", .executeGroup: "ActorModelDrawDepthForce", .listMaxSize: 16, .groupType: "プレイヤー"},
114 {.listName: "プレイヤー装飾[ディファード半透明のみ]", .executeGroup: "ActorModelDrawDepthForce", .listMaxSize: 16, .groupType: "プレイヤー"},
115 {.listName: "プレイヤー装飾[フォワードのみ]", .executeGroup: "ActorModelDrawDepthForce", .listMaxSize: 16, .groupType: "プレイヤー"},
116 {.listName: "プレイヤー装飾[インダイレクトのみ]", .executeGroup: "ActorModelDrawDepthForce", .listMaxSize: 16, .groupType: "プレイヤー"},
117 // 3D(フォワード遠景)
118 {.listName: "遠景[ライトバッファ]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
119 {.listName: "遠景[ライトバッファのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
120 {.listName: "大気散乱雲遠距離[ライトバッファ]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
121 {.listName: "大気散乱雲遠距離[ライトバッファのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
122 {.listName: "大気散乱雲[ライトバッファ]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
123 {.listName: "大気散乱雲[ライトバッファのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
124 {.listName: "大気散乱雲近距離[ライトバッファ]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
125 {.listName: "大気散乱雲近距離[ライトバッファのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
126 // 3D(フォワードプレイヤー)
127 {.listName: "Zプリパス[プレイヤー]", .executeGroup: "ActorModelDrawDepthOnly", .listMaxSize: 32, .groupType: "プレイヤー"},
128 {.listName: "プレイヤー[地形前]", .executeGroup: "ActorModelDrawForwardForce", .listMaxSize: 16, .groupType: "プレイヤー"},
129 {.listName: "プレイヤー", .executeGroup: "ActorModelDrawForwardForce", .listMaxSize: 196, .groupType: "プレイヤー"},
130 {.listName: "Zプリパス[プレイヤー装飾]", .executeGroup: "ActorModelDrawDepthDither", .listMaxSize: 128, .groupType: "プレイヤー"},
131 {.listName: "プレイヤー装飾", .executeGroup: "ActorModelDrawForwardForce", .listMaxSize: 32, .groupType: "プレイヤー"},
132 {.listName: "プレイヤー装飾[ディファード不透明のみ]", .executeGroup: "ActorModelDrawForwardForce", .listMaxSize: 16, .groupType: "プレイヤー"},
133 // 3D(フォワード)
134 {.listName: "半透明Zプリパス", .executeGroup: "ActorModelDrawDepthXlu", .listMaxSize: 8, .groupType: "地形"},
135 {.listName: "フォワードZプリパス[ディザ]", .executeGroup: "ActorModelDrawDepthDither", .listMaxSize: 8, .groupType: "地形"},
136 {.listName: "中景[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
137 {.listName: "中景[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
138 {.listName: "大気散乱雲[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
139 {.listName: "大気散乱雲[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
140 {.listName: "地形[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "地形"},
141 {.listName: "地形[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 48, .groupType: "地形"},
142 {.listName: "地形オブジェ[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "地形オブジェ"},
143 {.listName: "地形オブジェ[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 32, .groupType: "地形オブジェ"},
144 {.listName: "敵[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "敵"},
145 {.listName: "敵[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 16, .groupType: "敵"},
146 {.listName: "NPC[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "NPC"},
147 {.listName: "NPC[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "NPC"},
148 {.listName: "アイテム[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "アイテム"},
149 {.listName: "アイテム[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "アイテム"},
150 {.listName: "プレイヤー[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "プレイヤー"},
151 {.listName: "プレイヤー装飾[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "プレイヤー"},
152 {.listName: "プレイヤー装飾[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 16, .groupType: "プレイヤー"},
153 {.listName: "アクター描画[フォワード]", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
154 // 3D(インダイレクト)
155 {.listName: "半透明Zプリパス[インダイレクト]", .executeGroup: "ActorModelDrawDepthIndirect", .listMaxSize: 8, .groupType: "地形"},
156 {.listName: "インダイレクトZプリパス[ディザ]", .executeGroup: "ActorModelDrawDepthDitherIndirect", .listMaxSize: 8, .groupType: "地形"},
157 {.listName: "地形[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "地形"},
158 {.listName: "地形[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 16, .groupType: "地形"},
159 {.listName: "地形オブジェ[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "地形オブジェ"},
160 {.listName: "地形オブジェ[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 32, .groupType: "地形オブジェ"},
161 {.listName: "コイン[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 8, .groupType: "アイテム"},
162 {.listName: "ルート土管内側[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "地形オブジェ"},
163 {.listName: "ルート土管外側[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "地形オブジェ"},
164 {.listName: "敵[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "敵"},
165 {.listName: "敵[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 8, .groupType: "敵"},
166 {.listName: "NPC[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "NPC"},
167 {.listName: "NPC[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 8, .groupType: "NPC"},
168 {.listName: "アイテム[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "アイテム"},
169 {.listName: "アイテム[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 32, .groupType: "アイテム"},
170 {.listName: "プレイヤー装飾[インダイレクト]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 8, .groupType: "プレイヤー"},
171 {.listName: "プレイヤー装飾[インダイレクトのみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 8, .groupType: "プレイヤー"},
172 {.listName: "アクター描画[インダイレクト]", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
173 // 3D(インダイレクト後フォワード)
174 {.listName: "半透明Zプリパス[インダイレクト後]", .executeGroup: "ActorModelDrawDepthIndirect", .listMaxSize: 8, .groupType: "地形"},
175 {.listName: "地形オブジェ[フォワードインダイレクト後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8,
176 .groupType: "地形オブジェ"},
177 {.listName: "敵[フォワードインダイレクト後]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "敵"},
178 // 3D(インダイレクト後遠景)
179 {.listName: "大気散乱雲[インダイレクト後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
180 {.listName: "大気散乱雲[インダイレクト後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
181 // 3D(フォグ後インダイレクト)
182 {.listName: "地形[インダイレクトフォグ後]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 8, .groupType: "地形"},
183 {.listName: "地形[インダイレクトフォグ後のみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 8, .groupType: "地形"},
184 {.listName: "敵[インダイレクトフォグ後]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 8, .groupType: "敵"},
185 {.listName: "敵[インダイレクトフォグ後のみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 8, .groupType: "敵"},
186 {.listName: "アイテム[インダイレクトフォグ後]", .executeGroup: "ActorModelDrawIndirect", .listMaxSize: 32, .groupType: "アイテム"},
187 {.listName: "アイテム[インダイレクトフォグ後のみ]", .executeGroup: "ActorModelDrawIndirectOnly", .listMaxSize: 32, .groupType: "アイテム"},
188 // 3D(フォグ後遠景)
189 {.listName: "遠景[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
190 {.listName: "遠景[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
191 {.listName: "大気散乱雲[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
192 {.listName: "大気散乱雲[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
193 // 3D(フォグ後)
194 {.listName: "半透明Zプリパス[フォグ後]", .executeGroup: "ActorModelDrawDepthXlu", .listMaxSize: 8, .groupType: "地形"},
195 {.listName: "地形[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形"},
196 {.listName: "地形[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
197 {.listName: "地形オブジェ[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形オブジェ"},
198 {.listName: "地形オブジェ[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形オブジェ"},
199 {.listName: "敵[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "敵"},
200 {.listName: "敵[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "敵"},
201 {.listName: "NPC[フォグ後]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "NPC"},
202 {.listName: "NPC[フォグ後のみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "NPC"},
203 // 3D(クロマキーZプリパス)
204 {.listName: "Zプリパス[プレイヤークロマキー]", .executeGroup: "ActorModelDrawDepthChromakey", .listMaxSize: 208, .groupType: "プレイヤー"},
205 {.listName: "Zプリパス[NPCクロマキー]", .executeGroup: "ActorModelDrawDepthChromakey", .listMaxSize: 32, .groupType: "NPC"},
206 {.listName: "Zプリパス[ディザクロマキー]", .executeGroup: "ActorModelDrawDitherChromakey", .listMaxSize: 208, .groupType: "プレイヤー"},
207 // 3D(クロマキープレイヤー)
208 {.listName: "プレイヤー[クロマキー]", .executeGroup: "ActorModelDrawPlayerChromakey", .listMaxSize: 208, .groupType: "プレイヤー"},
209 {.listName: "プレイヤー[クロマキー不透明]", .executeGroup: "ActorModelDrawPlayerChromakeyOpa", .listMaxSize: 208, .groupType: "プレイヤー"},
210 {.listName: "プレイヤー[クロマキー半透明]", .executeGroup: "ActorModelDrawPlayerChromakeyXlu", .listMaxSize: 64, .groupType: "プレイヤー"},
211 // 3D(クロマキーキャラクター)
212 {.listName: "NPC[クロマキー]", .executeGroup: "ActorModelDrawCharacterChromakey", .listMaxSize: 32, .groupType: "NPC"},
213 // 2Dバック(メイン画面)
214 {.listName: "2Dバック", .executeGroup: "LayoutDraw", .listMaxSize: 64, .groupType: "レイアウト"},
215 // 2Dベース(メイン画面)
216 {.listName: "2Dベース", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
217 {.listName: "2D情報バルーン", .executeGroup: "LayoutDraw", .listMaxSize: 64, .groupType: "レイアウト"},
218 {.listName: "2D会話バルーン", .executeGroup: "LayoutDraw", .listMaxSize: 128, .groupType: "レイアウト"},
219 {.listName: "2D", .executeGroup: "LayoutDraw", .listMaxSize: 256, .groupType: "レイアウト"},
220 {.listName: "2Dフィルターバルーン", .executeGroup: "LayoutDraw", .listMaxSize: 64, .groupType: "レイアウト"},
221 {.listName: "2Dフィルター", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
222 {.listName: "2D(メイン画面のみ)", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
223 {.listName: "2Dガイド", .executeGroup: "LayoutDraw", .listMaxSize: 64, .groupType: "レイアウト"},
224 {.listName: "2Dカウンター", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
225 {.listName: "2Dマップアイコン", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
226 {.listName: "2D通知", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
227 // 2Dエフェクト(メイン画面)
228 {.listName: "2Dベースエフェクト", .executeGroup: "Draw", .listMaxSize: 1, .groupType: "エフェクト"},
229 // 2Dオーバー(メイン画面)
230 {.listName: "2Dヘッド", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
231 {.listName: "2Dポーズ", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
232 {.listName: "2Dランキング", .executeGroup: "LayoutDraw", .listMaxSize: 4, .groupType: "レイアウト"},
233 {.listName: "2Dライン", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
234 {.listName: "2Dアイコン[最低]", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
235 {.listName: "2Dアイコン[低]", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
236 {.listName: "2Dアイコン[中]", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
237 {.listName: "2Dアイコン[高]", .executeGroup: "LayoutDraw", .listMaxSize: 356, .groupType: "レイアウト"},
238 {.listName: "2Dアイコン[最高]", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
239 {.listName: "2Dカーソル", .executeGroup: "LayoutDraw", .listMaxSize: 12, .groupType: "レイアウト"},
240 {.listName: "2Dリスト", .executeGroup: "LayoutDraw", .listMaxSize: 12, .groupType: "レイアウト"},
241 {.listName: "2Dリストアイコン", .executeGroup: "LayoutDraw", .listMaxSize: 256, .groupType: "レイアウト"},
242 {.listName: "2Dリストカーソル", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
243 {.listName: "2Dゲームオーバー", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
244 {.listName: "2Dカバー", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
245 {.listName: "2Dエフェクト", .executeGroup: "Draw", .listMaxSize: 1, .groupType: "エフェクト"},
246 {.listName: "2Dワイプ[ウィンドウ前]", .executeGroup: "LayoutDraw", .listMaxSize: 4, .groupType: "レイアウト"},
247 {.listName: "2Dウィンドウ", .executeGroup: "LayoutDraw", .listMaxSize: 24, .groupType: "レイアウト"},
248 {.listName: "2Dウィンドウカウンター", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
249 {.listName: "2Dワイプ", .executeGroup: "LayoutDraw", .listMaxSize: 48, .groupType: "レイアウト"},
250 {.listName: "2Dリザルト", .executeGroup: "LayoutDraw", .listMaxSize: 4, .groupType: "レイアウト"},
251 // 2D(デモ画面)
252 {.listName: "2Dデモベース", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
253 {.listName: "2Dデモ", .executeGroup: "LayoutDraw", .listMaxSize: 96, .groupType: "レイアウト"},
254 {.listName: "2Dデモ情報バルーン", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
255 {.listName: "2Dデモライン", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
256 {.listName: "2Dデモアイコン", .executeGroup: "LayoutDraw", .listMaxSize: 196, .groupType: "レイアウト"},
257 {.listName: "2Dデモアイコンオーバー", .executeGroup: "LayoutDraw", .listMaxSize: 128, .groupType: "レイアウト"},
258 {.listName: "2Dデモアイコンプレイヤー", .executeGroup: "LayoutDraw", .listMaxSize: 4, .groupType: "レイアウト"},
259 {.listName: "2Dデモカーソル", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
260 // ポストエフェクトマスク
261 {.listName: "ポストエフェクトマスク", .executeGroup: "ActorModelDrawPostEffectMask", .listMaxSize: 32, .groupType: "地形"},
262 // アクター描画(独自レンダーターゲット)
263 {.listName: "アクター描画[独自レンダーターゲット]", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
264 // アクター描画(プロジェクト固有)
265 {.listName: "アクター描画(プロジェクト固有)", .executeGroup: "ActorDraw", .listMaxSize: 8, .groupType: "アクター"},
266 // モデル描画バッファ更新
267 {.listName: "モデル描画バッファ更新", .executeGroup: "ActorModelDrawUpdate", .listMaxSize: 1024, .groupType: "システム"},
268 // 3D(ワールドマップディファード)
269 {.listName: "ワールドマップ地形", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 128, .groupType: "地形"},
270 {.listName: "ワールドマップ地形[ディファードのみ]", .executeGroup: "ActorModelDrawDeferredOnly", .listMaxSize: 8, .groupType: "地形"},
271 {.listName: "ワールドマップディファード空", .executeGroup: "ActorModelDrawDeferredSky", .listMaxSize: 8, .groupType: "地形"},
272 {.listName: "ワールドマップ地形[ディファード半透明]", .executeGroup: "ActorModelDrawDeferredXlu", .listMaxSize: 16, .groupType: "地形"},
273 // 3D(ワールドマップフォワード)
274 {.listName: "ワールドマップ地形[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 32, .groupType: "地形"},
275 {.listName: "ワールドマップ地形[フォワードのみ]", .executeGroup: "ActorModelDrawForwardOnly", .listMaxSize: 8, .groupType: "地形"},
276 {.listName: "ワールドマップ地形オブジェ[フォワード]", .executeGroup: "ActorModelDraw", .listMaxSize: 8, .groupType: "地形オブジェ"},
277 // 2D(ワールドマップ画面)
278 {.listName: "2Dワールドマップベース", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
279 {.listName: "2Dワールドマップ", .executeGroup: "LayoutDraw", .listMaxSize: 32, .groupType: "レイアウト"},
280 // 2D(ムーンゲット画面)
281 {.listName: "2D(ムーンゲット)", .executeGroup: "LayoutDraw", .listMaxSize: 8, .groupType: "レイアウト"},
282 {.listName: "2Dカウンター(ムーンゲット)", .executeGroup: "LayoutDraw", .listMaxSize: 1, .groupType: "レイアウト"},
283 {.listName: "2Dワイプ(ムーンゲット)", .executeGroup: "LayoutDraw", .listMaxSize: 4, .groupType: "レイアウト"},
284 // 2D(スナップショット)
285 {.listName: "2Dスナップショット", .executeGroup: "LayoutDraw", .listMaxSize: 3, .groupType: "レイアウト"},
286 // 2D(撮影用)
287 {.listName: "2D撮影用", .executeGroup: "LayoutDraw", .listMaxSize: 16, .groupType: "レイアウト"},
288 // 2D(ミス)
289 {.listName: "2Dミス", .executeGroup: "LayoutDraw", .listMaxSize: 2, .groupType: "レイアウト"},
290 // Custom Entries
291 {.listName: "PuppetActor", .executeGroup: "ActorModelDrawDeferred", .listMaxSize: 512, .groupType: "ボス"}};
292
293static constexpr al::ExecuteOrder updateTableArr[] = {
294 // Update Table Name: 更新
295 {.listName: "ステージ同期カウンタ", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
296 {.listName: "乗り物(カメラ前)[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 8, .groupType: "乗り物"},
297 {.listName: "カメラ前プレイヤー[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 16, .groupType: "プレイヤー"},
298 {.listName: "カメラ前プレイヤー", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 16, .groupType: "プレイヤー"},
299 {.listName: "カメラ", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "カメラ"},
300 {.listName: "クリッピング", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
301 {.listName: "センサー", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
302 {.listName: "試作用処理1", .executeGroup: "Execute", .listMaxSize: 2, .groupType: "システム"},
303 {.listName: "試作用処理2", .executeGroup: "Execute", .listMaxSize: 8, .groupType: "システム"},
304 {.listName: "試作用処理3", .executeGroup: "Execute", .listMaxSize: 2, .groupType: "システム"},
305 {.listName: "試作用処理4", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
306 {.listName: "空", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 16, .groupType: "地形"},
307 {.listName: "波", .executeGroup: "ActorMovement", .listMaxSize: 16, .groupType: "地形"},
308 {.listName: "遠景", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 8, .groupType: "地形"},
309 {.listName: "コリジョン地形", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 256, .groupType: "地形"},
310 {.listName: "コリジョン地形[デモ]", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "地形"},
311 {.listName: "コリジョン地形[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "地形"},
312 {.listName: "コリジョン地形装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "地形"},
313 {.listName: "コリジョン地形装飾[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "地形"},
314 {.listName: "コリジョン地形オブジェ", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "地形オブジェ"},
315 {.listName: "コリジョン地形オブジェ[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "地形オブジェ"},
316 {.listName: "コリジョンディレクター", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
317 {.listName: "地形オブジェ", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 128, .groupType: "地形オブジェ"},
318 {.listName: "地形オブジェ[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "地形オブジェ"},
319 {.listName: "地形オブジェ装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "地形オブジェ"},
320 {.listName: "乗り物", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "乗り物"},
321 {.listName: "エフェクトオブジェ", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "エフェクト"},
322 {.listName: "デモプレイヤーロケーター", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 4, .groupType: "プレイヤー"},
323 {.listName: "デモプレイヤー前処理", .executeGroup: "ActorMovement", .listMaxSize: 16, .groupType: "プレイヤー"},
324 {.listName: "プレイヤー前処理", .executeGroup: "Functor", .listMaxSize: 1, .groupType: "プレイヤー"},
325 {.listName: "プレイヤー[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 16, .groupType: "プレイヤー"},
326 {.listName: "プレイヤー", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 128, .groupType: "プレイヤー"},
327 {.listName: "プレイヤー後処理", .executeGroup: "Functor", .listMaxSize: 1, .groupType: "プレイヤー"},
328 {.listName: "プレイヤー装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "プレイヤー"},
329 {.listName: "プレイヤー装飾2", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "プレイヤー"},
330 {.listName: "帽子(武器)", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 1, .groupType: "アイテム"},
331 {.listName: "帽子(表示)", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 16, .groupType: "アイテム"},
332 {.listName: "敵", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 128, .groupType: "敵"},
333 {.listName: "敵[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "敵"},
334 {.listName: "敵装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "敵"},
335 {.listName: "敵装飾[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "敵"},
336 {.listName: "デモ", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "地形"},
337 {.listName: "デモ装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "地形"},
338 {.listName: "デモオブジェクト", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "地形"},
339 {.listName: "NPC", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "NPC"},
340 {.listName: "NPC装飾", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 32, .groupType: "NPC"},
341 {.listName: "帽子装着位置更新", .executeGroup: "Functor", .listMaxSize: 8, .groupType: "システム"},
342 {.listName: "NPCイベントディレクター", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
343 {.listName: "エリア監視オブジェ", .executeGroup: "Execute", .listMaxSize: 8, .groupType: "システム"},
344 {.listName: "通知レイアウト更新", .executeGroup: "Execute", .listMaxSize: 3, .groupType: "システム"},
345 {.listName: "バルーン位置更新", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
346 {.listName: "ネットワーク", .executeGroup: "Execute", .listMaxSize: 2, .groupType: "システム"},
347 {.listName: "プレイヤーゴースト管理", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "プレイヤー"},
348 {.listName: "エコーエミッター管理", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "地形オブジェ"},
349 {.listName: "メッシュ変形モデル管理", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "地形オブジェ"},
350 {.listName: "アイテム", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "アイテム"},
351 {.listName: "アイテム[デモ]", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 64, .groupType: "アイテム"},
352 {.listName: "アイテム[Movement]", .executeGroup: "ActorMovement", .listMaxSize: 16, .groupType: "アイテム"},
353 {.listName: "シャドウマスク", .executeGroup: "ActorMovement", .listMaxSize: 64, .groupType: "影"},
354 {.listName: "グラフィックス要求者", .executeGroup: "ActorMovement", .listMaxSize: 64, .groupType: "システム"},
355 {.listName: "プロジェクト用グラフィックス", .executeGroup: "Execute", .listMaxSize: 64, .groupType: "システム"},
356 {.listName: "監視オブジェ", .executeGroup: "ActorMovement", .listMaxSize: 32, .groupType: "システム"},
357 {.listName: "キッズルートガイド管理", .executeGroup: "ActorMovement", .listMaxSize: 1, .groupType: "システム"},
358 {.listName: "キッズルートガイド", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 4, .groupType: "システム"},
359 {.listName: "サウンド制御", .executeGroup: "ActorMovement", .listMaxSize: 10, .groupType: "システム"},
360 {.listName: "ステージスイッチディレクター", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "システム"},
361 {.listName: "2D", .executeGroup: "LayoutUpdate", .listMaxSize: 404, .groupType: "レイアウト"},
362 {.listName: "2D(ポーズ無視)", .executeGroup: "LayoutUpdate", .listMaxSize: 360, .groupType: "レイアウト"},
363 {.listName: "エフェクト(前処理)", .executeGroup: "Functor", .listMaxSize: 1, .groupType: "エフェクト"},
364 {.listName: "エフェクト(3D)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
365 {.listName: "エフェクト(プレイヤー)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
366 {.listName: "エフェクト(Zソート)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
367 {.listName: "エフェクト(カメラデモ)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
368 {.listName: "エフェクト(カメラ前エフェクト)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
369 {.listName: "エフェクト(ベース2D)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
370 {.listName: "エフェクト(2D)", .executeGroup: "Execute", .listMaxSize: 1, .groupType: "エフェクト"},
371 {.listName: "エフェクト(後処理)", .executeGroup: "Functor", .listMaxSize: 1, .groupType: "エフェクト"},
372 // Update Table Name: ビュー更新(コア1)
373 {.listName: "ビュー更新(コア1)", .executeGroup: "ActorCalcView", .listMaxSize: 512, .groupType: "システム"},
374 // Update Table Name: ビュー更新(コア2)
375 {.listName: "ビュー更新(コア2)", .executeGroup: "ActorCalcView", .listMaxSize: 1024, .groupType: "システム"},
376 // Update Table Name: スナップショット
377 {.listName: "スナップショット[CalcAnim]", .executeGroup: "ActorCalcAnim", .listMaxSize: 16, .groupType: "NPC"},
378 {.listName: "スナップショット[ActorMovement]", .executeGroup: "ActorMovement", .listMaxSize: 1, .groupType: "地形オブジェ"},
379 // Custom Tables
380 {.listName: "PuppetActor", .executeGroup: "ActorMovementCalcAnim", .listMaxSize: 512, .groupType: "ボス"}};
381
382constexpr bool strings_equal(const char* a, const char* b) {
383 return *a == *b && (*a == '\0' || strings_equal(a: a + 1, b: b + 1));
384}
385
386static constexpr s32 getUpdateTableIndex(const char* listName) {
387 for (u64 i = 0; i < sizeof(updateTableArr) / sizeof(updateTableArr[0]); i++)
388 if (strings_equal(a: updateTableArr[i].listName, b: listName))
389 return i;
390 return 0;
391}
392
393static constexpr al::ExecuteTable
394createUpdateTable(const char* tableName, const char* startListName, const char* endListName) {
395 al::ExecuteTable drawTable;
396 drawTable.name = tableName;
397 s32 startIndex = getUpdateTableIndex(listName: startListName);
398 drawTable.executeOrders = &updateTableArr[startIndex];
399 drawTable.executeOrderCount = (getUpdateTableIndex(listName: endListName) - startIndex) + 1;
400 return drawTable;
401}
402
403static constexpr s32 getDrawTableIndex(const char* listName, const char* groupName) {
404 for (u64 i = 0; i < sizeof(drawTableArr) / sizeof(drawTableArr[0]); i++)
405 if (strings_equal(a: drawTableArr[i].listName, b: listName) &&
406 strings_equal(a: drawTableArr[i].executeGroup, b: groupName))
407 return i;
408 return 0;
409}
410
411static constexpr al::ExecuteTable createDrawTable(const char* tableName, const char* startListName,
412 const char* groupStartName,
413 const char* endListName,
414 const char* groupEndName) {
415 al::ExecuteTable drawTable;
416 drawTable.name = tableName;
417 s32 startIndex = getDrawTableIndex(listName: startListName, groupName: groupStartName);
418 drawTable.executeOrders = &drawTableArr[startIndex];
419 drawTable.executeOrderCount = (getDrawTableIndex(listName: endListName, groupName: groupEndName) - startIndex) + 1;
420 return drawTable;
421}
422
423constexpr al::ExecuteTable DrawTable[] = {
424 createDrawTable(tableName: "3D(カリング)", startListName: "カリング", groupStartName: "ActorModelDrawCulling", endListName: "カリング",
425 groupEndName: "ActorModelDrawCulling"),
426 createDrawTable(tableName: "3D(デプスシャドウ)", startListName: "デプスシャドウ[キャラクター]",
427 groupStartName: "ActorModelDrawDepthShadow", endListName: "デプスシャドウ[独自]", groupEndName: "Functor"),
428 createDrawTable(tableName: "3D(デプスシャドウプレイヤー)", startListName: "デプスシャドウ[プレイヤー]",
429 groupStartName: "ActorModelDrawDepthShadow", endListName: "Mii[顔モデル](デプスシャドウ)", groupEndName: "Draw"),
430 createDrawTable(tableName: "3D(スタティックデプスシャドウ)", startListName: "スタティックデプスシャドウ[地形]",
431 groupStartName: "ActorModelDrawStaticDepthShadow", endListName: "スタティックデプスシャドウ[地形]",
432 groupEndName: "ActorModelDrawStaticDepthShadow"),
433 createDrawTable(tableName: "3D(ワールドAo)", startListName: "ワールドAo[地形]", groupStartName: "ActorModelDrawWorldAo",
434 endListName: "ワールドAo[地形]", groupEndName: "ActorModelDrawWorldAo"),
435 createDrawTable(tableName: "3D(海用デプス)", startListName: "海用デプス[浜辺]", groupStartName: "ActorModelDrawWorldAo",
436 endListName: "海用デプス[高さ]", groupEndName: "ActorModelDrawWorldAo"),
437 createDrawTable(tableName: "3D(空)", startListName: "空", groupStartName: "ActorModelDraw", endListName: "空", groupEndName: "ActorModelDraw"),
438 createDrawTable(tableName: "3D(不透明Zプリパス)", startListName: "Zプリパス[カリング]", groupStartName: "ActorModelDrawDepthOnly",
439 endListName: "プレイヤー", groupEndName: "ActorModelDrawDepthDither"),
440 createDrawTable(tableName: "3D(ディファード地形)", startListName: "地形オブジェ[地形前]", groupStartName: "ActorModelDrawDeferred",
441 endListName: "地形[埋没]", groupEndName: "ActorModelDrawDeferred"),
442 createDrawTable(tableName: "3D(ディファード鏡映り込みなし)", startListName: "地形[鏡映り込みなし]",
443 groupStartName: "ActorModelDrawDeferred", endListName: "地形[鏡映り込みなし]", groupEndName: "ActorModelDrawDeferred"),
444 createDrawTable(tableName: "3D(ディファードキャラクター)", startListName: "シャドウマスク[地形オブジェ]", groupStartName: "Draw",
445 endListName: "アイテム[ディファード不透明のみ]", groupEndName: "ActorModelDrawDeferredOpa"),
446 createDrawTable(tableName: "3D(ディファード異空間)", startListName: "異空間オブジェ", groupStartName: "ActorModelDrawDeferred",
447 endListName: "異空間オブジェ", groupEndName: "ActorModelDrawDeferred"),
448 createDrawTable(tableName: "3D(ディファードプレイヤー)", startListName: "シャドウマスク[プレイヤー]", groupStartName: "Draw",
449 endListName: "プレイヤー装飾[ディファード不透明のみ]", groupEndName: "ActorModelDrawDeferredOpa"),
450 createDrawTable(tableName: "3D(ディファード中景)", startListName: "地形オブジェ[キャラ後]", groupStartName: "ActorModelDrawDeferred",
451 endListName: "ディファード空[デモ]", groupEndName: "ActorModelDrawDeferredSky"),
452 createDrawTable(tableName: "3D(ディファード半透明)", startListName: "地形[ディファード半透明]",
453 groupStartName: "ActorModelDrawDeferredXlu", endListName: "アクター描画", groupEndName: "ActorDraw"),
454 createDrawTable(tableName: "3D(デプスクリアプレイヤー)", startListName: "プレイヤー", groupStartName: "ActorModelDrawDepthForce",
455 endListName: "プレイヤー装飾[インダイレクトのみ]", groupEndName: "ActorModelDrawDepthForce"),
456 createDrawTable(tableName: "3D(フォワード遠景)", startListName: "遠景[ライトバッファ]", groupStartName: "ActorModelDraw",
457 endListName: "大気散乱雲近距離[ライトバッファのみ]", groupEndName: "ActorModelDrawForwardOnly"),
458 createDrawTable(tableName: "3D(フォワードプレイヤー)", startListName: "Zプリパス[プレイヤー]",
459 groupStartName: "ActorModelDrawDepthOnly", endListName: "プレイヤー装飾[ディファード不透明のみ]",
460 groupEndName: "ActorModelDrawForwardForce"),
461 createDrawTable(tableName: "3D(フォワード)", startListName: "半透明Zプリパス", groupStartName: "ActorModelDrawDepthXlu",
462 endListName: "アクター描画[フォワード]", groupEndName: "ActorDraw"),
463 createDrawTable(tableName: "3D(インダイレクト)", startListName: "半透明Zプリパス[インダイレクト]",
464 groupStartName: "ActorModelDrawDepthIndirect", endListName: "アクター描画[インダイレクト]", groupEndName: "ActorDraw"),
465 createDrawTable(tableName: "3D(インダイレクト後フォワード)", startListName: "半透明Zプリパス[インダイレクト後]",
466 groupStartName: "ActorModelDrawDepthIndirect", endListName: "敵[フォワードインダイレクト後]",
467 groupEndName: "ActorModelDraw"),
468 createDrawTable(tableName: "3D(インダイレクト後遠景)", startListName: "大気散乱雲[インダイレクト後]",
469 groupStartName: "ActorModelDraw", endListName: "大気散乱雲[インダイレクト後のみ]",
470 groupEndName: "ActorModelDrawForwardOnly"),
471 createDrawTable(tableName: "3D(フォグ後インダイレクト)", startListName: "地形[インダイレクトフォグ後]",
472 groupStartName: "ActorModelDrawIndirect", endListName: "アイテム[インダイレクトフォグ後のみ]",
473 groupEndName: "ActorModelDrawIndirectOnly"),
474 createDrawTable(tableName: "3D(フォグ後遠景)", startListName: "遠景[フォグ後]", groupStartName: "ActorModelDraw",
475 endListName: "大気散乱雲[フォグ後のみ]", groupEndName: "ActorModelDrawForwardOnly"),
476 createDrawTable(tableName: "3D(フォグ後)", startListName: "半透明Zプリパス[フォグ後]", groupStartName: "ActorModelDrawDepthXlu",
477 endListName: "NPC[フォグ後のみ]", groupEndName: "ActorModelDrawForwardOnly"),
478 createDrawTable(tableName: "3D(クロマキーZプリパス)", startListName: "Zプリパス[プレイヤークロマキー]",
479 groupStartName: "ActorModelDrawDepthChromakey", endListName: "Zプリパス[ディザクロマキー]",
480 groupEndName: "ActorModelDrawDitherChromakey"),
481 createDrawTable(tableName: "3D(クロマキープレイヤー)", startListName: "プレイヤー[クロマキー]",
482 groupStartName: "ActorModelDrawPlayerChromakey", endListName: "プレイヤー[クロマキー半透明]",
483 groupEndName: "ActorModelDrawPlayerChromakeyXlu"),
484 createDrawTable(tableName: "3D(クロマキーキャラクター)", startListName: "NPC[クロマキー]",
485 groupStartName: "ActorModelDrawCharacterChromakey", endListName: "NPC[クロマキー]",
486 groupEndName: "ActorModelDrawCharacterChromakey"),
487 createDrawTable(tableName: "2Dバック(メイン画面)", startListName: "2Dバック", groupStartName: "LayoutDraw", endListName: "2Dバック",
488 groupEndName: "LayoutDraw"),
489 createDrawTable(tableName: "2Dベース(メイン画面)", startListName: "2Dベース", groupStartName: "LayoutDraw", endListName: "2D通知",
490 groupEndName: "LayoutDraw"),
491 createDrawTable(tableName: "2Dエフェクト(メイン画面)", startListName: "2Dベースエフェクト", groupStartName: "Draw",
492 endListName: "2Dベースエフェクト", groupEndName: "Draw"),
493 createDrawTable(tableName: "2Dオーバー(メイン画面)", startListName: "2Dヘッド", groupStartName: "LayoutDraw", endListName: "2Dリザルト",
494 groupEndName: "LayoutDraw"),
495 createDrawTable(tableName: "2D(デモ画面)", startListName: "2Dデモベース", groupStartName: "LayoutDraw", endListName: "2Dデモカーソル",
496 groupEndName: "LayoutDraw"),
497 createDrawTable(tableName: "ポストエフェクトマスク", startListName: "ポストエフェクトマスク",
498 groupStartName: "ActorModelDrawPostEffectMask", endListName: "ポストエフェクトマスク",
499 groupEndName: "ActorModelDrawPostEffectMask"),
500 createDrawTable(tableName: "アクター描画(独自レンダーターゲット)",
501 startListName: "アクター描画[独自レンダーターゲット]", groupStartName: "ActorDraw",
502 endListName: "アクター描画[独自レンダーターゲット]", groupEndName: "ActorDraw"),
503 createDrawTable(tableName: "アクター描画(プロジェクト固有)", startListName: "アクター描画(プロジェクト固有)",
504 groupStartName: "ActorDraw", endListName: "アクター描画(プロジェクト固有)", groupEndName: "ActorDraw"),
505 createDrawTable(tableName: "モデル描画バッファ更新", startListName: "モデル描画バッファ更新", groupStartName: "ActorModelDrawUpdate",
506 endListName: "モデル描画バッファ更新", groupEndName: "ActorModelDrawUpdate"),
507 createDrawTable(tableName: "3D(ワールドマップディファード)", startListName: "ワールドマップ地形",
508 groupStartName: "ActorModelDrawDeferred", endListName: "ワールドマップ地形[ディファード半透明]",
509 groupEndName: "ActorModelDrawDeferredXlu"),
510 createDrawTable(tableName: "3D(ワールドマップフォワード)", startListName: "ワールドマップ地形[フォワード]",
511 groupStartName: "ActorModelDraw", endListName: "ワールドマップ地形オブジェ[フォワード]", groupEndName: "ActorModelDraw"),
512 createDrawTable(tableName: "2D(ワールドマップ画面)", startListName: "2Dワールドマップベース", groupStartName: "LayoutDraw",
513 endListName: "2Dワールドマップ", groupEndName: "LayoutDraw"),
514 createDrawTable(tableName: "2D(ムーンゲット画面)", startListName: "2D(ムーンゲット)", groupStartName: "LayoutDraw",
515 endListName: "2Dワイプ(ムーンゲット)", groupEndName: "LayoutDraw"),
516 createDrawTable(tableName: "2D(スナップショット)", startListName: "2Dスナップショット", groupStartName: "LayoutDraw",
517 endListName: "2Dスナップショット", groupEndName: "LayoutDraw"),
518 createDrawTable(tableName: "2D(撮影用)", startListName: "2D撮影用", groupStartName: "LayoutDraw", endListName: "2D撮影用", groupEndName: "LayoutDraw"),
519 createDrawTable(tableName: "2D(ミス)", startListName: "2Dミス", groupStartName: "LayoutDraw", endListName: "2Dミス", groupEndName: "LayoutDraw"),
520};
521
522constexpr s32 DrawTableSize = sizeof(DrawTable) / sizeof(DrawTable[0]);
523
524constexpr al::ExecuteTable UpdateTable[] = {
525 createUpdateTable(tableName: "更新", startListName: "ステージ同期カウンタ", endListName: "エフェクト(後処理)"),
526 createUpdateTable(tableName: "ビュー更新(コア1)", startListName: "ビュー更新(コア1)", endListName: "ビュー更新(コア1)"),
527 createUpdateTable(tableName: "ビュー更新(コア2)", startListName: "ビュー更新(コア2)", endListName: "ビュー更新(コア2)"),
528 createUpdateTable(tableName: "スナップショット", startListName: "スナップショット[CalcAnim]",
529 endListName: "スナップショット[ActorMovement]"),
530};
531
532constexpr s32 UpdateTableSize = sizeof(UpdateTable) / sizeof(UpdateTable[0]);
533