TempleOSCDV4.13.ISO
This commit is contained in:
1 parent
b84bbff6db
commit
122df6338e
78 files changed
+3570
-2729
No files matched your search
+122
-96
@@ -9,7 +9,7 @@ CSprite *SpriteSetSettings(CDC *dc=NULL,CSprite *head,I64 elem_num,
|
||||
CColorROPU32 color=BLACK;
|
||||
if (dc) DCRst(dc);
|
||||
while (elem_num-->0 && res!=head) {
|
||||
switch (res->type) {
|
||||
switch (res->type&SPG_TYPE_MASK) {
|
||||
case SPT_COLOR:
|
||||
color=res->c.color;
|
||||
if (dc) dc->color=color;
|
||||
@@ -65,11 +65,10 @@ CSprite *Sprite2SpriteQue(U8 *elems)
|
||||
CSprite *res=CAlloc(sizeof(CSprite)),
|
||||
*tmpg=elems-offset(CSprite.start),*tmpg1;
|
||||
QueInit(res);
|
||||
while (tmpg->type) {
|
||||
while (tmpg->type&SPG_TYPE_MASK) {
|
||||
tmpg1=MAlloc(SpriteElemSize(tmpg)+offset(CSprite.start));
|
||||
s=SpriteElemSize(tmpg);
|
||||
MemCpy(&tmpg1->start,&tmpg->start,s);
|
||||
tmpg1->sel=FALSE;
|
||||
QueIns(tmpg1,res->last);
|
||||
tmpg(U8 *)+=s;
|
||||
}
|
||||
@@ -117,8 +116,8 @@ U0 SpriteSetOrigin(CSprite *head,I64 dx,I64 dy,I64 dz)
|
||||
CD3I32 *p;
|
||||
CSprite *tmpg=head->next;
|
||||
while (tmpg!=head) {
|
||||
if (tmpg->sel)
|
||||
switch (tmpg->type) {
|
||||
if (Bt(&tmpg->type,SPf_SEL))
|
||||
switch (tmpg->type&SPG_TYPE_MASK) {
|
||||
case SPT_ARROW:
|
||||
case SPT_LINE:
|
||||
case SPT_PLANAR_SYMMETRY:
|
||||
@@ -203,7 +202,7 @@ CSprite *SpriteTransformCircle(I64 *r,CSprite *tmpg)
|
||||
tmpg1->pwha.height=ToI64(m2)/0x10000;
|
||||
tmpg1->pwha.angle=-a1;
|
||||
|
||||
tmpg1->sel=tmpg->sel;
|
||||
tmpg1->type|=tmpg->type&SPF_SEL;
|
||||
return tmpg1;
|
||||
}
|
||||
|
||||
@@ -212,9 +211,9 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tmpg)
|
||||
I64 x,y,z;
|
||||
F64 m1,a1,m2,a2,s,c,x_radius=tmpg->pwha.width<<16,
|
||||
y_radius=tmpg->pwha.height<<16;
|
||||
CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(tmpg->type));
|
||||
CSprite *tmpg1=CAlloc(SpriteElemQuedBaseSize(tmpg->type&SPG_TYPE_MASK));
|
||||
tmpg1->type=tmpg->type;
|
||||
if (tmpg->type==SPT_POLYGON)
|
||||
if (tmpg->type&SPG_TYPE_MASK==SPT_POLYGON)
|
||||
tmpg1->pwhas.sides=tmpg->pwhas.sides;
|
||||
|
||||
x=tmpg->pwha.x1; y=tmpg->pwha.y1; z=0;
|
||||
@@ -244,7 +243,7 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tmpg)
|
||||
if (tmpg1->pwha.height<1) tmpg1->pwha.height=1;
|
||||
tmpg1->pwha.angle=-a1;
|
||||
|
||||
tmpg1->sel=tmpg->sel;
|
||||
tmpg1->type|=tmpg->type&SPF_SEL;
|
||||
return tmpg1;
|
||||
}
|
||||
|
||||
@@ -286,7 +285,7 @@ CSprite *SpriteTransformRect(I64 *r,CSprite *tmpg,F64
|
||||
tmpg1->ppa.y2=tmpg1->ppa.y1+h;
|
||||
tmpg1->ppa.angle=-a1;
|
||||
|
||||
tmpg1->sel=tmpg->sel;
|
||||
tmpg1->type|=tmpg->type&SPF_SEL;
|
||||
return tmpg1;
|
||||
}
|
||||
|
||||
@@ -380,8 +379,8 @@ U0 SpriteTransform(I64 *r,CSprite *head)
|
||||
CD3I32 *p;
|
||||
CSprite *tmpg=head->next,head2,*tmpg1,*tmpg2,*tmpg3;
|
||||
while (tmpg!=head) {
|
||||
if (tmpg->sel)
|
||||
switch (tmpg->type) {
|
||||
if (Bt(&tmpg->type,SPf_SEL))
|
||||
switch (tmpg->type&SPG_TYPE_MASK) {
|
||||
case SPT_WIDTH:
|
||||
tmpg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536;
|
||||
if (tmpg->w.width<0) tmpg->w.width=0;
|
||||
@@ -502,11 +501,10 @@ U0 SpriteTransform(I64 *r,CSprite *head)
|
||||
Free(tmpg1);
|
||||
tmpg1=tmpg2;
|
||||
}
|
||||
tmpg3->type=SPT_POLYPT;
|
||||
tmpg3->type=SPT_POLYPT|tmpg->type&SPF_SEL;
|
||||
tmpg3->npu.num=num;
|
||||
QueIns(tmpg3,tmpg);
|
||||
QueRem(tmpg);
|
||||
tmpg3->sel=tmpg->sel;
|
||||
Free(tmpg);
|
||||
tmpg=tmpg3;
|
||||
break;
|
||||
@@ -559,7 +557,7 @@ I64 SpriteQueSelCnt(CSprite *head,Bool val=TRUE)
|
||||
CSprite *tmpg=head->next;
|
||||
val=ToBool(val);
|
||||
while (tmpg!=head) {
|
||||
if (ToBool(tmpg->sel)==val)
|
||||
if (Bt(&tmpg->type,SPf_SEL)==val)
|
||||
res++;
|
||||
tmpg=tmpg->next;
|
||||
}
|
||||
@@ -571,7 +569,7 @@ I64 SpriteQueSelAll(CSprite *head,Bool val=TRUE)
|
||||
I64 res=0;
|
||||
CSprite *tmpg=head->next;
|
||||
while (tmpg!=head) {
|
||||
tmpg->sel=val;
|
||||
BEqu(&tmpg->type,SPf_SEL,val);
|
||||
res++;
|
||||
tmpg=tmpg->next;
|
||||
}
|
||||
@@ -590,7 +588,7 @@ CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *head,I64 *_cur_elem_num)
|
||||
tmpg=SpriteSetSettings(,head,doc_e->left_exp);
|
||||
if (tmpg!=head) {
|
||||
tmpg=MAllocIdent(tmpg);
|
||||
tmpg->sel=Bt(&doc_e->type,DOCEt_SEL);
|
||||
BEqu(&tmpg->type,SPf_SEL,Bt(&doc_e->type,DOCEt_SEL));
|
||||
if (*_cur_elem_num==doc_e->left_exp) {
|
||||
*_cur_elem_num=num;
|
||||
found=TRUE;
|
||||
@@ -627,8 +625,8 @@ U0 SpriteSideBarPickNew(CDoc *doc,CSprite *head,I64 old_num)
|
||||
DocPrint(doc,"$$LTBLUE$$");
|
||||
doc_e=DocPrint(doc,"$$MU-UL,\"%$$Q\",LE=%d$$\n",st,cur_elem_num++);
|
||||
}
|
||||
BEqu(&doc_e->de_flags,DOCEf_SEL,tmpg->sel);
|
||||
BEqu(&doc_e->type,DOCEt_SEL,tmpg->sel);
|
||||
BEqu(&doc_e->de_flags,DOCEf_SEL,Bt(&tmpg->type,&SPf_SEL));
|
||||
BEqu(&doc_e->type,DOCEt_SEL,Bt(&tmpg->type,SPf_SEL));
|
||||
Free(st);
|
||||
tmpg=tmpg->next;
|
||||
}
|
||||
@@ -716,25 +714,27 @@ Bool SpriteEdText(CSprite **_head,I64 *_cur_elem_num)
|
||||
}
|
||||
|
||||
#define SPED_SEL_UNSEL_ALL 0
|
||||
#define SPED_SEL 1
|
||||
#define SPED_UNSEL 2
|
||||
#define SPED_SHIFT_PTS 3
|
||||
#define SPED_SHIFT_RECTS 4
|
||||
#define SPED_SHIFT_SEL 5
|
||||
#define SPED_TRANSFORM_SEL 6
|
||||
#define SPED_SET_ORIGIN 7
|
||||
#define SPED_SHIFT_SUB_ORIGIN 8
|
||||
#define SPED_TEXT_ED 9
|
||||
#define SPED_INS_CLIPBOARD 10
|
||||
#define SPED_MAIN_MENU 11
|
||||
#define SPED_EXIT 12
|
||||
#define SPED_SEL 2
|
||||
#define SPED_SEL_RECTS 3
|
||||
#define SPED_UNSEL 4
|
||||
#define SPED_UNSEL_RECTS 5
|
||||
#define SPED_SHIFT_PTS 6
|
||||
#define SPED_SHIFT_RECTS 7
|
||||
#define SPED_SHIFT_SEL 8
|
||||
#define SPED_TRANSFORM_SEL 9
|
||||
#define SPED_SET_ORIGIN 10
|
||||
#define SPED_SHIFT_SUB_ORIGIN 11
|
||||
#define SPED_TEXT_ED 12
|
||||
#define SPED_INS_CLIPBOARD 13
|
||||
#define SPED_MAIN_MENU 14
|
||||
#define SPED_EXIT 15
|
||||
|
||||
U0 GrInit3()
|
||||
{
|
||||
DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unselect All\0"
|
||||
"Select\0Unselect\0Shift Points\0Shift Rects\0Shift Selected\0"
|
||||
"Transform Selected\0Set Origin\0Insert Shift SubOrigin\0"
|
||||
"Edit as Text\0Insert Clipboard\0Main Menu\0");
|
||||
DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unselect All\0 \0Select\0"
|
||||
"Select Rects\0Unselect\0Unselect Rects\0Shift Points\0Shift Rects\0"
|
||||
"Shift Selected\0Transform Selected\0Set Origin\0"
|
||||
"Insert Shift SubOrigin\0Edit as Text\0Insert Clipboard\0Main Menu\0");
|
||||
}
|
||||
GrInit3;
|
||||
|
||||
@@ -748,7 +748,9 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
|
||||
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.DD.Z\"$$\n\n"
|
||||
"$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=SPED_SEL_UNSEL_ALL$$\n"
|
||||
"$$MU-UL,\"Select Elems\",LE=SPED_SEL$$\n"
|
||||
"$$MU-UL,\"Unsel Elems\",LE=SPED_UNSEL$$\n\n"
|
||||
"$$MU-UL,\"Select Elems with Rects\",LE=SPED_SEL_RECTS$$\n"
|
||||
"$$MU-UL,\"Unsel Elems\",LE=SPED_UNSEL$$\n"
|
||||
"$$MU-UL,\"Unsel Elems with Rects\",LE=SPED_UNSEL_RECTS$$\n\n"
|
||||
"$$MU-UL,\"Shift Points\",LE=SPED_SHIFT_PTS$$\n"
|
||||
"$$MU-UL,\"Shift Points with Rects\",LE=SPED_SHIFT_RECTS$$\n"
|
||||
"$$MU-UL,\"Shift Selected Elems\",LE=SPED_SHIFT_SEL$$\n"
|
||||
@@ -780,10 +782,21 @@ I64 PopUpSpriteEd(CSprite **_head,I64 *_cur_elem_num)
|
||||
class CEdSprite
|
||||
{
|
||||
CEdSprite *next,*last;
|
||||
CSprite *g;
|
||||
I32 type,num,flags,xx,yy,zz;
|
||||
I32 *x,*y,*z,*w,*h;
|
||||
};
|
||||
|
||||
CEdSprite *EdSpriteNew(I64 type,CSprite *tmpg)
|
||||
{
|
||||
CEdSprite *res=CAlloc(sizeof(CEdSprite));
|
||||
res->g=tmpg;
|
||||
if (tmpg->type&SPF_SEL)
|
||||
res->flags|=SPEDF_SEL;
|
||||
res->type=type;
|
||||
return res;
|
||||
}
|
||||
|
||||
U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
|
||||
{
|
||||
I64 i,num=0;
|
||||
@@ -792,12 +805,11 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
|
||||
CEdSprite *tmpes;
|
||||
CSprite *tmpg=elems-offset(CSprite.start);
|
||||
QueInit(head);
|
||||
while (tmpg->type) {
|
||||
switch (tmpg->type) {
|
||||
while (tmpg->type&SPG_TYPE_MASK) {
|
||||
switch (tmpg->type&SPG_TYPE_MASK) {
|
||||
case SPT_ELLIPSE:
|
||||
case SPT_POLYGON:
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_WIDTH_HEIGHT;
|
||||
tmpes=EdSpriteNew(SPEDT_WIDTH_HEIGHT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&tmpg->pwha.x1;
|
||||
@@ -812,8 +824,7 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
|
||||
case SPT_LINE:
|
||||
case SPT_ARROW:
|
||||
case SPT_PLANAR_SYMMETRY:
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&tmpg->pp.x2;
|
||||
@@ -829,8 +840,7 @@ U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CEdSprite *head)
|
||||
case SPT_FLOOD_FILL_NOT:
|
||||
case SPT_CIRCLE:
|
||||
pq_x1_y1:
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&tmpg->p.x1;
|
||||
@@ -845,8 +855,7 @@ pq_x1_y1:
|
||||
case SPT_POLYLINE:
|
||||
ptr=&tmpg->nu.u;
|
||||
for (i=0;i<tmpg->nu.num;i++) {
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&ptr[i<<1];
|
||||
@@ -856,8 +865,7 @@ pq_x1_y1:
|
||||
}
|
||||
break;
|
||||
case SPT_POLYPT:
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&tmpg->npu.x;
|
||||
@@ -871,8 +879,7 @@ pq_x1_y1:
|
||||
case SPT_BSPLINE3_CLOSED:
|
||||
p=&tmpg->nu.u;
|
||||
for (i=0;i<tmpg->nu.num;i++) {
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&p[i].x;
|
||||
@@ -885,8 +892,7 @@ pq_x1_y1:
|
||||
case SPT_MESH:
|
||||
break;
|
||||
case SPT_SHIFTABLE_MESH:
|
||||
tmpes=CAlloc(sizeof(CEdSprite));
|
||||
tmpes->type=SPEDT_SIMPLE_PT;
|
||||
tmpes=EdSpriteNew(SPEDT_SIMPLE_PT,tmpg);
|
||||
tmpes->xx=x;
|
||||
tmpes->yy=y;
|
||||
tmpes->x=&tmpg->pmu.x;
|
||||
@@ -952,7 +958,7 @@ U0 SpriteCtrlPtsMove(CEdSprite *head,I64 dx,I64 dy)
|
||||
}
|
||||
}
|
||||
|
||||
Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
|
||||
Bool SpriteSelUnselShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
|
||||
{
|
||||
I64 msg_code,a1,a2,xx,yy,xx2,yy2,dd,best_dd,cur_elem_num;
|
||||
Bool res=TRUE;
|
||||
@@ -968,6 +974,8 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
|
||||
1<<MSG_IP_R_UP|1<<MSG_IP_L_DOWN|1<<MSG_KEY_DOWN)) {
|
||||
case MSG_IP_L_DOWN:
|
||||
switch (mode) {
|
||||
case SPED_SEL:
|
||||
case SPED_UNSEL:
|
||||
case SPED_SHIFT_PTS:
|
||||
xx=a1; yy=a2;
|
||||
best_dd=MAX_I64;
|
||||
@@ -990,9 +998,15 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
|
||||
tmpes=tmpes->next;
|
||||
}
|
||||
cur_elem_num=best_es->num;
|
||||
best_es->flags|=SPEDF_SEL;
|
||||
if (mode!=SPED_UNSEL) {
|
||||
best_es->flags|=SPEDF_SEL;
|
||||
best_es->g->type|=SPF_SEL;
|
||||
} else {
|
||||
best_es->flags&=~SPEDF_SEL;
|
||||
best_es->g->type&=~SPF_SEL;
|
||||
}
|
||||
break;
|
||||
case SPED_SHIFT_RECTS:
|
||||
start:
|
||||
xx2=xx=a1; yy2=yy=a2;
|
||||
while (TRUE) {
|
||||
SpriteCtrlPtsDraw(dc,&head);
|
||||
@@ -1012,37 +1026,62 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
|
||||
switch (tmpes->type) {
|
||||
case SPEDT_SIMPLE_PT:
|
||||
if (xx<=*tmpes->x+tmpes->xx<=xx2 &&
|
||||
yy<=*tmpes->y+tmpes->yy<=yy2)
|
||||
tmpes->flags|=SPEDF_SEL;
|
||||
yy<=*tmpes->y+tmpes->yy<=yy2) {
|
||||
if (mode!=SPED_UNSEL_RECTS) {
|
||||
tmpes->flags|=SPEDF_SEL;
|
||||
tmpes->g->type|=SPF_SEL;
|
||||
} else {
|
||||
tmpes->flags&=~SPEDF_SEL;
|
||||
tmpes->g->type&=~SPF_SEL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SPEDT_WIDTH_HEIGHT:
|
||||
if (xx<=*tmpes->x+*tmpes->w+tmpes->xx<=xx2 &&
|
||||
yy<=*tmpes->y+*tmpes->h+tmpes->yy<=yy2)
|
||||
tmpes->flags|=SPEDF_SEL;
|
||||
yy<=*tmpes->y+*tmpes->h+tmpes->yy<=yy2) {
|
||||
if (mode!=SPED_UNSEL_RECTS) {
|
||||
tmpes->flags|=SPEDF_SEL;
|
||||
tmpes->g->type|=SPF_SEL;
|
||||
} else {
|
||||
tmpes->flags&=~SPEDF_SEL;
|
||||
tmpes->g->type&=~SPF_SEL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
tmpes=tmpes->next;
|
||||
}
|
||||
case SPED_SEL_RECTS:
|
||||
case SPED_UNSEL_RECTS:
|
||||
break;
|
||||
case SPED_SHIFT_RECTS:
|
||||
do {
|
||||
SpriteCtrlPtsDraw(dc,&head);
|
||||
msg_code=ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN);
|
||||
if (msg_code==MSG_KEY_DOWN) goto gs_key;
|
||||
} while (msg_code!=MSG_IP_L_DOWN);
|
||||
xx=a1;yy=a2;
|
||||
break;
|
||||
end:
|
||||
}
|
||||
switch (mode) {
|
||||
case SPED_SHIFT_PTS:
|
||||
case SPED_SHIFT_RECTS:
|
||||
do {
|
||||
SpriteCtrlPtsDraw(dc,&head);
|
||||
msg_code=ScanMsg(&a1,&a2,1<<MSG_KEY_DOWN|1<<MSG_IP_L_DOWN);
|
||||
if (msg_code==MSG_KEY_DOWN) goto gs_key;
|
||||
} while (msg_code!=MSG_IP_L_DOWN);
|
||||
xx=a1;yy=a2;
|
||||
if (msg_code=ScanMsg(&a1,&a2,1<<MSG_IP_MOVE|1<<MSG_IP_L_UP)) {
|
||||
SpriteCtrlPtsMove(&head,a1-xx,a2-yy);
|
||||
xx=a1;yy=a2;
|
||||
}
|
||||
} while (msg_code!=MSG_IP_L_UP);
|
||||
tmpes=head.next;
|
||||
while (tmpes!=&head) {
|
||||
tmpes->flags&=~SPEDF_SEL;
|
||||
tmpes->g->type&=~SPF_SEL;
|
||||
tmpes=tmpes->next;
|
||||
}
|
||||
break;
|
||||
}
|
||||
do {
|
||||
SpriteCtrlPtsDraw(dc,&head);
|
||||
if (msg_code=ScanMsg(&a1,&a2,1<<MSG_IP_MOVE|1<<MSG_IP_L_UP)) {
|
||||
SpriteCtrlPtsMove(&head,a1-xx,a2-yy);
|
||||
xx=a1;yy=a2;
|
||||
}
|
||||
} while (msg_code!=MSG_IP_L_UP);
|
||||
tmpes=head.next;
|
||||
while (tmpes!=&head) {
|
||||
tmpes->flags&=~SPEDF_SEL;
|
||||
tmpes=tmpes->next;
|
||||
}
|
||||
break;
|
||||
case MSG_KEY_DOWN:
|
||||
gs_key:
|
||||
@@ -1054,11 +1093,11 @@ gs_key:
|
||||
goto gs_done;
|
||||
case 'p':
|
||||
case 'P':
|
||||
mode=SPED_SHIFT_PTS;
|
||||
mode&=~1;
|
||||
break;
|
||||
case 'r':
|
||||
case 'R':
|
||||
mode=SPED_SHIFT_RECTS;
|
||||
mode|=1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -1084,7 +1123,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
|
||||
Bool unlock;
|
||||
I64 i,r[16],msg_code,a1,a2,xx,yy,
|
||||
old_de_flags;
|
||||
CSprite *cur_elem,*head2,*next,*last,*tmpg,*insert_pt;
|
||||
CSprite *head2,*next,*last,*tmpg,*insert_pt;
|
||||
|
||||
old_de_flags=doc_ce->de_flags;
|
||||
tmpb=doc_ce->bin_data;
|
||||
@@ -1105,23 +1144,6 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
|
||||
else
|
||||
SpriteQueSelAll(*_head,FALSE);
|
||||
break;
|
||||
case SPED_SEL:
|
||||
case SPED_UNSEL:
|
||||
doc_ce->de_flags=old_de_flags;
|
||||
doc->cur_sprite=tmpb->data;
|
||||
do {
|
||||
doc->nearest_sprite_elem_num=0;
|
||||
msg_code=GetMsg(&a1,&a2,1<<MSG_IP_L_DOWN|1<<MSG_IP_R_UP);
|
||||
Refresh(2);
|
||||
if (msg_code==MSG_IP_L_DOWN) {
|
||||
*_cur_elem_num=doc->nearest_sprite_elem_num;
|
||||
cur_elem=SpriteSetSettings(,*_head,*_cur_elem_num);
|
||||
cur_elem->sel=ToBool(i==SPED_SEL);
|
||||
GetMsg(,,1<<MSG_IP_L_UP);
|
||||
}
|
||||
} while (msg_code!=MSG_IP_R_UP);
|
||||
doc->cur_sprite=NULL;
|
||||
break;
|
||||
case SPED_SET_ORIGIN:
|
||||
SpriteQueSelAll(*_head);
|
||||
doc_ce->de_flags=old_de_flags;
|
||||
@@ -1146,6 +1168,10 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
|
||||
if (!SpriteQueSelCnt(*_head,FALSE))
|
||||
SpriteQueSelAll(*_head,FALSE);
|
||||
break;
|
||||
case SPED_SEL:
|
||||
case SPED_SEL_RECTS:
|
||||
case SPED_UNSEL:
|
||||
case SPED_UNSEL_RECTS:
|
||||
case SPED_SHIFT_PTS:
|
||||
case SPED_SHIFT_RECTS:
|
||||
RegOneTimePopUp(ARf_CSPRITE_PTS_RECTANGLES,
|
||||
@@ -1154,7 +1180,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y,
|
||||
"Press '$$GREEN$$r$$FG$$' after one rectangle\n"
|
||||
"to OR another rectangle.\n");
|
||||
doc_ce->de_flags=old_de_flags;
|
||||
if (SpriteShiftPts(tmpb->data,x,y,_cur_elem_num,i)) {
|
||||
if (SpriteSelUnselShiftPts(tmpb->data,x,y,_cur_elem_num,i)) {
|
||||
QueDel(*_head);
|
||||
Free(*_head);
|
||||
*_head=Sprite2SpriteQue(tmpb->data);
|
||||
|
||||
Reference in new issue
Block a user