2 registered members (TipmyPip, AndrewAMD),
12,726
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: c-script to lite-c conversion
[Re: Jaxas]
#264775
05/08/09 05:13
05/08/09 05:13
|
Joined: Apr 2007
Posts: 35 texas
over_board
OP
Newbie
|
OP
Newbie
Joined: Apr 2007
Posts: 35
texas
|
almost forgot to post the script...
font fntmyseed = "Arial",1,30;
text txt_myseed{
layer=1;
pos_x=20;
pos_y=20;
font = fntmyseed;
strings = 1;
string = " ";
}
//---------------------------------------------------------------------------------------------
# object properties
var gv_myseed_dev[999999]; // object defined!
var gv_myseed_lod[999999]; // lod-level of the object
var gv_myseed_del[999999]; // detail-level of the object (0..9)
var gv_myseed_ptr[999999]; // pointer to object-entity
var gv_myseed_typ[999999]; // type of the object (0/1/2 = r/g/b)
var gv_myseed_mdlid[999999]; // id of the objects model;
var gv_myseed_x[999999]; // x-pos of the object
var gv_myseed_y[999999]; // y-pos of the object
var gv_myseed_z[999999]; // z-pos of the object
var gv_myseed_sclx[999999]; // x-scale of the object
var gv_myseed_scly[999999]; // y-scale of the object
var gv_myseed_sclz[999999]; // z-scale of the object
var gv_myseed_pan[999999]; // pan of the object
var gv_myseed_tilt[999999]; // tilt of the object
var gv_myseed_roll[999999]; // roll of the object
var gv_myseed_wind1[999999]; // wind1 of the object
var gv_myseed_wind2[999999]; // wind2 of the object
var gv_myseed_anm[999999]; // anim-cnt of the object
var gv_myseed_matptr[999999]; // default-material-pointer of the object
# object counter
var gv_myseed_cnt = -1; // global object counter
var gv_myseed_curobj = 0; // global object index
# detail-level counter
var gv_detlevel = 0;
# trace-handle
entity* ge_myseed_ent; // trace entity
# models for blue part of seedmap
text mdlos_myseed0{strings=3;string="mdl__weed4.mdl","mdl__weed5.mdl","wbgrasstall.mdl";}
# models for green part of seedmap
text mdlos_myseed1{strings=4;string="mdl__flow2.mdl","mdl__flow3.mdl","mdl__weed1.mdl","wbgrass.mdl";}
# models for red part of seedmap
text mdlos_myseed2{strings=3;string="mdl__shr16.mdl","mdl__shr2.mdl","mdl__shr9.mdl";}
# seedmap definition
var gv_seedmapskin_myseed = 3; // models skin id
bmap* bmp_seedmap_myseed;
string str_seedmap_myseed = <>; // only if extern seedmap (terrain-map will be used)
var gv_myseedobj_used[3];
var gv_myseeddichte[3];
var gv_myseedsmapsize[2];
var gv_myseedterrsize[2];
var gv_myseedcolrel[3];
var gv_myseedspread[3];
var gv_myseedformat;
var gv_myseedpstart[2] = 0, 0;
var gv_myseedtotal_scale[2];
var gv_myseedfx;
var gv_myseedfy;
//===================================================================================================
function scanline_myseed(lv_x){
var lv_y;
var lv_c;
var lv_col[3];
var lv_pixel;
var lv_alpha;
var lv_totdepth = 10;
lv_y=gv_myseedsmapsize[1];
while(lv_y>0){
// get pixel & color
lv_pixel = pixel_for_bmap(bmp_seedmap_myseed, lv_x, lv_y);
pixel_to_vec(lv_col, lv_alpha, gv_myseedformat, lv_pixel);
// seed
lv_c=0;
while(lv_c<3){
// only if used
if(gv_myseedobj_used[lv_c]){
// set an object if neccesery
if((gv_myseedcolrel[lv_c] && random(255)<lv_col[lv_c]*gv_myseeddichte[lv_c]*(lv_totdepth*0.001)) || (!gv_myseedcolrel[lv_c] && lv_col[lv_c]>0 && random(1)<gv_myseeddichte[lv_c]*(lv_totdepth*0.001))){
temp.x = (my.min_x-my.x) + gv_myseedpstart[0] + (lv_x+1) * gv_myseedtotal_scale[0];
temp.y = (my.max_y-my.y) + gv_myseedpstart[1] - (lv_y+1) * gv_myseedtotal_scale[1];
// random placement in its area
if(gv_myseedspread[lv_c]==on){
temp.x+=-random(gv_myseedfx)*0.5+random(gv_myseedfx);
temp.y+=-random(gv_myseedfy)*0.5+random(gv_myseedfy);
}
temp.z = my.max_z;
vec_rotate(temp, vector(my.pan+0,my.tilt,my.roll));
vec_add(temp, my.x);
temp.z = my.max_z;
// "create" object
gv_myseed_cnt+=1;
gv_myseed_ptr[gv_myseed_cnt] = null; // pointer to object (if exists)
gv_myseed_typ[gv_myseed_cnt] = lv_c; // type of object (r/g/b)
gv_myseed_x[gv_myseed_cnt] = temp.x;
gv_myseed_y[gv_myseed_cnt] = temp.y;
gv_myseed_z[gv_myseed_cnt] = temp.z;
gv_myseed_pan[gv_myseed_cnt] = 0;
gv_myseed_tilt[gv_myseed_cnt] = 0;
gv_myseed_roll[gv_myseed_cnt] = 0;
gv_myseed_wind1[gv_myseed_cnt] = 0;
gv_myseed_wind2[gv_myseed_cnt] = 0;
}
}
lv_c+=1;
}
lv_y-=1;
}
}
//===================================================================================================
// must be set or included as/to the terrains action
action seed_myseed(){
var lv_x;
var lv_maxloops;
// set models borders
c_setminmax(me);
// random seed
lv_x=0;while(lv_x<2){random(1);lv_x+=1;}
// get seedmaps bmp
if(str_len(str_seedmap_myseed)>1){
you=ent_create(str_seedmap_myseed,nullvector,null);
you.invisible=on;you.passable=on;
bmp_seedmap_myseed=bmap_for_entity(you,1);
}else{
bmp_seedmap_myseed=bmap_for_entity(my,gv_seedmapskin_myseed);
}
// check if object is used
gv_myseedobj_used[0]=on;
gv_myseedobj_used[1]=on;
gv_myseedobj_used[2]=on;
// set seeddepth per object in o/oo
gv_myseeddichte[0]=0.25;
gv_myseeddichte[1]=0.06;
gv_myseeddichte[2]=0.2;
// get the seedmap size
gv_myseedsmapsize[0]=bmap_width(bmp_seedmap_myseed);
gv_myseedsmapsize[1]=bmap_height(bmp_seedmap_myseed);
// get terrain-size & left
gv_myseedterrsize[0]=my.max_x-my.min_x;
gv_myseedterrsize[1]=my.max_y-my.min_y;
gv_myseedfx=gv_myseedterrsize[0]/gv_myseedsmapsize[0];
gv_myseedfy=gv_myseedterrsize[1]/gv_myseedsmapsize[1];
gv_myseedtotal_scale[0]=gv_myseedfx;
gv_myseedtotal_scale[1]=gv_myseedfy;
//seedmap locken
gv_myseedformat = bmap_lock(bmp_seedmap_myseed, 0);
// seed is colordepth related?
gv_myseedcolrel[0]=on;
gv_myseedcolrel[1]=on;
gv_myseedcolrel[2]=on;
// seed within the grid
gv_myseedspread[0]=on;
gv_myseedspread[1]=on;
gv_myseedspread[2]=on;
// alle Punkte der seedmap betrachten....
lv_x=gv_myseedsmapsize[0];
lv_maxloops=max_loops;
max_loops = 999999;
while(lv_x>0){
scanline_myseed(lv_x);
lv_x-=1;
}
bmap_unlock(bmp_seedmap_myseed);
max_loops=lv_maxloops; // reset max_loops
// take controll...
//weather effect
//param: type(0=rain, 1=snow, 2=hail), speed, particles
// add here more seed-actions vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// e.g.: seed_seed2();
// add here more seed-actions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
//===================================================================================================
function setmyseedprops2 {
// set physic properties...
// set properties...
my.invisible=off;
my.unlit=off;
my.transparent=off;
my.overlay=off;
my.flare=off;
my.bright=off;
my.nofilter=off;
my.nofog=off;
my.shadow=off;
my.cast=off;
my.metal=off;
my.passable=off;
my.polygon=off;
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
my.transparent=on;
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=null){
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
}else{
gv_myseed_matptr[gv_myseed_curobj]=null;
}
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj]){
gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}else{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//------------------------------------------------------------------------------------------------------
function setmyseedprops1 {
// set physic properties...
// set properties...
my.invisible=off;
my.unlit=off;
my.transparent=off;
my.overlay=off;
my.flare=off;
my.bright=off;
my.nofilter=off;
my.nofog=off;
my.shadow=off;
my.cast=off;
my.metal=off;
my.passable=off;
my.polygon=off;
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
my.transparent=on;
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=null){
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
}else{
gv_myseed_matptr[gv_myseed_curobj]=null;
}
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj]){
gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}else{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//------------------------------------------------------------------------------------------------------
function setmyseedprops0 {
// set physic properties...
// set properties...
my.invisible=off;
my.unlit=off;
my.transparent=off;
my.overlay=off;
my.flare=off;
my.bright=off;
my.nofilter=off;
my.nofog=off;
my.shadow=off;
my.cast=off;
my.metal=off;
my.passable=off;
my.polygon=off;
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
my.transparent=on;
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=null){
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
}else{
gv_myseed_matptr[gv_myseed_curobj]=null;
}
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj]){
gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}else{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//------------------------------------------------------------------------------------------------------
// function for the objects...
function seed_myseed_fkt(){
var lv_cnt = 0;
var lv_vdist[3] = 5000, 5000, 5000; // fade distances
var lv_dist;
var lv_zdist;
// set position
lv_cnt=0;
while(lv_cnt<=gv_myseed_cnt){
gv_myseed_dev[lv_cnt]=off;
if(gv_myseed_typ[lv_cnt]==2){
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
}
if(gv_myseed_typ[lv_cnt]==1){
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
}
if(gv_myseed_typ[lv_cnt]==0){
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),ignore_passable | ignore_push | ignore_models | use_polygon | ignore_me);
}
lv_cnt+=1;
}
while(1){
// loop - all objects
lv_cnt=0;
while(lv_cnt<=gv_myseed_cnt){
gv_myseed_curobj=lv_cnt;
// add user defined functions here.vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
if(gv_myseed_typ[lv_cnt]==2){
# add your functions for type 0 models here!
}
if(gv_myseed_typ[lv_cnt]==1){
# add your functions for type 1 models here!
}
if(gv_myseed_typ[lv_cnt]==0){
# add your functions for type 2 models here!
}
// add user defined functions here.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// visible distance
if(gv_myseed_typ[lv_cnt]==2){
lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(gv_myseed_typ[lv_cnt]==1){
lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(gv_myseed_typ[lv_cnt]==0){
lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(lv_dist>lv_vdist[gv_myseed_typ[lv_cnt]]*2){
if(gv_myseed_ptr[lv_cnt]!=null){
you=gv_myseed_ptr[lv_cnt];
you.invisible=on;
//you.transparent=on;
}
}else{
// create
if(!gv_myseed_ptr[lv_cnt]){
if(gv_myseed_typ[lv_cnt]==0){
gv_myseed_mdlid[lv_cnt]=int(random(mdlos_myseed0.strings));
gv_myseed_ptr[lv_cnt]=ent_create(mdlos_myseed0.string[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops0);
you=gv_myseed_ptr[lv_cnt];
}
if(gv_myseed_typ[lv_cnt]==1){
gv_myseed_mdlid[lv_cnt]=int(random(mdlos_myseed1.strings));
gv_myseed_ptr[lv_cnt]=ent_create(mdlos_myseed1.string[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops1);
you=gv_myseed_ptr[lv_cnt];
}
if(gv_myseed_typ[lv_cnt]==2){
gv_myseed_mdlid[lv_cnt]=int(random(mdlos_myseed2.strings));
gv_myseed_ptr[lv_cnt]=ent_create(mdlos_myseed2.string[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops2);
you=gv_myseed_ptr[lv_cnt];
}
}
// fade?
if(lv_dist>lv_vdist[gv_myseed_typ[lv_cnt]]){
you=gv_myseed_ptr[lv_cnt];
you.invisible=off;
//you.transparent=on;
if(gv_myseed_typ[lv_cnt]==2){you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);}
if(gv_myseed_typ[lv_cnt]==1){you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);}
if(gv_myseed_typ[lv_cnt]==0){you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);}
}else{
you=gv_myseed_ptr[lv_cnt];
if(gv_myseed_typ[lv_cnt]==2){you.alpha=100;}
if(gv_myseed_typ[lv_cnt]==1){you.alpha=100;}
if(gv_myseed_typ[lv_cnt]==0){you.alpha=100;}
//you.transparent=off;
}
}
// animations
// motions
lv_cnt+=1;
}
wait(1);
}
}
//---------------------------------------------------------------------------------------------
define _fadedist, skill1;
//uses: _fadedist;
action fade_myseed_object{
var lv_dist;
my.transparent=on;
while(1){
lv_dist=vec_dist(my.x,camera.x);
// fade?
if(lv_dist>my._fadedist){
my.invisible=off;
my.alpha=clamp((-((lv_dist/my._fadedist)-2))*100,0,100);
}else{
my.alpha=100;
}
wait(1);
}
}
//---------------------------------------------------------------------------------------------
function save_myseed_list {
var lv_fh;
var lv_c = 0;
var lv_ml;
str_cpy(txt_myseed.string[0],"saveing...");
txt_myseed.visible=on;wait(1);
lv_ml=max_loops;
max_loops=999999;
lv_fh=file_open_write("object_myseed.3ol");
if(lv_fh==0){str_cpy(txt_myseed.string[0],"error!");beep;sleep(1);return(0);}
file_var_write(lv_fh,gv_myseed_cnt); // number of objects
while(lv_c<=gv_myseed_cnt){
file_var_write(lv_fh,gv_myseed_typ[lv_c]);
file_var_write(lv_fh,gv_myseed_x[lv_c]);
file_var_write(lv_fh,gv_myseed_y[lv_c]);
file_var_write(lv_fh,gv_myseed_z[lv_c]);
file_var_write(lv_fh,gv_myseed_sclx[lv_c]);
file_var_write(lv_fh,gv_myseed_scly[lv_c]);
file_var_write(lv_fh,gv_myseed_sclz[lv_c]);
file_var_write(lv_fh,gv_myseed_pan[lv_c]);
file_var_write(lv_fh,gv_myseed_tilt[lv_c]);
file_var_write(lv_fh,gv_myseed_roll[lv_c]);
lv_c+=1;
}
file_close(lv_fh);
max_loops=lv_ml;
str_cpy(txt_myseed.string[0],"saved!");
sleep(1);
txt_myseed.visible=off;
}
//---------------------------------------------------------------------------------------------
function load_myseed_list {
var lv_fh;
var lv_c = 0;
var lv_ml;
on_l=null; // don`t double load
lv_ml=max_loops;
max_loops=999999;
str_cpy(txt_myseed.string[0],"loading...!");
txt_myseed.visible=on;wait(1);
lv_fh=file_open_read("object_myseed.3ol"); // <--- change the name of your objectlist here
if(lv_fh==0){str_cpy(txt_myseed.string[0],"error!");beep;sleep(1);return(0);}
lv_c=0;
// erase actual object
while(lv_c<gv_myseed_cnt){
you=gv_myseed_ptr[lv_c];
if(you){ent_remove(you);}
lv_c+=1;
}
gv_myseed_cnt=file_var_read(lv_fh);
lv_c=0;
while(lv_c<gv_myseed_cnt){
gv_myseed_typ[lv_c]=file_var_read(lv_fh);
gv_myseed_x[lv_c]=file_var_read(lv_fh);
gv_myseed_y[lv_c]=file_var_read(lv_fh);
gv_myseed_z[lv_c]=file_var_read(lv_fh);
gv_myseed_sclx[lv_c]=file_var_read(lv_fh);
gv_myseed_scly[lv_c]=file_var_read(lv_fh);
gv_myseed_sclz[lv_c]=file_var_read(lv_fh);
gv_myseed_pan[lv_c]=file_var_read(lv_fh);
gv_myseed_tilt[lv_c]=file_var_read(lv_fh);
gv_myseed_roll[lv_c]=file_var_read(lv_fh);
gv_myseed_ptr[lv_c]=null;
lv_c+=1;
};
file_close(lv_fh);
max_loops=lv_ml;
str_cpy(txt_myseed.string[0],"creating...");
wait(3);
txt_myseed.visible=off;
on_l=load_myseed_list;
}
// ##############################################################################################
// ##################### EOF -=- part copyright by gameus (www.gameus.de) #######################
Last edited by over_board; 05/08/09 05:14.
|
|
|
Re: c-script to lite-c conversion
[Re: delinkx]
#264786
05/08/09 07:17
05/08/09 07:17
|
Joined: Feb 2008
Posts: 3,232 Australia
EvilSOB
Expert
|
Expert
Joined: Feb 2008
Posts: 3,232
Australia
|
Heres a basic convert, compiles fine but untested as it only seems to be an include file. And I therefore have no idea how to implement it for testing. I havent done any real lite-c optimisation, cause its so huge, but it should be fine all the same. If you have any problems let us know. Enjoy 
FONT* fntmyseed = "Arial#30b";
TEXT* txt_myseed =
{
layer =1;
pos_x =20;
pos_y =20;
font = fntmyseed;
string(" ");
}
//---------------------------------------------------------------------------------------------
// object properties
var gv_myseed_dev[999999]; // object defined!
var gv_myseed_lod[999999]; // lod-level of the object
var gv_myseed_del[999999]; // detail-level of the object (0..9)
var gv_myseed_ptr[999999]; // pointer to object-entity
var gv_myseed_typ[999999]; // type of the object (0/1/2 = r/g/b)
var gv_myseed_mdlid[999999]; // id of the objects model;
var gv_myseed_x[999999]; // x-pos of the object
var gv_myseed_y[999999]; // y-pos of the object
var gv_myseed_z[999999]; // z-pos of the object
var gv_myseed_sclx[999999]; // x-scale of the object
var gv_myseed_scly[999999]; // y-scale of the object
var gv_myseed_sclz[999999]; // z-scale of the object
var gv_myseed_pan[999999]; // pan of the object
var gv_myseed_tilt[999999]; // tilt of the object
var gv_myseed_roll[999999]; // roll of the object
var gv_myseed_wind1[999999]; // wind1 of the object
var gv_myseed_wind2[999999]; // wind2 of the object
var gv_myseed_anm[999999]; // anim-cnt of the object
var gv_myseed_matptr[999999]; // default-material-pointer of the object
// object counter
var gv_myseed_cnt = -1; // global object counter
var gv_myseed_curobj = 0; // global object index
// detail-level counter
var gv_detlevel = 0;
// trace-handle
ENTITY* ge_myseed_ent; // trace entity
// models for blue part of seedmap
TEXT* mdlos_myseed0 = {string("mdl__weed4.mdl","mdl__weed5.mdl","wbgrasstall.mdl"); }
// models for green part of seedmap
TEXT* mdlos_myseed1 = {string("mdl__flow2.mdl","mdl__flow3.mdl","mdl__weed1.mdl","wbgrass.mdl");}
// models for red part of seedmap
TEXT* mdlos_myseed2 = { string("mdl__shr16.mdl","mdl__shr2.mdl","mdl__shr9.mdl"); }
// seedmap definition
var gv_seedmapskin_myseed = 3; // models skin id
BMAP* bmp_seedmap_myseed;
STRING* str_seedmap_myseed = ""; // only if extern seedmap (terrain-map will be used)
var gv_myseedobj_used[3];
var gv_myseeddichte[3];
var gv_myseedsmapsize[2];
var gv_myseedterrsize[2];
var gv_myseedcolrel[3];
var gv_myseedspread[3];
var gv_myseedformat;
var gv_myseedpstart[2] = { 0, 0 };
var gv_myseedtotal_scale[2];
var gv_myseedfx;
var gv_myseedfy;
VECTOR temp;
#define on 1
#define off 0
//===================================================================================================
function scanline_myseed(var lv_x)
{
var lv_y;
var lv_c;
var lv_col[3];
var lv_pixel;
var lv_alpha;
var lv_totdepth = 10;
lv_y=gv_myseedsmapsize[1];
while(lv_y>0)
{
// get pixel & color
lv_pixel = pixel_for_bmap(bmp_seedmap_myseed, lv_x, lv_y);
pixel_to_vec(lv_col, lv_alpha, gv_myseedformat, lv_pixel);
// seed
lv_c=0;
while(lv_c<3)
{ // only if used
if(gv_myseedobj_used[lv_c])
{ // set an object if neccesery
if((gv_myseedcolrel[lv_c] && random(255)<lv_col[lv_c]*gv_myseeddichte[lv_c]*(lv_totdepth*0.001))
||(!gv_myseedcolrel[lv_c] && lv_col[lv_c]>0 && random(1)<gv_myseeddichte[lv_c]*(lv_totdepth*0.001)))
{ temp.x = (my.min_x-my.x) + gv_myseedpstart[0] + (lv_x+1) * gv_myseedtotal_scale[0];
temp.y = (my.max_y-my.y) + gv_myseedpstart[1] - (lv_y+1) * gv_myseedtotal_scale[1];
// random placement in its area
if(gv_myseedspread[lv_c]==on)
{ temp.x+=-random(gv_myseedfx)*0.5+random(gv_myseedfx);
temp.y+=-random(gv_myseedfy)*0.5+random(gv_myseedfy);
}
temp.z = my.max_z;
vec_rotate(temp, vector(my.pan+0,my.tilt,my.roll));
vec_add(temp, my.x);
temp.z = my.max_z;
// "create" object
gv_myseed_cnt+=1;
gv_myseed_ptr[gv_myseed_cnt] = NULL; // pointer to object (if exists)
gv_myseed_typ[gv_myseed_cnt] = lv_c; // type of object (r/g/b)
gv_myseed_x[gv_myseed_cnt] = temp.x;
gv_myseed_y[gv_myseed_cnt] = temp.y;
gv_myseed_z[gv_myseed_cnt] = temp.z;
gv_myseed_pan[gv_myseed_cnt] = 0;
gv_myseed_tilt[gv_myseed_cnt] = 0;
gv_myseed_roll[gv_myseed_cnt] = 0;
gv_myseed_wind1[gv_myseed_cnt] = 0;
gv_myseed_wind2[gv_myseed_cnt] = 0;
}
}
lv_c+=1;
}
lv_y-=1;
}
}
//
//===================================================================================================
// must be set or included as/to the terrains action
action seed_myseed()
{
var lv_x;
var lv_maxloops;
// set models borders
wait(1);
c_setminmax(me);
// random seed
lv_x=0;while(lv_x<2) { random(1); lv_x+=1; }
// get seedmaps bmp
if(str_len(str_seedmap_myseed)>1)
{
you=ent_create(str_seedmap_myseed, nullvector, NULL);
set(you,INVISIBLE|PASSABLE);
bmp_seedmap_myseed=bmap_for_entity(you,1);
}
else bmp_seedmap_myseed=bmap_for_entity(my,gv_seedmapskin_myseed);
// check if object is used
gv_myseedobj_used[0]=on;
gv_myseedobj_used[1]=on;
gv_myseedobj_used[2]=on;
// set seeddepth per object in o/oo
gv_myseeddichte[0]=0.25;
gv_myseeddichte[1]=0.06;
gv_myseeddichte[2]=0.2;
// get the seedmap size
gv_myseedsmapsize[0]=bmap_width(bmp_seedmap_myseed);
gv_myseedsmapsize[1]=bmap_height(bmp_seedmap_myseed);
// get terrain-size & left
gv_myseedterrsize[0]=my.max_x-my.min_x;
gv_myseedterrsize[1]=my.max_y-my.min_y;
gv_myseedfx=gv_myseedterrsize[0]/gv_myseedsmapsize[0];
gv_myseedfy=gv_myseedterrsize[1]/gv_myseedsmapsize[1];
gv_myseedtotal_scale[0]=gv_myseedfx;
gv_myseedtotal_scale[1]=gv_myseedfy;
//seedmap locken
gv_myseedformat = bmap_lock(bmp_seedmap_myseed, 0);
// seed is colordepth related?
gv_myseedcolrel[0]=on;
gv_myseedcolrel[1]=on;
gv_myseedcolrel[2]=on;
// seed within the grid
gv_myseedspread[0]=on;
gv_myseedspread[1]=on;
gv_myseedspread[2]=on;
// alle Punkte der seedmap betrachten....
lv_x=gv_myseedsmapsize[0];
lv_maxloops=max_loops;
max_loops = 999999;
while(lv_x>0) { scanline_myseed(lv_x); lv_x-=1; }
bmap_unlock(bmp_seedmap_myseed);
max_loops=lv_maxloops; // reset max_loops
// take controll...
//weather effect
//param: type(0=rain, 1=snow, 2=hail), speed, particles
// add here more seed-actions vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// e.g.: seed_seed2();
// add here more seed-actions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
//
//===================================================================================================
//
function setmyseedprops2()
{
// set physic properties...
// set properties...
reset(my,INVISIBLE|UNLIT|TRANSLUCENT|OVERLAY|BRIGHT|NOFILTER);
reset(my,NOFOG|SHADOW|CAST|METAL|PASSABLE|POLYGON);
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
set(my,TRANSLUCENT);
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=NULL)
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
else
gv_myseed_matptr[gv_myseed_curobj]=NULL;
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj])
{ gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}
else
{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//
//------------------------------------------------------------------------------------------------------
//
function setmyseedprops1()
{
// set physic properties...
// set properties...
reset(my,INVISIBLE|UNLIT|TRANSLUCENT|OVERLAY|BRIGHT|NOFILTER);
reset(my,NOFOG|SHADOW|CAST|METAL|PASSABLE|POLYGON);
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
set(my,TRANSLUCENT);
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=NULL)
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
else
gv_myseed_matptr[gv_myseed_curobj]=NULL;
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj])
{
gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}
else
{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//
//------------------------------------------------------------------------------------------------------
//
function setmyseedprops0()
{
// set physic properties...
// set properties...
reset(my,INVISIBLE|UNLIT|TRANSLUCENT|OVERLAY|BRIGHT|NOFILTER);
reset(my,NOFOG|SHADOW|CAST|METAL|PASSABLE|POLYGON);
my.ambient=0;
my.albedo=50;
my.skin=0;
// skills
// flags
// transparent
set(my,TRANSLUCENT);
// detail-level-ID
gv_detlevel=(gv_detlevel+1)%10;
gv_myseed_del[gv_myseed_curobj]=gv_detlevel;
// material-pointer
if(my.material!=NULL)
gv_myseed_matptr[gv_myseed_curobj]=handle(my.material);
else
gv_myseed_matptr[gv_myseed_curobj]=NULL;
// define object presentation
if(!gv_myseed_dev[gv_myseed_curobj])
{
gv_myseed_dev[gv_myseed_curobj]=on;
// rotate
c_trace(vector(me.x,me.y,me.z+1000),vector(me.x,me.y,me.z-2000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
vec_to_angle(my.pan,normal);
my.tilt+=-90;
// scale...
my.scale_x=1;
my.scale_y=1;
my.scale_z=1;
gv_myseed_sclx[gv_myseed_curobj]=my.scale_x;
gv_myseed_scly[gv_myseed_curobj]=my.scale_y;
gv_myseed_sclz[gv_myseed_curobj]=my.scale_z;
// angles...
gv_myseed_pan[gv_myseed_curobj]=my.pan;
gv_myseed_tilt[gv_myseed_curobj]=my.tilt;
gv_myseed_roll[gv_myseed_curobj]=my.roll;
// adjust...
c_setminmax(me);
}
else
{
vec_set(my.x, vector(gv_myseed_x[gv_myseed_curobj],gv_myseed_y[gv_myseed_curobj],gv_myseed_z[gv_myseed_curobj]));
my.scale_x=gv_myseed_sclx[gv_myseed_curobj];
my.scale_y=gv_myseed_scly[gv_myseed_curobj];
my.scale_z=gv_myseed_sclz[gv_myseed_curobj];
vec_set(my.pan, vector(gv_myseed_pan[gv_myseed_curobj],gv_myseed_tilt[gv_myseed_curobj],gv_myseed_roll[gv_myseed_curobj]));
}
}
//
//------------------------------------------------------------------------------------------------------
//
// function for the objects...
function seed_myseed_fkt()
{
var lv_cnt = 0;
var lv_vdist[3]; vec_set(lv_vdist[0], vector(5000, 5000, 5000)); // fade distances
var lv_dist;
var lv_zdist;
// set position
lv_cnt=0;
while(lv_cnt<=gv_myseed_cnt)
{ gv_myseed_dev[lv_cnt]=off;
if(gv_myseed_typ[lv_cnt]==2)
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
if(gv_myseed_typ[lv_cnt]==1)
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
if(gv_myseed_typ[lv_cnt]==0)
gv_myseed_z[lv_cnt]-=c_trace(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]-10000),IGNORE_PASSABLE|IGNORE_PUSH|IGNORE_MODELS|USE_POLYGON|IGNORE_ME);
lv_cnt+=1;
}
while(1)
{ // loop - all objects
lv_cnt=0;
while(lv_cnt<=gv_myseed_cnt)
{ gv_myseed_curobj=lv_cnt;
// add user defined functions here.vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
if(gv_myseed_typ[lv_cnt]==2)
{
// add your functions for type 0 models here!
}
if(gv_myseed_typ[lv_cnt]==1)
{
// add your functions for type 1 models here!
}
if(gv_myseed_typ[lv_cnt]==0)
{
// add your functions for type 2 models here!
}
// add user defined functions here.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// visible distance
if(gv_myseed_typ[lv_cnt]==2)
{ lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(gv_myseed_typ[lv_cnt]==1)
{ lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(gv_myseed_typ[lv_cnt]==0)
{ lv_zdist=gv_myseed_z[lv_cnt];
lv_dist=vec_dist(vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],lv_zdist),camera.x);
}
if(lv_dist>lv_vdist[gv_myseed_typ[lv_cnt]]*2)
{ if(gv_myseed_ptr[lv_cnt]!=NULL)
{ you=gv_myseed_ptr[lv_cnt];
set(you,INVISIBLE);
//set(you,TRANSLUCENT);
}
}
else
{ // create
if(!gv_myseed_ptr[lv_cnt])
{ if(gv_myseed_typ[lv_cnt]==0)
{
gv_myseed_mdlid[lv_cnt] = integer(random((mdlos_myseed0.strings)));
gv_myseed_ptr[lv_cnt]=ent_create((mdlos_myseed0.pstring)[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops0);
you=gv_myseed_ptr[lv_cnt];
}
if(gv_myseed_typ[lv_cnt]==1)
{ gv_myseed_mdlid[lv_cnt]=integer(random(mdlos_myseed1.strings));
gv_myseed_ptr[lv_cnt]=ent_create((mdlos_myseed1.pstring)[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops1);
you=gv_myseed_ptr[lv_cnt];
}
if(gv_myseed_typ[lv_cnt]==2)
{ gv_myseed_mdlid[lv_cnt]=integer(random(mdlos_myseed2.strings));
gv_myseed_ptr[lv_cnt]=ent_create((mdlos_myseed2.pstring)[gv_myseed_mdlid[lv_cnt]],vector(gv_myseed_x[lv_cnt],gv_myseed_y[lv_cnt],gv_myseed_z[lv_cnt]),setmyseedprops2);
you=gv_myseed_ptr[lv_cnt];
}
}
// fade?
if(lv_dist>lv_vdist[gv_myseed_typ[lv_cnt]])
{ you=gv_myseed_ptr[lv_cnt];
reset(you,INVISIBLE);
//set(you,TRANSLUCENT);
if(gv_myseed_typ[lv_cnt]==2) you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);
if(gv_myseed_typ[lv_cnt]==1) you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);
if(gv_myseed_typ[lv_cnt]==0) you.alpha=clamp((-((lv_dist/lv_vdist[gv_myseed_typ[lv_cnt]])-2))*100,0,100);
}
else
{ you=gv_myseed_ptr[lv_cnt];
if(gv_myseed_typ[lv_cnt]==2) you.alpha=100;
if(gv_myseed_typ[lv_cnt]==1) you.alpha=100;
if(gv_myseed_typ[lv_cnt]==0) you.alpha=100;
//reset(you,TRANSLUCENT);
}
}
// animations
// motions
lv_cnt+=1;
}
wait(1);
}
}
//
//---------------------------------------------------------------------------------------------
//
#define _fadedist skill1
//uses: _fadedist;
action fade_myseed_object()
{
var lv_dist;
set(my,TRANSLUCENT);
while(1)
{ lv_dist=vec_dist(my.x,camera.x);
// fade?
if(lv_dist>my._fadedist)
{ reset(my,INVISIBLE);
my.alpha=clamp((-((lv_dist/my._fadedist)-2))*100,0,100);
}
else my.alpha=100;
wait(1);
}
}
//
//---------------------------------------------------------------------------------------------
//
function save_myseed_list()
{
var lv_fh;
var lv_c = 0;
var lv_ml;
str_cpy((txt_myseed.pstring)[0],"saving...");
set(txt_myseed,SHOW); wait(1);
lv_ml=max_loops;
max_loops=999999;
lv_fh=file_open_write("object_myseed.3ol");
if(lv_fh==0) { str_cpy((txt_myseed.pstring)[0],"error!"); beep(); wait(-1); return(0); }
file_var_write(lv_fh,gv_myseed_cnt); // number of objects
while(lv_c<=gv_myseed_cnt)
{ file_var_write(lv_fh,gv_myseed_typ[lv_c]);
file_var_write(lv_fh,gv_myseed_x[lv_c]);
file_var_write(lv_fh,gv_myseed_y[lv_c]);
file_var_write(lv_fh,gv_myseed_z[lv_c]);
file_var_write(lv_fh,gv_myseed_sclx[lv_c]);
file_var_write(lv_fh,gv_myseed_scly[lv_c]);
file_var_write(lv_fh,gv_myseed_sclz[lv_c]);
file_var_write(lv_fh,gv_myseed_pan[lv_c]);
file_var_write(lv_fh,gv_myseed_tilt[lv_c]);
file_var_write(lv_fh,gv_myseed_roll[lv_c]);
lv_c+=1;
}
file_close(lv_fh);
max_loops=lv_ml;
str_cpy((txt_myseed.pstring)[0],"saved!");
wait(-1);
reset(txt_myseed,SHOW);
}
//
//---------------------------------------------------------------------------------------------
//
function load_myseed_list()
{
var lv_fh;
var lv_c = 0;
var lv_ml;
on_l=NULL; // don`t double load
lv_ml=max_loops;
max_loops=999999;
str_cpy((txt_myseed.pstring)[0],"loading...!");
set(txt_myseed,SHOW); wait(1);
lv_fh=file_open_read("object_myseed.3ol"); // <--- change the name of your objectlist here
if(lv_fh==0) { str_cpy((txt_myseed.pstring)[0],"error!"); beep(); wait(-1); return(0); }
lv_c=0;
// erase actual object
while(lv_c<gv_myseed_cnt)
{ you=gv_myseed_ptr[lv_c];
if(you) ent_remove(you);
lv_c+=1;
}
gv_myseed_cnt=file_var_read(lv_fh);
lv_c=0;
while(lv_c<gv_myseed_cnt)
{ gv_myseed_typ[lv_c]=file_var_read(lv_fh);
gv_myseed_x[lv_c]=file_var_read(lv_fh);
gv_myseed_y[lv_c]=file_var_read(lv_fh);
gv_myseed_z[lv_c]=file_var_read(lv_fh);
gv_myseed_sclx[lv_c]=file_var_read(lv_fh);
gv_myseed_scly[lv_c]=file_var_read(lv_fh);
gv_myseed_sclz[lv_c]=file_var_read(lv_fh);
gv_myseed_pan[lv_c]=file_var_read(lv_fh);
gv_myseed_tilt[lv_c]=file_var_read(lv_fh);
gv_myseed_roll[lv_c]=file_var_read(lv_fh);
gv_myseed_ptr[lv_c]=NULL;
lv_c+=1;
}
file_close(lv_fh);
max_loops=lv_ml;
str_cpy((txt_myseed.pstring)[0],"creating...");
wait(3);
reset(txt_myseed,SHOW);
on_l=load_myseed_list;
}
// ##############################################################################################
// ##################### EOF -=- part copyright by gameus (www.gameus.de) #######################
"There is no fate but what WE make." - CEO Cyberdyne Systems Corp. A8.30.5 Commercial
|
|
|
Re: c-script to lite-c conversion
[Re: over_board]
#265765
05/14/09 03:30
05/14/09 03:30
|
Joined: Feb 2008
Posts: 3,232 Australia
EvilSOB
Expert
|
Expert
Joined: Feb 2008
Posts: 3,232
Australia
|
You must be using an slightly older version of A7. Replace it with VISIBLE instead
"There is no fate but what WE make." - CEO Cyberdyne Systems Corp. A8.30.5 Commercial
|
|
|
|