Initial (manual) import
This commit is contained in:
1 parent
f39611c506
commit
895fe109de
661 files changed
+245862
No files matched your search
@@ -0,0 +1,128 @@
|
||||
//Makes a mesh ball.
|
||||
|
||||
#define VERTICES_NUM 1024
|
||||
#define TRIS_NUM 1024
|
||||
|
||||
class Ball
|
||||
{
|
||||
I32 vertex_cnt;
|
||||
I32 tri_cnt;
|
||||
CD3I32 v[VERTICES_NUM];
|
||||
CMeshTri t[TRIS_NUM];
|
||||
} *b;
|
||||
|
||||
class BallDefineStruct
|
||||
{
|
||||
F64 radius fmtstr "$$DA-TRM,A=\"Radius :%8.3f\"$$\n";
|
||||
I64 n_longitude fmtstr "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n";
|
||||
I64 n_lattitude fmtstr "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n";
|
||||
};
|
||||
|
||||
U0 BDInit(BallDefineStruct *bd)
|
||||
{
|
||||
MemSet(bd,0,sizeof(BallDefineStruct));
|
||||
bd->n_longitude=16;
|
||||
bd->n_lattitude=8;
|
||||
bd->radius =20.0;
|
||||
}
|
||||
|
||||
U0 BDCorrect(BallDefineStruct *bd)
|
||||
{
|
||||
bd->n_longitude=(bd->n_longitude+1)/2;
|
||||
bd->n_lattitude=(bd->n_lattitude+1)/2;
|
||||
}
|
||||
|
||||
I64 AddVertex(BallDefineStruct *,I64 x,I64 y,I64 z)
|
||||
{
|
||||
I64 i;
|
||||
for (i=0;i<b->vertex_cnt;i++)
|
||||
if (b->v[i].x==x && b->v[i].y==y && b->v[i].z==z)
|
||||
return i;
|
||||
i=b->vertex_cnt++;
|
||||
b->v[i].x=x;
|
||||
b->v[i].y=y;
|
||||
b->v[i].z=z;
|
||||
return i;
|
||||
}
|
||||
|
||||
I64 AddTri(BallDefineStruct *,I64 c,I64 n0,I64 n1,I64 n2)
|
||||
{
|
||||
I64 res=b->tri_cnt++;
|
||||
b->t[res].color=c;
|
||||
b->t[res].nums[0]=n0;
|
||||
b->t[res].nums[1]=n1;
|
||||
b->t[res].nums[2]=n2;
|
||||
return res;
|
||||
}
|
||||
|
||||
U8 *Ball2CSprite()
|
||||
{
|
||||
//See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
U8 *res=MAlloc(sizeof(CSpriteMeshU8s)+
|
||||
b->vertex_cnt*sizeof(CD3I32)+b->tri_cnt*sizeof(CMeshTri)
|
||||
+sprite_elem_base_sizes[SPT_END]),
|
||||
*dst=res;
|
||||
*dst++ =SPT_MESH;
|
||||
*dst(I32 *)++ =b->vertex_cnt;
|
||||
*dst(I32 *)++ =b->tri_cnt;
|
||||
MemCpy(dst,&b->v,b->vertex_cnt*sizeof(CD3I32));
|
||||
dst+=b->vertex_cnt*sizeof(CD3I32);
|
||||
MemCpy(dst,&b->t,b->tri_cnt*sizeof(CMeshTri));
|
||||
dst+=b->tri_cnt*sizeof(CMeshTri);
|
||||
*dst++ =SPT_END;
|
||||
return res;
|
||||
}
|
||||
|
||||
public U8 *BallGen()
|
||||
{
|
||||
U8 *res;
|
||||
I64 i,j,n,m,c,p1,p2,p3,p4;
|
||||
BallDefineStruct bd1,bd2;
|
||||
F64 r,r1,r2,z1,z2,d_a1,d_a2;
|
||||
|
||||
BDInit(&bd1);
|
||||
|
||||
while (TRUE) {
|
||||
if (!DocForm(&bd1))
|
||||
return NULL;
|
||||
MemCpy(&bd2,&bd1,sizeof(BallDefineStruct));
|
||||
BDCorrect(&bd2);
|
||||
|
||||
c=PopUpColorLighting;
|
||||
if (c<0) return NULL;
|
||||
|
||||
b=CAlloc(sizeof(Ball));
|
||||
r=bd2.radius;
|
||||
n=bd2.n_lattitude;
|
||||
m=bd2.n_longitude;
|
||||
d_a1=2*ã/n/4;
|
||||
d_a2=2*ã/m/2;
|
||||
for (j=-n;j<n;j++) {
|
||||
r1=r*Cos( j *d_a1);
|
||||
r2=r*Cos((j+1)*d_a1);
|
||||
z1=r*Sin( j *d_a1);
|
||||
z2=r*Sin((j+1)*d_a1);
|
||||
for (i=0;i<m;i++) {
|
||||
p1=AddVertex(&bd2,r1*Cos((2*i +j)*d_a2),r1*Sin((2*i +j)*d_a2),z1);
|
||||
p2=AddVertex(&bd2,r1*Cos((2*i+2+j)*d_a2),r1*Sin((2*i+2+j)*d_a2),z1);
|
||||
p3=AddVertex(&bd2,r2*Cos((2*i+1+j)*d_a2),r2*Sin((2*i+1+j)*d_a2),z2);
|
||||
p4=AddVertex(&bd2,r2*Cos((2*i+3+j)*d_a2),r2*Sin((2*i+3+j)*d_a2),z2);
|
||||
AddTri(&bd2,c,p1,p2,p3);
|
||||
AddTri(&bd2,c,p3,p2,p4);
|
||||
}
|
||||
}
|
||||
|
||||
res=Ball2CSprite;
|
||||
"%h7c",'\n';
|
||||
Sprite(res,"\t\t$$SP,\"<1>\",BI=%d$$");
|
||||
"%h7c",'\n';
|
||||
"Vertices:%d\n",b->vertex_cnt;
|
||||
Free(b);
|
||||
"Do another";
|
||||
if (YorN)
|
||||
Free(res);
|
||||
else
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
#help_index "Misc"
|
||||
|
||||
Cd(__DIR__);;
|
||||
#include "ManGen"
|
||||
#include "BallGen"
|
||||
#include "Models"
|
||||
|
||||
#help_index ""
|
||||
@@ -0,0 +1,320 @@
|
||||
//Makes a mesh man.
|
||||
|
||||
#define VERTICES_NUM 1024
|
||||
#define TRIS_NUM 1024
|
||||
|
||||
class Man
|
||||
{
|
||||
I32 vertex_cnt;
|
||||
I32 tri_cnt;
|
||||
CD3I32 v[VERTICES_NUM];
|
||||
CMeshTri t[TRIS_NUM];
|
||||
} *m;
|
||||
|
||||
class ManDefineStruct
|
||||
{
|
||||
F64 head_rad fmtstr
|
||||
"$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n";
|
||||
|
||||
F64 torso_len fmtstr
|
||||
"$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n";
|
||||
F64 arm_len fmtstr
|
||||
"$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n";
|
||||
F64 hand_len fmtstr
|
||||
"$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n";
|
||||
F64 leg_len fmtstr
|
||||
"$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n";
|
||||
F64 foot_len fmtstr
|
||||
"$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n";
|
||||
F64 torso_width fmtstr
|
||||
"$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n";
|
||||
F64 torso_depth fmtstr
|
||||
"$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n";
|
||||
F64 arm_rad fmtstr
|
||||
"$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n";
|
||||
F64 hand_rad fmtstr
|
||||
"$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n";
|
||||
F64 leg_rad fmtstr
|
||||
"$$DA-TRM,A=\"Leg Radius :%8.3f\"$$\n";
|
||||
F64 foot_rad fmtstr
|
||||
"$$DA-TRM,A=\"Foot Radius :%8.3f\"$$\n\n";
|
||||
|
||||
F64 r_shoulder_a1 fmtstr
|
||||
"$$DA-TRM,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n";
|
||||
F64 l_shoulder_a1 fmtstr
|
||||
"$$DA-TRM,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n";
|
||||
F64 r_hip_a1 fmtstr
|
||||
"$$DA-TRM,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n";
|
||||
F64 l_hip_a1 fmtstr
|
||||
"$$DA-TRM,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n";
|
||||
|
||||
F64 r_shoulder_a2 fmtstr
|
||||
"$$DA-TRM,A=\"R.Shoulder Side Angle :%8.3f\"$$\n";
|
||||
F64 l_shoulder_a2 fmtstr
|
||||
"$$DA-TRM,A=\"L.Shoulder Side Angle :%8.3f\"$$\n";
|
||||
F64 r_hip_a2 fmtstr
|
||||
"$$DA-TRM,A=\"R.Hip Side Angle :%8.3f\"$$\n";
|
||||
F64 l_hip_a2 fmtstr
|
||||
"$$DA-TRM,A=\"L.Hip Side Angle :%8.3f\"$$\n";
|
||||
|
||||
F64 r_elbow_a fmtstr
|
||||
"$$DA-TRM,A=\"R.Elbow Angle :%8.3f\"$$\n";
|
||||
F64 l_elbow_a fmtstr
|
||||
"$$DA-TRM,A=\"L.Elbow Angle :%8.3f\"$$\n";
|
||||
F64 r_knee_a fmtstr
|
||||
"$$DA-TRM,A=\"R.Knee Angle :%8.3f\"$$\n";
|
||||
F64 l_knee_a fmtstr
|
||||
"$$DA-TRM,A=\"L.Knee Angle :%8.3f\"$$\n";
|
||||
|
||||
F64 r_wrist_a fmtstr
|
||||
"$$DA-TRM,A=\"R.Wrist Angle :%8.3f\"$$\n";
|
||||
F64 l_wrist_a fmtstr
|
||||
"$$DA-TRM,A=\"L.Wrist Angle :%8.3f\"$$\n";
|
||||
F64 r_ankle_a fmtstr
|
||||
"$$DA-TRM,A=\"R.Ankle Angle :%8.3f\"$$\n";
|
||||
F64 l_ankle_a fmtstr
|
||||
"$$DA-TRM,A=\"L.Ankle Angle :%8.3f\"$$\n";
|
||||
|
||||
};
|
||||
|
||||
U0 MDInit(ManDefineStruct *md)
|
||||
{
|
||||
MemSet(md,0,sizeof(ManDefineStruct));
|
||||
|
||||
md->head_rad =5.0;
|
||||
|
||||
md->torso_len =35.0;
|
||||
md->arm_len =30.0;
|
||||
md->hand_len =8.0;
|
||||
md->leg_len =32.0;
|
||||
md->foot_len =16.0;
|
||||
md->torso_width=20.0;
|
||||
md->torso_depth=10.0;
|
||||
md->arm_rad =3.5;
|
||||
md->hand_rad =2.0;
|
||||
md->leg_rad =4.0;
|
||||
md->foot_rad =3.0;
|
||||
|
||||
md->r_shoulder_a1 =30;
|
||||
md->l_shoulder_a1 =-30;
|
||||
md->r_hip_a1 =-45;
|
||||
md->l_hip_a1 =45;
|
||||
|
||||
md->r_shoulder_a2 =10;
|
||||
md->l_shoulder_a2 =10;
|
||||
md->r_hip_a2 =-5;
|
||||
md->l_hip_a2 =-5;
|
||||
|
||||
md->r_elbow_a =30;
|
||||
md->l_elbow_a =0;
|
||||
md->r_knee_a =0;
|
||||
md->l_knee_a =30;
|
||||
|
||||
md->r_wrist_a =0;
|
||||
md->l_wrist_a =0;
|
||||
md->r_ankle_a =0;
|
||||
md->l_ankle_a =0;
|
||||
}
|
||||
|
||||
U0 MDCorrect(ManDefineStruct *md)
|
||||
{
|
||||
md->r_ankle_a =-md->r_ankle_a;
|
||||
md->l_ankle_a =-md->l_ankle_a;
|
||||
md->r_knee_a =-md->r_knee_a;
|
||||
md->l_knee_a =-md->l_knee_a;
|
||||
md->r_hip_a2 =-md->r_hip_a2;
|
||||
md->r_shoulder_a2=-md->r_shoulder_a2;
|
||||
md->r_ankle_a+=90;
|
||||
md->l_ankle_a+=90;
|
||||
|
||||
md->foot_len-=md->leg_rad;
|
||||
|
||||
md->r_elbow_a+=md->r_shoulder_a1;
|
||||
md->l_elbow_a+=md->l_shoulder_a1;
|
||||
md->r_knee_a+=md->r_hip_a1;
|
||||
md->l_knee_a+=md->l_hip_a1;
|
||||
|
||||
md->r_wrist_a+=md->r_elbow_a;
|
||||
md->l_wrist_a+=md->l_elbow_a;
|
||||
md->r_ankle_a+=md->r_knee_a;
|
||||
md->l_ankle_a+=md->l_knee_a;
|
||||
}
|
||||
|
||||
I64 AddVertex(ManDefineStruct *md,I64 x,I64 y,I64 z)
|
||||
{
|
||||
I64 res=m->vertex_cnt++;
|
||||
m->v[res].x=-x;
|
||||
m->v[res].y=-y-md->leg_len-md->foot_rad*2;
|
||||
m->v[res].z=-z;
|
||||
return res;
|
||||
}
|
||||
|
||||
I64 AddTri(ManDefineStruct *,I64 c,I64 n0,I64 n1,I64 n2)
|
||||
{
|
||||
I64 res=m->tri_cnt++;
|
||||
m->t[res].color=c;
|
||||
m->t[res].nums[0]=n1;
|
||||
m->t[res].nums[1]=n0;
|
||||
m->t[res].nums[2]=n2;
|
||||
return res;
|
||||
}
|
||||
|
||||
U0 AddBox(ManDefineStruct *md,I64 c,I64 x1,I64 y1,I64 z1,
|
||||
F64 w,F64 h,F64 d,F64 h2,F64 h3,F64 az,F64 ay,F64 ax,
|
||||
I64 *ox,I64 *oy,I64 *oz)
|
||||
{
|
||||
I64 *r;
|
||||
I64 p1a,p2a,p3a,p4a;
|
||||
I64 p1b,p2b,p3b,p4b;
|
||||
I64 wx=w/2,wy=0,wz=0,hx=0,hy=h,hz=0,h2x=0,h2y=h2,h2z=0,
|
||||
h3x=0,h3y=h3,h3z=0,dx=0,dy=0,dz=d/2;
|
||||
|
||||
r=Mat4x4IdentNew;
|
||||
Mat4x4RotZ(r,az*ã/180.0);
|
||||
Mat4x4RotY(r,ay*ã/180.0);
|
||||
Mat4x4RotX(r,ax*ã/180.0);
|
||||
Mat4x4MulXYZ(r,&wx,&wy,&wz);
|
||||
Mat4x4MulXYZ(r,&hx,&hy,&hz);
|
||||
Mat4x4MulXYZ(r,&h2x,&h2y,&h2z);
|
||||
Mat4x4MulXYZ(r,&h3x,&h3y,&h3z);
|
||||
Mat4x4MulXYZ(r,&dx,&dy,&dz);
|
||||
|
||||
p1a=AddVertex(md,x1+dx -wx+h2x,y1+dy -wy+h2y,z1+dz -wz+h2z);
|
||||
p2a=AddVertex(md,x1+dx +wx+h2x,y1+dy +wy+h2y,z1+dz +wz+h2z);
|
||||
p3a=AddVertex(md,x1+dx+hx-wx ,y1+dy+hy-wy ,z1+dz+hz-wz);
|
||||
p4a=AddVertex(md,x1+dx+hx+wx ,y1+dy+hy+wy ,z1+dz+hz+wz);
|
||||
AddTri(md,c,p1a,p2a,p3a);
|
||||
AddTri(md,c,p4a,p3a,p2a);
|
||||
|
||||
p1b=AddVertex(md,x1-dx -wx+h2x,y1-dy -wy+h2y,z1-dz -wz+h2z);
|
||||
p2b=AddVertex(md,x1-dx +wx+h2x,y1-dy +wy+h2y,z1-dz +wz+h2z);
|
||||
p3b=AddVertex(md,x1-dx+hx-wx ,y1-dy+hy-wy ,z1-dz+hz-wz);
|
||||
p4b=AddVertex(md,x1-dx+hx+wx ,y1-dy+hy+wy ,z1-dz+hz+wz);
|
||||
AddTri(md,c,p1b,p2b,p3b);
|
||||
AddTri(md,c,p4b,p3b,p2b);
|
||||
|
||||
AddTri(md,c,p1a,p2a,p1b);
|
||||
AddTri(md,c,p2b,p1b,p2a);
|
||||
AddTri(md,c,p3a,p4a,p3b);
|
||||
AddTri(md,c,p4b,p3b,p4a);
|
||||
AddTri(md,c,p1a,p3a,p1b);
|
||||
AddTri(md,c,p3b,p1b,p3a);
|
||||
AddTri(md,c,p2a,p4a,p2b);
|
||||
AddTri(md,c,p4b,p2b,p4a);
|
||||
|
||||
*ox=x1+hx-h3x;
|
||||
*oy=y1+hy-h3y;
|
||||
*oz=z1+hz-h3z;
|
||||
|
||||
Free(r);
|
||||
}
|
||||
|
||||
U8 *Man2CSprite()
|
||||
{
|
||||
//See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
U8 *res=MAlloc(sizeof(CSpriteMeshU8s)+
|
||||
m->vertex_cnt*sizeof(CD3I32)+m->tri_cnt*sizeof(CMeshTri)+
|
||||
sprite_elem_base_sizes[SPT_END]),
|
||||
*dst=res;
|
||||
*dst++ =SPT_MESH;
|
||||
*dst(I32 *)++ =m->vertex_cnt;
|
||||
*dst(I32 *)++ =m->tri_cnt;
|
||||
MemCpy(dst,&m->v,m->vertex_cnt*sizeof(CD3I32));
|
||||
dst+=m->vertex_cnt*sizeof(CD3I32);
|
||||
MemCpy(dst,&m->t,m->tri_cnt*sizeof(CMeshTri));
|
||||
dst+=m->tri_cnt*sizeof(CMeshTri);
|
||||
*dst++ =SPT_END;
|
||||
return res;
|
||||
}
|
||||
|
||||
public U8 *ManGen()
|
||||
{
|
||||
U8 *res;
|
||||
I64 x,y,z,c1,c2,c3,c4;
|
||||
ManDefineStruct md1,md2;
|
||||
MDInit(&md1);
|
||||
|
||||
while (TRUE) {
|
||||
if (!DocForm(&md1))
|
||||
return NULL;
|
||||
MemCpy(&md2,&md1,sizeof(ManDefineStruct));
|
||||
MDCorrect(&md2);
|
||||
|
||||
c1=PopUpColorLighting("$$BK,1$$Shirt$$BK,0$$\n");
|
||||
if (c1<0) return NULL;
|
||||
c2=PopUpColorLighting("$$BK,1$$Pants$$BK,0$$\n");
|
||||
if (c2<0) return NULL;
|
||||
c3=PopUpColorLighting("$$BK,1$$Skin$$BK,0$$\n");
|
||||
if (c3<0) return NULL;
|
||||
c4=PopUpColorLighting("$$BK,1$$Shoes$$BK,0$$\n");
|
||||
if (c4<0) return NULL;
|
||||
|
||||
m=CAlloc(sizeof(Man));
|
||||
|
||||
//Head
|
||||
AddBox(&md2,c3,0,md2.torso_len+md2.head_rad*2,0,
|
||||
md2.head_rad*2,-md2.head_rad*2,md2.head_rad*2,0,0, 0,0,0,
|
||||
&x,&y,&z);
|
||||
|
||||
//Torso
|
||||
AddBox(&md2,c1,0,md2.torso_len,0,
|
||||
md2.torso_width,-md2.torso_len,md2.torso_depth,0,0, 0,0,0,
|
||||
&x,&y,&z);
|
||||
|
||||
//Right Arm
|
||||
AddBox(&md2,c1,-md2.torso_width/2-md2.arm_rad,md2.torso_len-md2.arm_rad,0,
|
||||
md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,md2.arm_rad,0,
|
||||
md2.r_shoulder_a2,0,md2.r_shoulder_a1,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,0,0,
|
||||
md2.r_shoulder_a2,0,md2.r_elbow_a,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.arm_rad*2,-md2.hand_len,md2.hand_rad*2,0,0,
|
||||
md2.r_shoulder_a2,0,md2.r_wrist_a,&x,&y,&z);
|
||||
|
||||
//Left Arm
|
||||
AddBox(&md2,c1,md2.torso_width/2+md2.arm_rad,md2.torso_len-md2.arm_rad,0,
|
||||
md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,md2.arm_rad,0,
|
||||
md2.l_shoulder_a2,0,md2.l_shoulder_a1,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.arm_rad*2,-md2.arm_len/2,md2.arm_rad*2,0,0,
|
||||
md2.l_shoulder_a2,0,md2.l_elbow_a,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.arm_rad*2,-md2.hand_len,md2.hand_rad*2,0,0,
|
||||
md2.l_shoulder_a2,0,md2.l_wrist_a,&x,&y,&z);
|
||||
|
||||
//Right Leg
|
||||
AddBox(&md2,c2,-md2.torso_width/2+md2.leg_rad,0,0,
|
||||
md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,0,
|
||||
md2.r_hip_a2,0,md2.r_hip_a1,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,md2.foot_rad,
|
||||
md2.r_hip_a2,0,md2.r_knee_a,&x,&y,&z);
|
||||
AddBox(&md2,c4,x,y,z,
|
||||
md2.leg_rad*2,-md2.foot_len,md2.foot_rad*2,md2.leg_rad,0,
|
||||
md2.r_hip_a2,0,md2.r_ankle_a,&x,&y,&z);
|
||||
|
||||
//Left Leg
|
||||
AddBox(&md2,c2,md2.torso_width/2-md2.leg_rad,0,0,
|
||||
md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,0,
|
||||
md2.l_hip_a2,0,md2.l_hip_a1,&x,&y,&z);
|
||||
AddBox(&md2,c3,x,y,z,
|
||||
md2.leg_rad*2,-md2.leg_len/2,md2.leg_rad*2,0,md2.foot_rad,
|
||||
md2.l_hip_a2,0,md2.l_knee_a,&x,&y,&z);
|
||||
AddBox(&md2,c4,x,y,z,
|
||||
md2.leg_rad*2,-md2.foot_len,md2.foot_rad*2,md2.leg_rad,0,
|
||||
md2.l_hip_a2,0,md2.l_ankle_a,&x,&y,&z);
|
||||
|
||||
res=Man2CSprite;
|
||||
"%h7c",'\n';
|
||||
Sprite(res,"\t\t$$SP,\"<1>\",BI=%d$$");
|
||||
"%h7c",'\n';
|
||||
Free(m);
|
||||
"Do another";
|
||||
if (YorN)
|
||||
Free(res);
|
||||
else
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#define T_MAN 0
|
||||
#define T_BALL 1
|
||||
|
||||
U0 Models()
|
||||
{
|
||||
I64 i;
|
||||
Bool old_form=LBts(&(DocPut)->flags,DOCf_FORM);
|
||||
DocClear;
|
||||
"Make a CSprite model. Then, cut-and-Paste it.\n\n";
|
||||
"$$LM,4$$";
|
||||
"\n\n$$BT,\"Man\",LE=T_MAN$$\n\n";
|
||||
"\n\n$$BT,\"Ball\",LE=T_BALL$$\n\n";
|
||||
"$$LM,0$$";
|
||||
i=DocMenu(DocPut);
|
||||
LBEqu(&(DocPut)->flags,DOCf_FORM,old_form);
|
||||
DocBottom;
|
||||
switch (i) {
|
||||
case T_MAN:
|
||||
ManGen;
|
||||
break;
|
||||
case T_BALL:
|
||||
BallGen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Cd(__DIR__);;
|
||||
#include "Load"
|
||||
Models;
|
||||
Reference in new issue
Block a user