mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-03-21 18:01:15 +00:00
[ruamoko] Allow scenes to be fetched by C code
Need to clean up that part of the API, though.
This commit is contained in:
parent
7b275ebab6
commit
d850285e3f
2 changed files with 17 additions and 2 deletions
|
@ -65,5 +65,6 @@ void RUA_Mersenne_Init (struct progs_s *pr, int secure);
|
|||
void RUA_Model_Init (struct progs_s *pr, int secure);
|
||||
struct model_s *Model_GetModel (progs_t *pr, int handle);
|
||||
void RUA_Scene_Init (struct progs_s *pr, int secure);
|
||||
struct scene_s *Scene_GetScene (struct progs_s *pr, pr_ulong_t handle);
|
||||
|
||||
#endif//__rua_internal_h
|
||||
|
|
|
@ -180,6 +180,17 @@ bi_Scene_DeleteScene (progs_t *pr, void *_res)
|
|||
rua_delete_scene (res, scene);
|
||||
}
|
||||
|
||||
scene_t *
|
||||
Scene_GetScene (progs_t *pr, pr_ulong_t handle)
|
||||
{
|
||||
if (!handle) {
|
||||
return 0;
|
||||
}
|
||||
rua_scene_resources_t *res = PR_Resources_Find (pr, "Scene");
|
||||
rua_scene_t *scene = rua_scene_get (res, P_ULONG (pr, 0));
|
||||
return scene->scene;
|
||||
}
|
||||
|
||||
static void
|
||||
bi_Scene_CreateEntity (progs_t *pr, void *_res)
|
||||
{
|
||||
|
@ -221,10 +232,13 @@ bi_Entity_SetModel (progs_t *pr, void *_res)
|
|||
pr_int_t model_id = P_INT (pr, 1);
|
||||
entity_t *ent = rua_entity_get (res, ent_id);
|
||||
model_t *model = Model_GetModel (pr, model_id);
|
||||
pr_ulong_t scene_id = ent_id & 0xffffffff;
|
||||
// bad scene caught above
|
||||
rua_scene_t *scene = rua_scene_get (res, scene_id);
|
||||
|
||||
R_RemoveEfrags (ent);
|
||||
ent->renderer.model = model;
|
||||
R_AddEfrags (&r_data->refdef->worldmodel->brush, ent);//FIXME r_data
|
||||
R_AddEfrags (&scene->scene->worldmodel->brush, ent);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -502,6 +516,6 @@ RUA_Scene_Init (progs_t *pr, int secure)
|
|||
|
||||
res->pr = pr;
|
||||
|
||||
PR_Resources_Register (pr, "scene", res, bi_scene_clear);
|
||||
PR_Resources_Register (pr, "Scene", res, bi_scene_clear);
|
||||
PR_RegisterBuiltins (pr, builtins, res);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue