OpenTomb icon indicating copy to clipboard operation
OpenTomb copied to clipboard

Development questions

Open RICCIARDI-Adrien opened this issue 5 years ago • 11 comments

Hello all,

Below are some questions I'm asking to the OpenTomb developers :

  • I'm trying to implement TR2 secrets picking, but I can't figure out how to make them "pickable".
  • I'm also trying to create TR2 tiger state control (using TR1 lion as model). Where could I find tiger animations values (like TR_ANIMATION_LION_XXX from state_control_lion.h) ?
  • Is the repository bin directory really useful ? Can we remove it ?
  • How to add Lara weapons muzzle flashes ?
  • How to add Lara weapons ricochets and blood splats ?
  • Project roadmap seems a bit out of date, is there a lot of stuff remaining before issuing a fully playable TR1 alpha ?

RICCIARDI-Adrien avatar Sep 12 '19 20:09 RICCIARDI-Adrien

I'm also trying to create TR2 tiger state control (using TR1 lion as model). Where could I find tiger animations values (like TR_ANIMATION_LION_XXX from state_control_lion.h) ?

The numbers are actually defined in level files themselves.

Is the repository bin directory really useful ? Can we remove it ?

I always do it locally. I think it's a mistake to use git for binary blobs unless it's a separate repository. Otherwise it puts a burden on developers to waste their disk space without purpose.

Project roadmap seems a bit out of date, is there a lot of stuff remaining before issuing a fully playable TR1 alpha ?

See #91 and #417. But this is just my POV.

Other questions are in @TeslaRus competence.

vvs- avatar Sep 12 '19 21:09 vvs-

  • muzzle flashes, blood splats: calculate positions of effects, add sprites; sprites are partially implemented (bushes, grass in TR1); to find models, sprites use model view regime (y key);
  • roadmap is old - I have no time and wishes to update it now;
  • bin may be deleted;
  • ricochets and blood splats - use ray test to find effect position, play sound, show sprite.

TeslaRus avatar Sep 13 '19 08:09 TeslaRus

Thank you both for your quick replies. How to make a secret pickable like a medipack or ammo ? I will search in TRosettaStone for documentation about enemies animations format and location in level files.

RICCIARDI-Adrien avatar Sep 13 '19 14:09 RICCIARDI-Adrien

I will search in TRosettaStone for documentation about enemies animations format and location in level files.

It's not necessary. You can use OT model debug view as TeslaRus suggested.

vvs- avatar Sep 13 '19 16:09 vvs-

Thank you, I didn't understand. Model debug view is a great tool.

RICCIARDI-Adrien avatar Sep 14 '19 08:09 RICCIARDI-Adrien

Is there a way to teleport Lara to a specific map location ?

RICCIARDI-Adrien avatar Sep 14 '19 09:09 RICCIARDI-Adrien

entitySetPos(id, x, y, z, ax, ay, az) see src/script folder and functions

TeslaRus avatar Sep 14 '19 10:09 TeslaRus

Thank you. I added a more or less working Tomb Raider 2 tiger. When it dies, its body slips on the floor and goes out of the map. Have you an idea about the cause ?

RICCIARDI-Adrien avatar Sep 14 '19 17:09 RICCIARDI-Adrien

dead state, may be physics disabling and make dynamic is wrong... try to see wolf / tiger dead state in script

TeslaRus avatar Sep 14 '19 17:09 TeslaRus

Ok, thanks.

I'm thinking about "dynamic" sprites architecture (a better name can be found), which would be muzzle flashes, blood splats, explosions flashes and all sprites that are not static in a room like grass.

  • What do you think about using a list in Render.cpp that would contain all the dynamic sprites to display, their world coordinates and how many frames remains before their are removed from the list ? Later sprites animation could be added.
  • Does someone know if there are sprites that must be "attached" to a moving object, which means that sprite world coordinates must be updated ?

RICCIARDI-Adrien avatar Sep 22 '19 10:09 RICCIARDI-Adrien

Happy new year ! Do you think that pull request #597 can be merged or some work is needed ?

RICCIARDI-Adrien avatar Jan 11 '20 17:01 RICCIARDI-Adrien