TempleOSCD_150216.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:15 +02:00
1 parent 64f679eeb9
commit 401601816c
531 files changed
+23341 -22071

No files matched your search

+55 -56
View File
@@ -5,36 +5,36 @@ U8 polypt_map[9]={0,1,2,3,0,4,5,6,7};
I64 sprite_elem_base_sizes[SPT_NUM_TYPES]=
{
offset(CSprite.x1)-offset(CSprite.start), //SPT_END
1+offset(CSprite.color)-offset(CSprite.start), //SPT_COLOR
2+offset(CSprite.dither_color)-offset(CSprite.start), //SPT_DITHER_COLOR
offset(CSprite.y1)-offset(CSprite.start), //SPT_WIDTH
offset(CSprite.linespeed)-offset(CSprite.start), //SPT_PLANAR_SYMMETRY
offset(CSprite.x1)-offset(CSprite.start), //SPT_TRANSFORM_ON
offset(CSprite.x1)-offset(CSprite.start), //SPT_TRANSFORM_OFF
offset(CSprite.x2)-offset(CSprite.start), //SPT_SHIFT
offset(CSprite.x2)-offset(CSprite.start), //SPT_PT
offset(CSprite.y2)-offset(CSprite.start), //SPT_POLYPT
offset(CSprite.linespeed)-offset(CSprite.start), //SPT_LINE
offset(CSprite.y1)-offset(CSprite.start), //SPT_POLYLINE
offset(CSprite.linespeed)-offset(CSprite.start), //SPT_RECT
offset(CSprite.sides)-offset(CSprite.start), //SPT_ROTATED_RECT
offset(CSprite.y2)-offset(CSprite.start), //SPT_CIRCLE
offset(CSprite.sides)-offset(CSprite.start), //SPT_ELLIPSE
sizeof(CSprite)-offset(CSprite.start), //SPT_POLYGON
offset(CSprite.y1)-offset(CSprite.start), //SPT_BSPLINE2
offset(CSprite.y1)-offset(CSprite.start), //SPT_BSPLINE2_CLOSED
offset(CSprite.y1)-offset(CSprite.start), //SPT_BSPLINE3
offset(CSprite.y1)-offset(CSprite.start), //SPT_BSPLINE3_CLOSED
offset(CSprite.x2)-offset(CSprite.start), //SPT_FLOOD_FILL
offset(CSprite.x2)-offset(CSprite.start), //SPT_FLOOD_FILL_NOT
offset(CSprite.linespeed)-offset(CSprite.start), //SPT_BITMAP
offset(CSprite.x2)-offset(CSprite.start), //SPT_MESH
offset(CSprite.shiftable_tri_cnt)+sizeof(I32)-offset(CSprite.start), //SPT_SHIFTABLE_MESH
offset(CSprite.linespeed)-offset(CSprite.start), //SPT_ARROW
offset(CSprite.st)-offset(CSprite.start), //SPT_TEXT
offset(CSprite.st)-offset(CSprite.start), //SPT_TEXT_BOX
offset(CSprite.st)-offset(CSprite.start), //SPT_TEXT_DIAMOND
sizeof(CSpriteBase), //SPT_END
sizeof(CSpriteColor), //SPT_COLOR
sizeof(CSpriteDitherColor), //SPT_DITHER_COLOR
sizeof(CSpriteWidth), //SPT_WIDTH
sizeof(CSpritePtPt), //SPT_PLANAR_SYMMETRY
sizeof(CSpriteBase), //SPT_TRANSFORM_ON
sizeof(CSpriteBase), //SPT_TRANSFORM_OFF
sizeof(CSpritePt), //SPT_SHIFT
sizeof(CSpritePt), //SPT_PT
sizeof(CSpriteNumPtU8s), //SPT_POLYPT
sizeof(CSpritePtPt), //SPT_LINE
sizeof(CSpriteNumU8s), //SPT_POLYLINE
sizeof(CSpritePtPt), //SPT_RECT
sizeof(CSpritePtPtAng), //SPT_ROTATED_RECT
sizeof(CSpritePtRad), //SPT_CIRCLE
sizeof(CSpritePtWHAng), //SPT_ELLIPSE
sizeof(CSpritePtWHAngSides), //SPT_POLYGON
sizeof(CSpriteNumU8s), //SPT_BSPLINE2
sizeof(CSpriteNumU8s), //SPT_BSPLINE2_CLOSED
sizeof(CSpriteNumU8s), //SPT_BSPLINE3
sizeof(CSpriteNumU8s), //SPT_BSPLINE3_CLOSED
sizeof(CSpritePt), //SPT_FLOOD_FILL
sizeof(CSpritePt), //SPT_FLOOD_FILL_NOT
sizeof(CSpritePtWHU8s), //SPT_BITMAP
sizeof(CSpriteMeshU8s), //SPT_MESH
sizeof(CSpritePtMeshU8s), //SPT_SHIFTABLE_MESH
sizeof(CSpritePtPt), //SPT_ARROW
sizeof(CSpritePtStr), //SPT_TEXT
sizeof(CSpritePtStr), //SPT_TEXT_BOX
sizeof(CSpritePtStr), //SPT_TEXT_DIAMOND
};
I64 SpriteElemQuedBaseSize(I64 type)
@@ -47,30 +47,30 @@ I64 SpriteElemSize(CSprite *tempg)
I64 i=sprite_elem_base_sizes[tempg->type];
switch (tempg->type) {
case SPT_POLYLINE:
i+=tempg->num*sizeof(CD2I32);
i+=tempg->nu.num*sizeof(CD2I32);
break;
case SPT_TEXT:
case SPT_TEXT_BOX:
case SPT_TEXT_DIAMOND:
i+=StrLen(tempg->st)+1;
i+=StrLen(tempg->ps.st)+1;
break;
case SPT_BITMAP:
i+=((tempg->width+7)&~7)*tempg->height;
i+=((tempg->pwhu.width+7)&~7)*tempg->pwhu.height;
break;
case SPT_POLYPT:
i+=(tempg->num*3+7)>>3;
i+=(tempg->npu.num*3+7)>>3;
break;
case SPT_BSPLINE2:
case SPT_BSPLINE3:
case SPT_BSPLINE2_CLOSED:
case SPT_BSPLINE3_CLOSED:
i+=tempg->num*sizeof(CD3I32);
i+=tempg->nu.num*sizeof(CD3I32);
break;
case SPT_MESH:
i+=tempg->vertex_cnt*sizeof(CD3I32)+tempg->tri_cnt*sizeof(CMeshTri);
i+=tempg->mu.vertex_cnt*sizeof(CD3I32)+tempg->mu.tri_cnt*sizeof(CMeshTri);
break;
case SPT_SHIFTABLE_MESH:
i+=tempg->shiftable_vertex_cnt*sizeof(CD3I32)+tempg->shiftable_tri_cnt*sizeof(CMeshTri);
i+=tempg->pmu.vertex_cnt*sizeof(CD3I32)+tempg->pmu.tri_cnt*sizeof(CMeshTri);
break;
}
return i;
@@ -105,12 +105,11 @@ public U8 *DC2Sprite(CDC *tempb)
sprite_elem_base_sizes[SPT_END])
(U8 *)-offset(CSprite.start);
tempg->type=SPT_BITMAP;
tempg->width=tempb->width;
tempg->height=tempb->height;
tempg->x2=0;
tempg->y2=0;
MemCpy(tempg(U8 *)+offset(CSprite.linespeed),tempb->body,
tempb->width_internal*tempb->height);
tempg->pwhu.width=tempb->width;
tempg->pwhu.height=tempb->height;
tempg->pwhu.x1=0;
tempg->pwhu.y1=0;
MemCpy(&tempg->pwhu.u,tempb->body,tempb->width_internal*tempb->height);
return tempg(U8 *)+offset(CSprite.start);
}
@@ -121,56 +120,56 @@ public U8 *SpriteElem2OneLineSummary(CSprite *tempg)
StrPrint(buf,"%Z",tempg->type,"ST_SPRITE_ELEM_TYPES");
switch (tempg->type) {
case SPT_COLOR:
CatPrint(buf," %s",Color2Str(buf2,tempg->color));
CatPrint(buf," %s",Color2Str(buf2,tempg->c.color));
break;
case SPT_DITHER_COLOR:
CatPrint(buf," %s",Color2Str(buf2,ROPF_DITHER|tempg->dither_color.u8[0]|tempg->dither_color.u8[1]<<COLORROP_BITS));
CatPrint(buf," %s",Color2Str(buf2,ROPF_DITHER|tempg->d.dither_color.u8[0]|tempg->d.dither_color.u8[1]<<COLORROP_BITS));
break;
case SPT_PT:
case SPT_FLOOD_FILL:
case SPT_FLOOD_FILL_NOT:
case SPT_SHIFT:
CatPrint(buf," (%d,%d)",tempg->x1,tempg->y1);
CatPrint(buf," (%d,%d)",tempg->p.x1,tempg->p.y1);
break;
case SPT_LINE:
case SPT_ARROW:
case SPT_PLANAR_SYMMETRY:
case SPT_RECT:
case SPT_ROTATED_RECT:
CatPrint(buf," (%d,%d),(%d,%d)",tempg->x1,tempg->y1,tempg->x2,tempg->y2);
CatPrint(buf," (%d,%d),(%d,%d)",tempg->pp.x1,tempg->pp.y1,tempg->pp.x2,tempg->pp.y2);
break;
case SPT_CIRCLE:
CatPrint(buf," (%d,%d):%dR",tempg->x1,tempg->y1,tempg->x2);
CatPrint(buf," (%d,%d):%dR",tempg->pr.x1,tempg->pr.y1,tempg->pr.radius);
break;
case SPT_WIDTH:
CatPrint(buf," %d",tempg->width);
CatPrint(buf," %d",tempg->w.width);
break;
case SPT_TEXT:
case SPT_TEXT_BOX:
case SPT_TEXT_DIAMOND:
CatPrint(buf," %d,%d:%-16tQ",tempg->x1,tempg->y1,tempg->st);
CatPrint(buf," %d,%d:%-16tQ",tempg->ps.x1,tempg->ps.y1,tempg->ps.st);
break;
case SPT_POLYLINE:
case SPT_POLYPT:
ptr=&tempg->y1;
CatPrint(buf," %d (%d,%d)",tempg->num,ptr[0],ptr[1]);
ptr=&tempg->npu.x;
CatPrint(buf," %d (%d,%d)",tempg->npu.num,ptr[0],ptr[1]);
break;
case SPT_ELLIPSE:
case SPT_POLYGON:
case SPT_BITMAP:
CatPrint(buf," (%d,%d):%dW,%dH",tempg->x2,tempg->y2,tempg->width,tempg->height);
CatPrint(buf," (%d,%d):%dW,%dH",tempg->pwhu.x1,tempg->pwhu.y1,tempg->pwhu.width,tempg->pwhu.height);
break;
case SPT_BSPLINE2:
case SPT_BSPLINE3:
case SPT_BSPLINE2_CLOSED:
case SPT_BSPLINE3_CLOSED:
CatPrint(buf," %d",tempg->num);
CatPrint(buf," %d",tempg->nu.num);
break;
case SPT_MESH:
CatPrint(buf," %dV,%dT",tempg->vertex_cnt,tempg->tri_cnt);
CatPrint(buf," %dV,%dT",tempg->mu.vertex_cnt,tempg->mu.tri_cnt);
break;
case SPT_SHIFTABLE_MESH:
CatPrint(buf," %dV,%dT",tempg->shiftable_vertex_cnt,tempg->shiftable_tri_cnt);
CatPrint(buf," %dV,%dT",tempg->pmu.vertex_cnt,tempg->pmu.tri_cnt);
break;
}
return StrNew(buf);