Subversion Repositories Projects

Rev

Rev 266 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 266 Rev 382
1
/********************************************************
1
/********************************************************
2
 *                                            
2
 *                                            
3
 * class to handle Editing of MK Params via MIDP / J2ME
3
 * class to handle Editing of MK Params via MIDP / J2ME
4
 *                                            
4
 *                                            
5
 * Author:        Marcus -LiGi- Bueschleb      
5
 * Author:        Marcus -LiGi- Bueschleb      
6
 *
6
 *
7
 ********************************************************/
7
 ********************************************************/
8
 
8
 
9
import javax.microedition.lcdui.*;
9
import javax.microedition.lcdui.*;
10
 
10
 
11
public class MKParamsEditor
11
public class MKParamsEditor
12
    implements org.ligi.ufo.MKParamDefinitions,  org.ligi.ufo.DUBwiseLangDefs
12
    implements org.ligi.ufo.MKParamDefinitions,  org.ligi.ufo.DUBwiseLangDefs
13
{
13
{
14
 
14
 
15
    public byte nextstate;
15
    public byte nextstate;
16
 
16
 
17
    private int act_tab=0;
17
    private int act_tab=0;
18
    public int act_y=1;
18
    public int act_y=1;
19
    private int act_lcd_lines=10;
19
    private int act_lcd_lines=10;
20
 
20
 
21
    DUBwiseCanvas canvas;
21
    DUBwiseCanvas canvas;
22
 
22
 
23
    public String[] lcd_lines;
23
    public String[] lcd_lines;
24
 
24
 
25
    public String[] menu_items;
25
    public String[] menu_items;
26
 
26
 
27
    org.ligi.ufo.ParamsClass edit_source;
27
    org.ligi.ufo.ParamsClass edit_source;
-
 
28
 
-
 
29
    boolean select_mode;
-
 
30
 
28
 
31
 
29
 
32
 
30
    public MKParamsEditor(DUBwiseCanvas _canvas,org.ligi.ufo.ParamsClass _edit_source,byte _nextstate)
33
    public MKParamsEditor(DUBwiseCanvas _canvas,org.ligi.ufo.ParamsClass _edit_source,byte _nextstate)
31
    {
34
    {
32
        nextstate=_nextstate;
35
        nextstate=_nextstate;
33
        edit_source=_edit_source;
36
        edit_source=_edit_source;
34
 
37
 
35
        canvas=_canvas;
38
        canvas=_canvas;
36
        lcd_lines=new String[40];
39
        lcd_lines=new String[40];
-
 
40
 
-
 
41
 
-
 
42
        System.out.println("initing params_editor");
-
 
43
        select_mode=(edit_source.tab_stringids!=null);
37
        //      refresh_lcd();
44
        //      refresh_lcd();
38
    }
45
    }
39
 
46
 
40
 
-
 
41
    boolean select_mode=true;
-
 
42
 
47
 
43
 
48
 
44
    public void paint ( Graphics g)
49
    public void paint ( Graphics g)
45
    {
50
    {
46
        if (select_mode)
51
        if (select_mode)
47
            {
52
            {
48
                if ((canvas.menu_items[0]!=canvas.lcd_lines[0])||(canvas.menu_items[0]!=canvas.l(edit_source.tab_stringids[0])||((canvas.menu_items.length!=edit_source.tab_stringids.length+1)))) // usefull?
53
                if ((canvas.menu_items[0]!=canvas.lcd_lines[0])||(canvas.menu_items[0]!=canvas.l(edit_source.tab_stringids[0])||((canvas.menu_items.length!=edit_source.tab_stringids.length+1)))) // usefull?
49
                    {
54
                    {
50
                        act_y=1;
55
                        act_y=1;
51
                        menu_items=new String[edit_source.tab_stringids.length+1];
56
                        menu_items=new String[edit_source.tab_stringids.length+1];
52
                        for(int p=0;p<edit_source.tab_stringids.length;p++)
57
                        for(int p=0;p<edit_source.tab_stringids.length;p++)
53
                            menu_items[p]=canvas.l(edit_source.tab_stringids[p]);
58
                            menu_items[p]=canvas.l(edit_source.tab_stringids[p]);
54
                        menu_items[edit_source.tab_stringids.length]=canvas.l(STRINGID_BACK);                  
59
                        menu_items[edit_source.tab_stringids.length]=canvas.l(STRINGID_BACK);                  
55
                        canvas.setup_menu(menu_items,null);
60
                        canvas.setup_menu(menu_items,null);
56
                    }
61
                    }
57
                canvas.paint_menu(g);
62
                canvas.paint_menu(g);
58
            }
63
            }
59
 
64
 
60
        else
65
        else
61
            {
66
            {
62
                refresh_lcd();
67
                refresh_lcd();
63
                //              canvas.paint_lcd(g,false);
68
                //              canvas.paint_lcd(g,false);
64
                canvas.paint_lcd(g);
69
                canvas.paint_lcd(g);
65
            }
70
            }
66
    }
71
    }
67
 
72
 
68
   
73
   
69
    public void refresh_lcd()
74
    public void refresh_lcd()
70
    {
75
    {
71
 
76
 
72
        try {
77
        try {
73
            act_lcd_lines=edit_source.field_stringids[act_tab].length*2+2;
78
            act_lcd_lines=edit_source.field_types[act_tab].length*2+2;
74
           
79
           
75
            for ( int i=0;i<act_lcd_lines;i++)
80
            for ( int i=0;i<act_lcd_lines;i++)
76
                lcd_lines[i]="";
81
                lcd_lines[i]="";
77
           
82
           
78
           
83
           
79
           
84
           
80
            //          lcd_lines[0]=(act_tab==0?"  ":"< ") + edit_source.tab_stringids[act_tab] + (act_tab==(edit_source.tab_stringids.length-1)?"  ":" >");
85
            //          lcd_lines[0]=(act_tab==0?"  ":"< ") + edit_source.tab_stringids[act_tab] + (act_tab==(edit_source.tab_stringids.length-1)?"  ":" >");
81
           
86
           
82
            for (int i=0;i<edit_source.field_stringids[act_tab].length;i++)
87
            for (int i=0;i<edit_source.field_types[act_tab].length;i++)
-
 
88
                {
83
                {
89
                    if (edit_source.field_stringids!=null)
84
                    lcd_lines[2*i]=canvas.l(edit_source.field_stringids[act_tab][i]);
90
                        lcd_lines[2*i]=canvas.l(edit_source.field_stringids[act_tab][i]);
-
 
91
                    else
85
                   
92
                        lcd_lines[2*i]=edit_source.field_strings[act_tab][i];
86
                    switch(edit_source.field_types[act_tab][i])
93
                    switch(edit_source.field_types[act_tab][i])
87
                        {
94
                        {
88
                        case  PARAMTYPE_BITSWITCH:
95
                        case  PARAMTYPE_BITSWITCH:
89
                            lcd_lines[1+2*i]=" " + (((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]/8)&(1<<edit_source.field_positions[act_tab][i]%8))==0)?canvas.l(STRINGID_OFF):canvas.l(STRINGID_ON) ) ;
96
                            lcd_lines[1+2*i]=" " + (((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]/8)&(1<<edit_source.field_positions[act_tab][i]%8))==0)?canvas.l(STRINGID_OFF):canvas.l(STRINGID_ON) ) ;
90
                            break;
97
                            break;
91
 
98
 
92
                        case PARAMTYPE_BYTE:
99
                        case PARAMTYPE_BYTE:
93
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
100
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
94
 
101
 
95
                            break;
102
                            break;
96
 
103
 
97
                        case PARAMTYPE_BITMASK:
104
                        case PARAMTYPE_BITMASK:
98
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
105
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
99
                            if ((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])>250)&&(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])<256))
106
                            if ((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])>250)&&(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])<256))
100
                                lcd_lines[1+2*i]+="[Poti"+(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])-250) +"]";
107
                                lcd_lines[1+2*i]+="[Poti"+(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])-250) +"]";
101
                            else               
108
                            else               
102
                                {
109
                                {
103
                                    lcd_lines[1+2*i]+=" [";
110
                                    lcd_lines[1+2*i]+=" [";
104
                                    for (int bit=0;bit<8;bit++)
111
                                    for (int bit=0;bit<8;bit++)
105
                                        lcd_lines[1+2*i]+=((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]) & ( 1<<bit)) !=0)?"+":"-";
112
                                        lcd_lines[1+2*i]+=((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]) & ( 1<<bit)) !=0)?"+":"-";
106
                            lcd_lines[1+2*i]+="]";
113
                            lcd_lines[1+2*i]+="]";
107
                                }
114
                                }
108
                               
115
                               
109
                            break;
116
                            break;
110
 
117
 
111
                        case PARAMTYPE_MKBYTE:
118
                        case PARAMTYPE_MKBYTE:
112
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
119
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
113
                            if ((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])>250)&&(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])<256))
120
                            if ((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])>250)&&(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])<256))
114
                                lcd_lines[1+2*i]+=" [Poti"+(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])-250) +"]";                                               
121
                                lcd_lines[1+2*i]+=" [Poti"+(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])-250) +"]";                                               
115
                            break;
122
                            break;
116
 
123
 
117
 
124
 
118
                        case PARAMTYPE_KEY:
125
                        case PARAMTYPE_KEY:
119
                            if (edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])==-4242)
126
                            if (edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])==-4242)
120
                                lcd_lines[1+2*i]=canvas.l(STRINGID_NONE_ASSIGNED);
127
                                lcd_lines[1+2*i]=canvas.l(STRINGID_NONE_ASSIGNED);
121
                            else
128
                            else
122
                                lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
129
                                lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
123
                            break;
130
                            break;
124
                        case PARAMTYPE_STICK:
131
                        case PARAMTYPE_STICK:
125
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
132
                            lcd_lines[1+2*i]=" "+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]);
126
                            break;
133
                            break;
127
                           
134
                           
128
                        default:
135
                        default:
129
                            lcd_lines[1+2*i]=" "+canvas.l(edit_source.choice_stringids[edit_source.field_types[act_tab][i]-PARAMTYPE_CHOICE][edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])]);                        
136
                            lcd_lines[1+2*i]=" "+canvas.l(edit_source.choice_stringids[edit_source.field_types[act_tab][i]-PARAMTYPE_CHOICE][edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])]);                        
130
                        }
137
                        }
131
                   
138
                   
132
                    }
139
                    }
133
           
140
           
134
            lcd_lines[act_lcd_lines-1]=canvas.l(STRINGID_BACK);        
141
            lcd_lines[act_lcd_lines-1]=canvas.l(STRINGID_BACK);        
135
       
142
       
136
            canvas.lcd_lines=new String[act_lcd_lines];    
143
            canvas.lcd_lines=new String[act_lcd_lines];    
137
            for ( int i=0;i<act_lcd_lines;i++)
144
            for ( int i=0;i<act_lcd_lines;i++)
138
                {
145
                {
139
                    lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i];
146
                    lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i];
140
                    while(lcd_lines[i].length()<20)
147
                    while(lcd_lines[i].length()<20)
141
                        lcd_lines[i]+=" ";
148
                        lcd_lines[i]+=" ";
142
 
149
 
143
                    canvas.lcd_lines[i]=lcd_lines[i];              
150
                    canvas.lcd_lines[i]=lcd_lines[i];              
144
                }
151
                }
145
 
152
 
146
        }
153
        }
147
 
154
 
148
        catch (Exception e){}
155
        catch (Exception e){}
149
       
156
       
150
        //      for(int i=0;i<act_lcd_lines;i++)
157
        //      for(int i=0;i<act_lcd_lines;i++)
151
 
158
 
152
        /*             
159
        /*             
153
            }
160
            }
154
        else
161
        else
155
            {
162
            {
156
                canvas.lcd_lines=new String[1];
163
                canvas.lcd_lines=new String[1];
157
                canvas.lcd_lines[0]="reading params";
164
                canvas.lcd_lines[0]="reading params";
158
            }
165
            }
159
    */
166
    */
160
    }
167
    }
161
 
168
 
162
 
169
 
163
    public final static int KEYCODE_CLEAR=-8;
170
    public final static int KEYCODE_CLEAR=-8;
164
   
171
   
165
    public boolean editing_number=false;
172
    public boolean editing_number=false;
166
 
173
 
167
    public void pointer_press(int x,int row)
174
    public void pointer_press(int x,byte row)
-
 
175
    {
-
 
176
       
-
 
177
 
-
 
178
       
168
    {
179
        System.out.println("pointer row " +  row + " lcd_off" + canvas.lcd_off);
169
        if (select_mode)
180
        if (select_mode)
-
 
181
            {
170
            {
182
                if (canvas.act_menu_select!=row)
-
 
183
                    canvas.act_menu_select=row;
171
            canvas.act_menu_select=row;
184
                else
172
            keypress (-4242,Canvas.FIRE);
185
                    keypress (-4242,Canvas.FIRE);
173
 
186
 
174
            }
187
            }
175
          else
188
          else
176
              {
189
              {
177
                  if ((row%2)==0)
190
                  if ((row%2)==0)
178
                      act_y=row+1;
191
                      act_y=row+1;
179
                  else
192
                  else
180
                      {
193
                      {
181
                          act_y=row;
194
                          act_y=row;
-
 
195
 
182
 
196
                          System.out.println("y:" + act_y);
183
                          if (act_y==(canvas.lcd_lines.length-1))
197
                          if (act_y==(canvas.lcd_lines.length-1))
184
                              keypress (-4242,Canvas.FIRE);
198
                              keypress (-4242,Canvas.FIRE);
185
                          else
199
                          else
186
                              {
200
                              {
187
                                  if (x<(canvas.canvas_width/2))
201
                                  if (x<(canvas.canvas_width/2))
188
                                      keypress (-4242,Canvas.LEFT);
202
                                      keypress (-4242,Canvas.LEFT);
189
                                  else
203
                                  else
190
                                      keypress (-4242,Canvas.RIGHT);
204
                                      keypress (-4242,Canvas.RIGHT);
191
                              }
205
                              }
192
                      }
206
                      }
193
              }
207
              }
194
    }
208
    }
195
 
209
 
196
 
210
 
197
    public void keypress (int keyCode,int action)
211
    public void keypress (int keyCode,int action)
198
    {
212
    {
199
 
-
 
200
        if (select_mode)
213
        if (select_mode)
201
            {
214
            {
202
                if (action== Canvas.FIRE)
215
                if (action== Canvas.FIRE)
203
                    {
216
                    {
204
 
217
 
205
                        if (canvas.act_menu_select==(menu_items.length-1))
218
                        if (canvas.act_menu_select==(menu_items.length-1))
206
                            canvas.chg_state(nextstate);
219
                            canvas.chg_state(nextstate);
207
                        else
220
                        else
208
 
221
 
209
                            {
222
                            {
210
                                act_tab=canvas.act_menu_select;
223
                                act_tab=canvas.act_menu_select;
211
                                select_mode=false;
224
                                select_mode=false;
212
                                act_y=1;
225
                                act_y=1;
213
                            }
226
                            }
214
                    }
227
                    }
215
                else
228
                else
216
                    canvas.menu_keypress(keyCode);
229
                    canvas.menu_keypress(keyCode);
217
            }
230
            }
218
        else
231
        else
219
            {
232
            {
220
 
233
 
221
 
234
 
222
                if ((act_y!=(act_lcd_lines-1))&&(((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9))|| ( keyCode==KEYCODE_CLEAR)))
235
                if ((act_y!=(act_lcd_lines-1))&&(((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9))|| ( keyCode==KEYCODE_CLEAR)))
223
                            {
236
                            {
224
                                int act_pos=act_y/2;
237
                                int act_pos=act_y/2;
225
                                if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_BYTE)||(edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_MKBYTE) ||(edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_BITMASK))
238
                                if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_BYTE)||(edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_MKBYTE) ||(edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_BITMASK))
226
                                    {
239
                                    {
227
                                        if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9))
240
                                        if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9))
228
                                            {
241
                                            {
229
                                                if((editing_number)&&( Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0)<1000))
242
                                                if((editing_number)&&( Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0)<1000))
230
                                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0));
243
                                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0));
231
                                                else
244
                                                else
232
                                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , (keyCode - Canvas.KEY_NUM0));
245
                                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , (keyCode - Canvas.KEY_NUM0));
233
                                                editing_number=true;
246
                                                editing_number=true;
234
                                                return;
247
                                                return;
235
                                            }
248
                                            }
236
                                        else
249
                                        else
237
                                            if ( keyCode==KEYCODE_CLEAR)
250
                                            if ( keyCode==KEYCODE_CLEAR)
238
                                                edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],0);
251
                                                edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],0);
239
                                    }
252
                                    }
240
                                editing_number=false;
253
                                editing_number=false;
241
                       
254
                       
242
                            }
255
                            }
243
 
256
 
244
                switch (action)
257
                switch (action)
245
                    {
258
                    {
246
                       
259
                       
247
                    case Canvas.DOWN:
260
                    case Canvas.DOWN:
248
                        if (act_y<(act_lcd_lines-2)) act_y+=2;
261
                        if (act_y<(act_lcd_lines-2)) act_y+=2;
249
                        else act_y=1;
262
                        else act_y=1;
250
                        break;
263
                        break;
251
                       
264
                       
252
                    case Canvas.UP:
265
                    case Canvas.UP:
253
                        if (act_y!=1) act_y-=2;
266
                        if (act_y!=1) act_y-=2;
254
                        else act_y=act_lcd_lines-1;
267
                        else act_y=act_lcd_lines-1;
255
                        break;
268
                        break;
256
                       
269
                       
257
                    default:
270
                    default:
258
 
271
 
259
 
272
 
260
 
273
 
261
                        if (act_y!=(act_lcd_lines-1))
274
                        if (act_y!=(act_lcd_lines-1))
262
                            {
275
                            {
263
 
276
 
264
                                //
277
                                //
265
 
278
 
266
                                int act_pos=act_y/2;
279
                                int act_pos=act_y/2;
267
 
280
 
268
                                if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_KEY))
281
                                if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_KEY))
269
                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],keyCode);
282
                                    edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],keyCode);
270
                       
283
                       
271
                                switch (action)
284
                                switch (action)
272
                                    {
285
                                    {
273
                               
286
                               
274
                                    case Canvas.RIGHT:
287
                                    case Canvas.RIGHT:
275
                                        switch(edit_source.field_types[act_tab][act_pos])
288
                                        switch(edit_source.field_types[act_tab][act_pos])
276
                                            {
289
                                            {
277
                                            case PARAMTYPE_BITSWITCH:
290
                                            case PARAMTYPE_BITSWITCH:
278
                                       
291
                                       
279
                                                edit_source.field_from_act_xor((edit_source.field_positions[act_tab][act_pos]/8),1<<(edit_source.field_positions[act_tab][act_pos]%8));
292
                                                edit_source.field_from_act_xor((edit_source.field_positions[act_tab][act_pos]/8),1<<(edit_source.field_positions[act_tab][act_pos]%8));
280
                                                break;
293
                                                break;
281
                                       
294
                                       
282
                                            case PARAMTYPE_BITMASK:
295
                                            case PARAMTYPE_BITMASK:
283
                                            case PARAMTYPE_MKBYTE:
296
                                            case PARAMTYPE_MKBYTE:
284
                                            case PARAMTYPE_BYTE:
297
                                            case PARAMTYPE_BYTE:
285
 
298
 
286
                                       
299
                                       
287
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],1,0,255);
300
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],1,0,255);
288
                                                break;
301
                                                break;
289
                                            case PARAMTYPE_STICK:
302
                                            case PARAMTYPE_STICK:
290
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],1,0,10);
303
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],1,0,10);
291
                                                break;
304
                                                break;
292
                                       
305
                                       
293
                                            default:
306
                                            default:
294
                                                edit_source.field_from_act_add_mod(edit_source.field_positions[act_tab][act_pos],1,edit_source.choice_stringids[edit_source.field_types[act_tab][act_pos]-PARAMTYPE_CHOICE].length);
307
                                                edit_source.field_from_act_add_mod(edit_source.field_positions[act_tab][act_pos],1,edit_source.choice_stringids[edit_source.field_types[act_tab][act_pos]-PARAMTYPE_CHOICE].length);
295
                                                break;
308
                                                break;
296
                                            }
309
                                            }
297
                                        break;
310
                                        break;
298
                               
311
                               
299
                                    case Canvas.LEFT:
312
                                    case Canvas.LEFT:
300
                                        switch(edit_source.field_types[act_tab][act_pos])
313
                                        switch(edit_source.field_types[act_tab][act_pos])
301
                                            {
314
                                            {
302
                                            case PARAMTYPE_BITSWITCH:
315
                                            case PARAMTYPE_BITSWITCH:
303
                                                edit_source.field_from_act_xor((edit_source.field_positions[act_tab][act_pos]/8),1<<(edit_source.field_positions[act_tab][act_pos]%8));
316
                                                edit_source.field_from_act_xor((edit_source.field_positions[act_tab][act_pos]/8),1<<(edit_source.field_positions[act_tab][act_pos]%8));
304
                                   
317
                                   
305
                                                break;
318
                                                break;
306
                                            case PARAMTYPE_BITMASK:
319
                                            case PARAMTYPE_BITMASK:
307
                                            case PARAMTYPE_MKBYTE:
320
                                            case PARAMTYPE_MKBYTE:
308
                                            case PARAMTYPE_BYTE:
321
                                            case PARAMTYPE_BYTE:
309
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],-1,0,255);
322
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],-1,0,255);
310
                                                break;
323
                                                break;
311
                                            case PARAMTYPE_STICK:
324
                                            case PARAMTYPE_STICK:
312
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],-1,0,10);
325
                                                edit_source.field_from_act_add_min_max(edit_source.field_positions[act_tab][act_pos],-1,0,10);
313
                                                break;
326
                                                break;
314
                                            default:
327
                                            default:
315
                                                edit_source.field_from_act_add_mod(edit_source.field_positions[act_tab][act_pos],1,edit_source.choice_stringids[edit_source.field_types[act_tab][act_pos]-PARAMTYPE_CHOICE].length);
328
                                                edit_source.field_from_act_add_mod(edit_source.field_positions[act_tab][act_pos],1,edit_source.choice_stringids[edit_source.field_types[act_tab][act_pos]-PARAMTYPE_CHOICE].length);
316
                                                break;
329
                                                break;
317
                                            }
330
                                            }
318
                               
331
                               
319
                               
332
                               
320
                                        break;
333
                                        break;
321
                                    }
334
                                    }
322
                       
335
                       
323
                            }
336
                            }
324
                        else
337
                        else
325
                            if (action== Canvas.FIRE)
338
                            if (action== Canvas.FIRE)
326
                                {
339
                                {
327
                                    act_y=1;
340
                                    act_y=1;
328
                                    //                              canvas.act_menu_select=0;
341
                                    //                              canvas.act_menu_select=0;
329
                                    canvas.menu_items[0]="";
342
                                    canvas.menu_items[0]="";
330
                                    select_mode=true;
-
 
-
 
343
 
-
 
344
                                    if (edit_source.tab_stringids==null)
-
 
345
                                        canvas.chg_state(nextstate);
-
 
346
                                    else
331
 
347
                                        select_mode=true;
332
                                }
348
                                }
333
                    }
349
                    }
334
                   
350
                   
335
                   
351
                   
336
                //              if (!select_mode)refresh_lcd();
352
                //              if (!select_mode)refresh_lcd();
337
                   
353
                   
338
            }
354
            }
339
    } // keypress
355
    } // keypress
340
}
356
}
341
 
357
 
342
 
358