annotate man/mlk-action.3 @ 555:6c911cbc1fd7

core: alloc_pool is no more
author David Demelier <markand@malikania.fr>
date Tue, 07 Mar 2023 22:35:43 +0100
parents c1f64d451230
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 .Dd $Mdocdate$
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 .Dt MLK-ACTION 3
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 .Os
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 .Sh NAME
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 .Nm mlk-action
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 .Nd generic in game actions
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 .Sh LIBRARY
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 libmlk-core (-lmlk-core)
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 .Sh SYNOPSIS
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 .In mlk/core/action.h
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 .Sh DESCRIPTION
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 Generic updatable and drawable actions.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 This module help creating user interaction within the gameplay by adding
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 actions. They have the following properties:
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 .Bl -dash -compact
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 .It
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 Can handle user input and events,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .It
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 Can be updated through the game loop,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 .It
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 Can be drawn.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 .El
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 Most more high level objects can handle actions to add flexibility (like in
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 battles, maps, etc).
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 This header defines the
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 .Vt "struct mlk_action" :
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 .Bd -literal
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 struct mlk_action {
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 void *data;
480
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
34 void (*start)(struct mlk_action *self);
441
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 void (*handle)(struct mlk_action *self, const union mlk_event *ev);
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 int (*update)(struct mlk_action *self, unsigned int ticks);
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 void (*draw)(struct mlk_action *self);
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 void (*end)(struct mlk_action *self);
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 void (*finish)(struct mlk_action *self);
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 };
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 .Ed
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 Each member function takes the original action as first argument and other
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 arguments after. Its fields are:
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 .Bl -tag
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 .It Va data
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 Optional user data.
480
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
48 .It Va start
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
49 This function is called when the action is going to start. User can set a
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
50 function to prepare the action especially in a sequence (see
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
51 .Xr mlk-action-script 3
c1f64d451230 core: mlk_action has a start callback
David Demelier <markand@malikania.fr>
parents: 441
diff changeset
52 for example).
441
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 .It Va handle
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 Handle the event
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 .Fa ev .
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 .It Va update
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 Update the action with the
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 .Fa ticks
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 since last frame expressed as milliseconds. The callback should return non-zero
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 if it is considered complete.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 .It Va draw
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 Draw the action.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 .It Va end
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 Called when the action was completed.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 This callback is mostly provided to allow the user doing something else once an
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 action is complete. Predefined actions from the framework should not use this
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 callback by themselves.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 .It Va finish
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 Destroy internal resources for this action.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 .Pp
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 Close the action before removal. This function should be used to deallocate
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 memory if necessary.
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 .El
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 .Sh SEE ALSO
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 .Xr mlk_action_draw 3 ,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 .Xr mlk_action_end 3 ,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 .Xr mlk_action_finish 3 ,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 .Xr mlk_action_handle 3 ,
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 .Xr mlk_action_update 3
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 .Sh AUTHORS
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 The
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 .Nm
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 library was written by
31c1bbc33813 man: document mlk-action
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 .An David Demelier Aq Mt markand@malikania.fr .