0,0 → 1,113 |
/************************************************** |
* |
* class representing the Params Structure |
* |
* Author: Marcus -LiGi- Bueschleb |
* |
* see README for further Infos |
* |
*************************************************/ |
|
public class MKParamsParser |
implements MKParamDefinitions |
|
{ |
|
public final static int MAX_PARAMSETS=20; |
public final static int MAX_PARAMLENGTH=70; |
|
public int[][] field; |
public String[] names={"Paramset 1","Paramset 2","Paramset 3","Paramset 4","Paramset 5"}; |
|
public int act_paramset=0; |
|
|
public int get_field_from_act(int pos) |
{ return field[act_paramset][pos]; } |
|
public void set_field_from_act(int pos,int val) |
{ |
if (val>255) val=255; |
if (val<0) val=255; |
field[act_paramset][pos]=val; |
} |
|
|
public void field_from_act_add(int pos,int val) |
{ |
set_field_from_act(pos , get_field_from_act(pos)+val); |
} |
|
// for boolean Flags |
public void field_from_act_xor(int pos,int val) |
{ |
field[act_paramset][pos]^=val; |
} |
|
public MKParamsParser() |
{ |
field=new int[MAX_PARAMSETS][MAX_PARAMLENGTH]; |
for (int ii=0;ii<MAX_PARAMSETS;ii++) |
for (int i=0;i<MAX_PARAMLENGTH;i++) |
field[ii][i]=-1; |
|
} |
|
|
public int[] param_type; |
public int[] param_pos; |
public int[] param_innerpos; |
|
public void set_by_mk_data(int paramset_num,int[] in_arr,MKVersion version) |
{ |
param_type=new int[PARAM_COUNT]; |
param_pos=new int[PARAM_COUNT]; |
param_innerpos=new int[PARAM_COUNT]; |
|
param_type[PARAMID_STICK_ACCELERATE]=PARAMTYPE_BYTE; |
param_pos[PARAMID_STICK_ACCELERATE]=2; |
param_innerpos[PARAMID_STICK_ACCELERATE]=0; |
|
|
switch (version.compatible) |
{ |
case 4: |
case 5: |
|
for ( int i=0;i<58;i++) |
field[paramset_num][i]=in_arr[i]; |
names[paramset_num]="" + (paramset_num+1) +": "; |
for ( int i=46;i<58;i++) |
{ |
if(in_arr[i]==0)break; |
names[paramset_num]+=(char)in_arr[i]; |
} |
break; |
|
case 6: |
for ( int i=0;i<65;i++) |
field[paramset_num][i]=in_arr[i]; |
names[paramset_num]="" + (paramset_num+1) +": "; |
for ( int i=53;i<65;i++) |
{ |
if(in_arr[i]==0)break; |
names[paramset_num]+=(char)in_arr[i]; |
} |
break; |
case 7: |
for ( int i=0;i<70;i++) |
field[paramset_num][i]=in_arr[i]; |
names[paramset_num]="" + (paramset_num+1) +": "; |
for ( int i=58;i<70;i++) |
{ |
if(in_arr[i]==0)break; |
names[paramset_num]+=(char)in_arr[i]; |
} |
break; |
|
} |
} |
|
|
|
} |