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

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

[titan] add random funktion

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