semi-random worker idle anymation

Registered by Victor Pelt

We want workers to do more than just stand around but have some idle animations. there are several ways to implement this.

discuss on the forum http://wl.widelands.org/forum/topic/416/?page=1#post-2071

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

Based on what i've been reading on the forum/irc. The following is only an suggestion. please leave feedback but don't kill me because it might or might not break compatibility

Problem: we want fancier animation. including idle workers who start playing with a jojo for example.

Proposed sollution:

Although graphic programs are stored along with worker/building types they should be loosely connected. meaning any chance in graphic definition never should break any savegame, gameplay or even network games

Animations should be converted to mng files. Mng files have the advantage of
- select how long each frame will be displayed
- faster load times
- lower total image size
- a (build) script can be generated to convert current png animations to mng

production programs can have the following (graphic) options (comments between () not included but just as explanation)
graphic=someprefix (display a single png file, called someprefix.png no looping, nothing fancy)
graphic=someprefix (display an animation, called someprefix.mng, and loop this animation)
graphic=someprogram (more advanced graphic program)
hotspot=int int (only valid if graphic is a png or mng file, to center the graphic)
depreciate the old pics directive

note: the detection if the prefix refers to a png or mng file or a program name is done automatically
if a directional component is needed the file will be called someprefix.direction.filetype (for example walking.ne.mng)

Animation program can be deffined as follows
[program name]
graphic=[someprefix]
loop=int [x|s] (s is loop int miliseconds x is loop x times, x only valid with mng files
hotspot=int int
playFX= soundfile (play corresponding sound file while this animation program lasts)
nextstate=program[ program]* (one or more animation programs. the next state will be choosen at random from one of these programs)

if a worker changes production program the graphic program will be instantly aborted.
when an production program starts the graphics program (if specified) will start at the beginning as wel so the timing can be matched with the time it takes to do the work

----------------
If the ideal carrier moves alone the path, then its not a good thing because as goods comes to the flags he may not in a fair position to collect them and will be more inefficient.

What in my mind it that without moving alone the path here and there (so no need of the direction) he will do small actions at the spot.

i) kicking a stone on the path
ii) sit down and stand up
iii) do exercise (like we do in a drill display :))
iv) yawning
v) Scratching the leg
etc.

therefore the conf file needed to be something like

[idle]
//as normal
//then

[idlefx]
dummy_i_??_??.png
sleep=1000

then the images can be like,
dummy_i_00_00.png
dummy_i_00_01.png
dummy_i_00_02.png

dummy_i_01_00.png
dummy_i_01_01.png
dummy_i_01_02.png

what do you think??

nha: I don't like the new type of animations just for idleness. We can handle this by creating an "idle" program which chooses animations accordingly and can do other things as well, as desired.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.