84 Commits

Author SHA1 Message Date
Vincent Pelletier
6519558046 GRIM,EMI: Drop Grim::Component::setupTexture
This method is never implemented, so drop its declaration and callers.
2016-07-05 23:13:11 +00:00
Joni Vähämäki
70b65cb45f EMI: Return playing chores of all costumes from GetActorChores. 2014-08-20 01:37:28 +03:00
Joni Vähämäki
3adbd1fdcf EMI: Implement head tracking. 2014-07-02 22:43:50 +03:00
Joni Vähämäki
b5cdd1240f EMI: Only draw models for actors inside the view frustum.
This adds math classes for doing frustum culling in software. These could be used for optimizing performance in many other places as well. For example, if an actor is outside the view frustum, it may not be necessary to do expensive keyframe animation and vertex skinning calculations for that actor.
2014-06-16 15:42:18 +03:00
Joni Vähämäki
8f9f541f17 EMI: Implemented dynamic lighting for models.
Lighting is done by calculating vertex colors in software, since the attenuation model used in EMI cannot be simulated with OpenGL fixed function lighting. The original game does the lighting this way as well. Ideally for the modern shader-based renderer a shader would be used for this instead.
2014-06-16 15:41:06 +03:00
Joni Vähämäki
de3c68d89c GRIM: If ActorLookAt is called with an actor as the target, look towards the actor's head instead of their origin. Fixes #887 2014-05-31 15:59:55 +03:00
Joni Vähämäki
3e322b67ba Revert "EMI: Fix missing hold chores"
This reverts commit 863b33e803f17503d5983a9f99cdd8dd71ec7543.

Conflicts:
	engines/grim/actor.cpp
	engines/grim/actor.h
	engines/grim/costume.cpp
	engines/grim/costume.h
	engines/grim/costume/chore.h
	engines/grim/emi/costumeemi.cpp
	engines/grim/emi/costumeemi.h
2014-05-31 03:05:30 +03:00
Joni Vähämäki
a180b3b562 EMI: Chore fading fixes.
Fading out chores remain in playing state until they have completely faded out. Also using StopChore on a fading out chore will actually stop the chore, unlike in Grim where the chore will keep fading out.
2014-05-31 03:05:17 +03:00
Pawel Kolodziejski
8759900b6a ALL: synced with ScummVM 2014-04-05 18:18:42 +02:00
Christian Krause
b35bdd2ddf EMI: Don't stop looping chores in StopAllChores
Some chores need to stay active even after a call to
StopAllChores(). E.g. the hold chores should stay active
even after changing the set (which calls StopAllChores()).

It looks like that the previously unknown boolean paramter
of StopAllChores() controls that behavior. If set to TRUE,
stop only the non-looping chores.

This patch fixes:
- hold chore was lost when switching sets
- blue painting did not show the ultimate insult when opening
the inventory
2014-02-21 20:13:11 +01:00
Christian Krause
863b33e803 EMI: Fix missing hold chores
The hold chore was always lost after e.g. turning left or right.
Although that chore was still in _playingChores, it was not shown.

The patch uses the following order for drawing the chores:
- wear chores
- rest chores
- walk/turn chores
- other chores (in order of the playChore calls)
2014-02-21 20:13:05 +01:00
Ingo van Lil
70520e5ffa EMI: Fix actor animations
The current code for loading EMI costumes contains a special treatment that
expects the skeleton and mesh components in a chore named "wear_default".
This assumption is not valid for costumes that contains multiple wear chores,
most notably for Guybrush who has a different outfit for each island.

The new code considers any chore containing skeleton and mesh components
to be a wear chore. The skeleton from the last played wear chore will be
animated.
2013-12-08 01:06:57 +01:00
Paweł Kołodziejski
175620b62a ALL: change license headers from LGPL to GPL, and few updates 2012-12-19 23:15:43 +01:00
Dries Harnie
b9fc80b5ee EMI: Support looping chores 2012-07-12 19:58:55 +02:00
Joel Teichroeb
63938ba499 GRIM: Clean up unneeded includes and fix some trailing whitespace 2012-03-26 20:12:00 -07:00
Dries Harnie
f21f2867fb EMI: Support strings as walk/rest/mumble/turn chores 2012-03-04 22:52:49 +01:00
Joel Teichroeb
d00ac2d91d EMI: Implement some more actor opcodes 2012-02-17 15:20:52 -08:00
Joel Teichroeb
7ff91c5817 GRIM: Various cleanups to code 2012-02-04 18:07:24 -08:00
Joel Teichroeb
1226e45ac3 EMI: Initial work on getting costumes to draw animations.
Also, an initial split-off for EMI from the costume-class,
now uses it as a base class. (somaen)
2012-02-02 22:01:09 +01:00
Paweł Kołodziejski
e350c7f777 renames 2012-01-06 23:29:45 +01:00
Andrea Corna
49071ee661 GRIM: Make Costume and TextSplitter load from a stream instead of a data Block 2011-12-30 17:17:08 +01:00
Joel Teichroeb
3a61eaee8c EMI: Make chores actually work and fix compile error. Also fix a warning 2011-12-23 11:58:35 -08:00
Joel Teichroeb
f94533e228 EMI: More work on getting EMI to do stuff 2011-12-21 20:35:37 -08:00
Giulio Camuffo
c55abd8980 GRIM: Pass around the frame time as a uint, not a float. 2011-12-16 15:22:02 +01:00
Giulio Camuffo
98716036cd GRIM: Fix compilation. 2011-12-14 17:03:57 +01:00
Joel Teichroeb
5fa7a5e990 GRIM: Made head a pointer so costume.h does not need to include head.h 2011-12-13 11:45:57 -08:00
Joel Teichroeb
a45b112fea GRIM: Removed dependancy from costume.h on chore.h 2011-12-13 11:35:27 -08:00
Joel Teichroeb
80d1f8fc32 GRIM: Split classes out of costume. 2011-12-13 09:05:31 -08:00
Giulio Camuffo
e6ccad7657 GRIM: Better handling of the bounding boxes for the actors' text objects. 2011-12-12 18:57:17 +01:00
Giulio Camuffo
c62424bfcb GRIM: Moved the head functions inside the head class. Fix #413
The lookAtRate is per costume, not per actor.
2011-11-04 16:41:09 +01:00
Giulio Camuffo
fdafbda3e2 GRIM: Reset the fade mode when starting a chore. 2011-10-10 17:28:03 +02:00
Giulio Camuffo
8fb5b6e002 GRIM: Some minor fixes. 2011-09-18 17:10:12 +02:00
Giulio Camuffo
d036ca27dc GRIM: Use the new Math::Angle class. 2011-09-18 16:24:08 +02:00
Giulio Camuffo
0083c8619c MATH: Move the math classes to their own math/ dir and Math namespace. 2011-09-14 23:05:52 +02:00
Giulio Camuffo
9b8f540ccd GRIM: Properly implemented the costume marker callback function. 2011-09-03 18:27:53 +02:00
Giulio Camuffo
e40734303b GRIM: Removed the g_currentUpdatedActor hack. 2011-08-24 16:51:44 +02:00
Giulio Camuffo
8c8587eabc The last modifications about Costume::reset() weren't necessary.
Revert 8ea3e3 and d3b15c
2011-07-29 16:47:47 +02:00
Giulio Camuffo
8ea3e3776d GRIM: Don't reset the components of a chore if it was started right after stopping it. 2011-07-29 16:30:19 +02:00
Giulio Camuffo
d3b15cfa17 GRIM: When stopping a chore reset the components at the next update, not immediately. 2011-07-29 16:13:46 +02:00
Giulio Camuffo
54e1478e85 GRIM: Calculate the bounding box of the meshes only if necessary. 2011-07-25 23:42:07 +02:00
Giulio Camuffo
784f9ce5b9 GRIM: Move Model::HierNode, Mesh and Face outside of Model. 2011-07-22 22:09:49 +02:00
Joni Vähämäki
9f98fccdd9 GRIM: Handle animation fading in KeyframeComponent instead of in Chore. Allows fades to continue even if the chore is stopped, like in the original game. 2011-07-20 22:32:10 +03:00
Giulio Camuffo
b96f6de526 GRIM: Call resetColormap() on all the children of a component whose cmap was set.
Fix #268 Fix #269
2011-07-19 18:38:27 +02:00
Giulio Camuffo
f6d30ca6dd GRIM: Cleanup. Remove Costume::cleanupChore(). 2011-07-17 16:19:48 +02:00
Giulio Camuffo
1db7e0de31 GRIM: Don't reset all the components when stopping the talking chore. Fix #253 2011-07-08 17:41:13 +02:00
Joel Teichroeb
013fb385cb Implemented some more functionality for EMI. 2011-06-02 15:34:34 -07:00
Giulio Camuffo
6bca067e57 Merge pull request #187 from Akz-/master
GRIM: Some animation fixes.
2011-06-01 13:02:38 -07:00
Joni Vähämäki
39d149b8bb GRIM: Ignore talk chores in IsActorChoring(). 2011-06-01 20:23:29 +03:00
Giulio Camuffo
94c9c7a38c GRIM: Make sure we don't try to stop a non-existant chore. Thanks to Klusark.
Fix #191
2011-05-31 16:23:58 +02:00
Joni Vähämäki
ca178ac724 GRIM: Update chores in the order in which they are played. 2011-05-27 23:10:27 +03:00