MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / PKR_ReadDone

Function PKR_ReadDone

src/SB/Core/x/xpkrsvc.cpp:143–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143void PKR_ReadDone(st_PACKER_READ_DATA* pr)
144{
145 S32 i;
146 S32 j;
147 S32 lockid;
148 st_PACKER_ATOC_NODE* assnode;
149 st_PACKER_LTOC_NODE* laynode;
150 st_XORDEREDARRAY* tmplist;
151
152 if (pr == NULL)
153 {
154 return;
155 }
156 for (i = pr->laytoc.cnt - 1; i >= 0; i--)
157 {
158 st_PACKER_LTOC_NODE* laynode = (st_PACKER_LTOC_NODE*)pr->laytoc.list[i];
159 for (j = laynode->assref.cnt - 1; j >= 0; j--)
160 {
161 assnode = (st_PACKER_ATOC_NODE*)laynode->assref.list[j];
162 if (assnode->typeref != NULL && assnode->typeref->assetUnloaded != NULL &&
163 !(assnode->loadflag & 0x100000))
164 {
165 assnode->typeref->assetUnloaded(assnode->memloc, assnode->aid);
166 }
167 }
168 }
169
170 for (i = 0; i < pr->laytoc.cnt; i++)
171 {
172 laynode = (st_PACKER_LTOC_NODE*)pr->laytoc.list[i];
173 if (laynode->laymem != NULL)
174 {
175 PKR_LayerMemRelease(pr, laynode);
176 laynode->laymem = NULL;
177 }
178 }
179
180 PKR_kiilpool_anode(pr);
181
182 for (i = 0; i < pr->laytoc.cnt; i++)
183 {
184 laynode = (st_PACKER_LTOC_NODE*)pr->laytoc.list[i];
185 PKR_oldlaynode(laynode);
186 }
187
188 XOrdDone(&pr->asstoc, false);
189 XOrdDone(&pr->laytoc, false);
190
191 for (i = 0; i < 129; i++)
192 {
193 tmplist = &pr->typelist[i];
194 if (tmplist->max != 0)
195 {
196 XOrdDone(tmplist, false);
197 }
198 }
199
200 if (pr->pkg != NULL)

Callers 1

PKR_ReadInitFunction · 0.70

Calls 6

PKR_kiilpool_anodeFunction · 0.85
PKR_oldlaynodeFunction · 0.85
XOrdDoneFunction · 0.85
memsetFunction · 0.85
PKR_LayerMemReleaseFunction · 0.70
destroyMethod · 0.45

Tested by

no test coverage detected