Add map_scr_remove_all_spatials
This commit is contained in:
parent
1de7ef0151
commit
8329d2fcf6
|
@ -0,0 +1,55 @@
|
|||
#include "mapper/mp_scrpt.h"
|
||||
|
||||
#include "art.h"
|
||||
#include "object.h"
|
||||
#include "scripts.h"
|
||||
#include "tile.h"
|
||||
|
||||
namespace fallout {
|
||||
|
||||
// 0x49B214
|
||||
int map_scr_remove_all_spatials()
|
||||
{
|
||||
int elevation;
|
||||
Script* scr;
|
||||
Object* obj;
|
||||
int sid;
|
||||
|
||||
for (elevation = 0; elevation < ELEVATION_COUNT; elevation++) {
|
||||
scr = scriptGetFirstSpatialScript(elevation);
|
||||
while (scr != NULL) {
|
||||
scriptRemove(scr->sid);
|
||||
|
||||
scr = scriptGetFirstSpatialScript(elevation);
|
||||
}
|
||||
|
||||
obj = objectFindFirstAtElevation(elevation);
|
||||
while (obj != NULL) {
|
||||
if (buildFid(OBJ_TYPE_INTERFACE, 3, 0, 0, 0) == obj->fid) {
|
||||
objectDestroy(obj, NULL);
|
||||
|
||||
obj = objectFindFirstAtElevation(elevation);
|
||||
continue;
|
||||
}
|
||||
|
||||
obj = objectFindNextAtElevation();
|
||||
}
|
||||
}
|
||||
|
||||
tileWindowRefresh();
|
||||
|
||||
for (sid = 0; sid < 15000; sid++) {
|
||||
if (scriptGetScript(sid, &scr) != -1) {
|
||||
if (scr->owner != NULL) {
|
||||
if (scr->owner->pid == 0x500000C) {
|
||||
scr->owner->sid = -1;
|
||||
scriptRemove(sid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace fallout
|
|
@ -0,0 +1,10 @@
|
|||
#ifndef FALLOUT_MAPPER_MP_SCRPTR_H_
|
||||
#define FALLOUT_MAPPER_MP_SCRPTR_H_
|
||||
|
||||
namespace fallout {
|
||||
|
||||
int map_scr_remove_all_spatials();
|
||||
|
||||
} // namespace fallout
|
||||
|
||||
#endif /* FALLOUT_MAPPER_MP_SCRPTR_H_ */
|
Loading…
Reference in New Issue