source: titan/plugins/catcatch/catcatch.h @ 16964

Last change on this file since 16964 was 16964, checked in by nit, 11 years ago

[titan] add catcatch game plugin

File size: 5.7 KB
Line 
1#ifndef CATCATCH_H
2#define CATCATCH_H
3
4int getrandom(int max)
5{
6        srand(time(NULL));
7        return (rand() % max);
8}
9
10int checktreffer(int nr, int* sum, int* cat, int* value)
11{
12        int ret = -1;
13       
14        if(cat[nr] > 0)
15        {
16                *sum += value[nr];
17                cat[nr] = 0;
18                value[nr] = 0;
19                ret = nr;
20        }
21        else
22                *sum -= 2;
23       
24        return ret;     
25}
26
27void screencatcatch()
28{
29        int rcret = 0, level = 1, levelsub = 0, i = 0, sum = 0, ret = 0;
30        int cat[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
31        int value[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
32        struct skin* catcatch = getscreen("catcatch");
33        struct skin* skinsum = getscreennode(catcatch, "sum");
34        struct skin* skinlevel = getscreennode(catcatch, "level");     
35        struct skin* node0 = getscreennode(catcatch, "node0");
36        struct skin* node1 = getscreennode(catcatch, "node1");
37        struct skin* node2 = getscreennode(catcatch, "node2");
38        struct skin* node3 = getscreennode(catcatch, "node3");
39        struct skin* node4 = getscreennode(catcatch, "node4");
40        struct skin* node5 = getscreennode(catcatch, "node5");
41        struct skin* node6 = getscreennode(catcatch, "node6");
42        struct skin* node7 = getscreennode(catcatch, "node7");
43        struct skin* node8 = getscreennode(catcatch, "node8");
44        struct skin* tmp = NULL;
45        char* tmpstr = NULL;
46       
47        changetext(skinsum, "0");
48        changetext(skinlevel, "1");
49        changepic(node0, NULL);
50        node0->bordercol = 0x0000FF;
51        changepic(node1, NULL);
52        node1->bordercol = 0x0000FF;
53        changepic(node2, NULL);
54        node2->bordercol = 0x0000FF;
55        changepic(node3, NULL);
56        node3->bordercol = 0x0000FF;
57        changepic(node4, NULL);
58        node4->bordercol = 0x0000FF;
59        changepic(node5, NULL);
60        node5->bordercol = 0x0000FF;
61        changepic(node6, NULL);
62        node6->bordercol = 0x0000FF;
63        changepic(node7, NULL);
64        node7->bordercol = 0x0000FF;
65        changepic(node8, NULL);
66        node8->bordercol = 0x0000FF;
67        drawscreen(catcatch, 0, 0);
68
69        while(1)
70        {
71                rcret = waitrc(catcatch, 3000 - levelsub, 0);
72               
73                if(rcret == getrcconfigint("rcexit", NULL)) break;
74               
75                level = 1; levelsub = 0;
76                if(sum > 50) {level = 2; levelsub = 300;}
77                if(sum > 100) {level = 3; levelsub = 600;}
78                if(sum > 150) {level = 4; levelsub = 900;}
79                if(sum > 200) {level = 5; levelsub = 1200;}
80                if(sum > 250) {level = 6; levelsub = 1500;}
81                if(sum > 300) {level = 7; levelsub = 1800;}
82                if(sum > 350) {level = 8; levelsub = 2100;}
83                if(sum > 400) {level = 9; levelsub = 2400;}
84                if(sum > 450) {level = 10; levelsub = 2700;}
85               
86                ret = -1;
87                if(rcret == getrcconfigint("rc1", NULL))
88                        ret = checktreffer(0, &sum, cat, value);
89                if(rcret == getrcconfigint("rc2", NULL))
90                        ret = checktreffer(1, &sum, cat, value);
91                if(rcret == getrcconfigint("rc3", NULL))
92                        ret = checktreffer(2, &sum, cat, value);
93                if(rcret == getrcconfigint("rc4", NULL))
94                        ret = checktreffer(3, &sum, cat, value);
95                if(rcret == getrcconfigint("rc5", NULL))
96                        ret = checktreffer(4, &sum, cat, value);
97                if(rcret == getrcconfigint("rc6", NULL))
98                        ret = checktreffer(5, &sum, cat, value);
99                if(rcret == getrcconfigint("rc7", NULL))
100                        ret = checktreffer(6, &sum, cat, value);
101                if(rcret == getrcconfigint("rc8", NULL))
102                        ret = checktreffer(7, &sum, cat, value);
103                if(rcret == getrcconfigint("rc9", NULL))
104                        ret = checktreffer(8, &sum, cat, value);               
105               
106                //calculate
107                for(i = 0; i < 9; i++)
108                {
109                        if(cat[i] > 0)
110                        {
111                                cat[i]--;
112                                if(cat[i] <= 0)
113                                {
114                                        if(value[i] > 0)
115                                                sum -= value[i];
116                                        value[i] = 0;
117                                }
118                        }
119                }
120               
121                int r = getrandom(9);
122                if(cat[r] <= 0)
123                {
124                        cat[r] = 1;
125                        if(getrandom(4) == 1)
126                                value[r] = (getrandom(4) + 1) * -1;
127                        else
128                                value[r] = getrandom(4) + 1;
129                }
130               
131                //show treffer
132                tmp = NULL;
133                if(ret > -1)
134                {
135                        if(ret == 0) tmp = node0;
136                        else if(ret == 1) tmp = node1;
137                        else if(ret == 2) tmp = node2;
138                        else if(ret == 3) tmp = node3;
139                        else if(ret == 4) tmp = node4;
140                        else if(ret == 5) tmp = node5;
141                        else if(ret == 6) tmp = node6;
142                        else if(ret == 7) tmp = node7;
143                        else if(ret == 8) tmp = node8;
144
145                        if(tmp != NULL)
146                        {
147                                changepic(tmp, "%pluginpath%/catcatch/skin/treffer.png");
148                                tmp->bordercol = 0x0000FF;
149                                drawscreen(catcatch, 0, 0);
150                                usleep(100000);
151                                changepic(tmp, NULL);
152                        }
153                }
154               
155                //redraw
156                tmp = NULL;
157                for(i = 0; i < 9; i++)
158                {
159                        if(i == 0) tmp = node0;
160                        else if(i == 1) tmp = node1;
161                        else if(i == 2) tmp = node2;
162                        else if(i == 3) tmp = node3;
163                        else if(i == 4) tmp = node4;
164                        else if(i == 5) tmp = node5;
165                        else if(i == 6) tmp = node6;
166                        else if(i == 7) tmp = node7;
167                        else if(i == 8) tmp = node8;
168                       
169                        if(tmp != NULL)
170                        {
171                                if(cat[i] <= 0)
172                                {
173                                        changepic(tmp, NULL);
174                                        tmp->bordercol = 0x0000FF;
175                                }
176                                else
177                                {
178                                        switch(value[i])
179                                        {
180                                                case -1: changepic(tmp, "%pluginpath%/catcatch/skin/cat1.png"); tmp->bordercol = 0xFF0000; break;
181                                                case -2: changepic(tmp, "%pluginpath%/catcatch/skin/cat2.png"); tmp->bordercol = 0xFF0000; break;
182                                                case -3: changepic(tmp, "%pluginpath%/catcatch/skin/cat3.png"); tmp->bordercol = 0xFF0000; break;
183                                                case -4: changepic(tmp, "%pluginpath%/catcatch/skin/cat4.png"); tmp->bordercol = 0xFF0000; break;
184                                                case -5: changepic(tmp, "%pluginpath%/catcatch/skin/cat5.png"); tmp->bordercol = 0xFF0000; break;
185                                                case 1: changepic(tmp, "%pluginpath%/catcatch/skin/cat1.png"); tmp->bordercol = 0x00FF00; break;
186                                                case 2: changepic(tmp, "%pluginpath%/catcatch/skin/cat2.png"); tmp->bordercol = 0x00FF00; break;
187                                                case 3: changepic(tmp, "%pluginpath%/catcatch/skin/cat3.png"); tmp->bordercol = 0x00FF00; break;
188                                                case 4: changepic(tmp, "%pluginpath%/catcatch/skin/cat4.png"); tmp->bordercol = 0x00FF00; break;
189                                                case 5: changepic(tmp, "%pluginpath%/catcatch/skin/cat5.png"); tmp->bordercol = 0x00FF00; break;                       
190                                        }
191                                }
192                        }
193                }
194               
195                tmpstr = oitoa(sum);
196                changetext(skinsum, tmpstr);
197                free(tmpstr); tmpstr = NULL;
198               
199                tmpstr = oitoa(level);
200                changetext(skinlevel, tmpstr);
201                free(tmpstr); tmpstr = NULL;
202               
203                drawscreen(catcatch, 0, 0);
204        }
205       
206        clearscreen(catcatch);
207}
208
209#endif
Note: See TracBrowser for help on using the repository browser.