From 22abd663f0481ffe9e72a82720116132435e1657 Mon Sep 17 00:00:00 2001 From: TempleOS-bot Date: Tue, 31 Jan 2017 12:27:28 -0500 Subject: [PATCH] Nightly update (ISO SHA-1 41d4a06) --- TempleOSCD/0000Boot/0000Kernel.BIN.C | Bin 192080 -> 192080 bytes TempleOSCD/Adam/ADefine.HC | 4 +- TempleOSCD/Compiler/Compiler.BIN | Bin 192920 -> 192920 bytes TempleOSCD/Demo/AcctExample/Registry.HC | 2 +- TempleOSCD/Demo/Graphics/LightTable.HC | 87 +++++++++++++++--------- TempleOSCD/Doc/ChgLog.DD | 2 +- 6 files changed, 57 insertions(+), 38 deletions(-) diff --git a/TempleOSCD/0000Boot/0000Kernel.BIN.C b/TempleOSCD/0000Boot/0000Kernel.BIN.C index 019909b3c05a6aa76d5ad15e42ad8f6ad620d795..0f2b755bd95b061a4c84efee78363901bd893611 100644 GIT binary patch delta 209 zcmca`hx@`E?g=LB66Hc$uh?>LUdVEhc{2~o%Q(j5&EJwjm01kPi?P#)F={){Sw=&4Rt6B5 z?sSFGlV#^88OF(tu_D_SUt#RhW8#zDuFuRgQ<|B9fnob;Ii~q+j11eeRhh)f7>{pn Jn$2`B2mr9qNf`hD delta 206 zcmca`hx@`E?g=LBZhAp0uh?>LUdVEhc{2~o%Q!~)&EJwjm05K8WErO`6flZ!PHQ{L z$o$}(`ewb3yATFnSFa!Q|Ns9t&%5!CpNWBCbKi?*Mn%=&ppD|^+ zZxCZWBg^))L5%$3j4a#lW->k#W{lW=q?U273}eRjrdf=gMvURxdCoE#va|jNf$2_H z7(H1geUf3E+!!meeeo5>EQmZ HIu`^0;}uZ1 diff --git a/TempleOSCD/Adam/ADefine.HC b/TempleOSCD/Adam/ADefine.HC index 42b761a..7f0e4b6 100644 --- a/TempleOSCD/Adam/ADefine.HC +++ b/TempleOSCD/Adam/ADefine.HC @@ -18,8 +18,8 @@ U0 LoadDocDefines() //$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$ $TR-C,"LineRep"$ -$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,525"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,013"); +$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,545"); +DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,014"); $ID,-4$ DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR); DefinePrint("DD_MP_VECT_END","%08X", diff --git a/TempleOSCD/Compiler/Compiler.BIN b/TempleOSCD/Compiler/Compiler.BIN index 5101ae93df75b86702cb56e29c6a644f42659e88..d311658229bd2027e3323709d1ec9c9a99326fa2 100644 GIT binary patch delta 104 zcmbR7n0v-!?hOTsOhrnYixi(7Vzk{H`D8I8W69>fPmRnNOST)xFy@*uF)(bOAH?{n zh{d&mkzsm(43pUQ)khgUeK;9HJ-Xj`G{1?MdXY(Fdci+NmhGZKOlOo>85#K587FO# L*#6IiY1SS9Fvcby delta 105 zcmbR7n0v-!?hOTsO!@hnixi(7Vzk;E`D8I8qt52PPmRnNGqxMZFy@*u6$@^kAH?{n zh{dz}fXDOz878sqtB*2z`f$z)_2_=%(flT2>P04z=>`87S+7MN N3&-|p,&p); - D3Copy(&tmpp->v,&v); - - for (i=2;i<=9;i+=3) { - D3Mul(&n2,i,&n); - - tmpp=PhotonNew; - D3Add(&tmpp->p,&p,&n2); - D3Copy(&tmpp->v,&v); + if (x1!=x2 || y1!=y2) { + D3Equ(&p,x2,y2); + D3Equ(&v,x2-x1,y2-y1); + D3Unit(&v); + D3Equ(&n,v.y,-v.x); tmpp=PhotonNew; - D3Sub(&tmpp->p,&p,&n2); + D3Copy(&tmpp->p,&p); D3Copy(&tmpp->v,&v); + + for (i=2;i<=9;i+=3) { + D3Mul(&n2,i,&n); + + tmpp=PhotonNew; + D3Add(&tmpp->p,&p,&n2); + D3Copy(&tmpp->v,&v); + + tmpp=PhotonNew; + D3Sub(&tmpp->p,&p,&n2); + D3Copy(&tmpp->v,&v); + } } } @@ -133,8 +135,9 @@ U0 RandomBurst() U0 FindNormal(Photon *tmpp) { - CD3 p,p1,p2,v,s; - F64 é=Arg(tmpp->v.x,tmpp->v.y),è; + CD3 p,p1,p2; + F64 x,y,é=Arg(tmpp->v.x,tmpp->v.y),è; + I64 c; D3Copy(&tmpp->p_snell_inhibit,&tmpp->p); @@ -152,35 +155,49 @@ U0 FindNormal(Photon *tmpp) D3Div(&tmpp->p,&p,bmp_scale); //Draw an arc one direction, finding point of contact. - for (è=0;è<ã/2;è+=ã/bmp_norm_radius) { - D3Equ(&s,Cos(é+ã-ã/4-è),Sin(é+ã-ã/4-è)); - D3Mul(&v,bmp_norm_radius,&s); - D3Add(&p1,&p,&v); - if (BmpPeek(p1.x,p1.y)!=BLACK) + for (è=0;è<=ã/4;è+=0.125*ã/bmp_norm_radius) { + x=p.x+bmp_norm_radius*Cos(é+ã-ã/4-è); + y=p.y+bmp_norm_radius*Sin(é+ã-ã/4-è); + c=BmpPeek(x,y); + if (c!=BLACK) + break; + x=p.x+bmp_norm_radius*Cos(é+ã-ã/4+è); + y=p.y+bmp_norm_radius*Sin(é+ã-ã/4+è); + c=BmpPeek(x,y); + if (c!=BLACK) break; } - if (BmpPeek(p1.x,p1.y)!=WHITE) + if (c==WHITE) + D3Equ(&p1,x,y); + else D3Copy(&p1,&tmpp->p); //Draw an arc other direction, finding point of contact. - for (è=0;è<ã/2;è+=ã/bmp_norm_radius) { - D3Equ(&s,Cos(é+ã+ã/4+è),Sin(é+ã+ã/4+è)); - D3Mul(&v,bmp_norm_radius,&s); - D3Add(&p2,&p,&v); - if (BmpPeek(p2.x,p2.y)!=BLACK) + for (è=0;è<=ã/4;è+=0.125*ã/bmp_norm_radius) { + x=p.x+bmp_norm_radius*Cos(é+ã+ã/4-è); + y=p.y+bmp_norm_radius*Sin(é+ã+ã/4-è); + c=BmpPeek(x,y); + if (c!=BLACK) + break; + x=p.x+bmp_norm_radius*Cos(é+ã+ã/4+è); + y=p.y+bmp_norm_radius*Sin(é+ã+ã/4+è); + c=BmpPeek(x,y); + if (c!=BLACK) break; } - if (BmpPeek(p2.x,p2.y)!=WHITE) + if (c==WHITE) + D3Equ(&p2,x,y); + else D3Copy(&p2,&tmpp->p); - D3Sub(&s,&p1,&p2); - if (D3NormSqr(&s)<1.0) { + D3Sub(&p,&p1,&p2); + if (D3NormSqr(&p)<1.0) { D3Equ(&tmpp->n,Cos(é),Sin(é)); lock {zero_normal++;} } else { - D3Equ(&tmpp->n,s.y,-s.x); + D3Equ(&tmpp->n,p.y,-p.x); if (D3Dot(&tmpp->n,&tmpp->v)<0) - D3Equ(&tmpp->n,-s.y,s.x); + D3Equ(&tmpp->n,-p.y,p.x); D3Unit(&tmpp->n); } } @@ -494,6 +511,8 @@ lt_restart: case '\n': CleanUp; Init; + mode=LTM_LINE; + LTMenuSet(mode); break; case 'r': RandomBurst; diff --git a/TempleOSCD/Doc/ChgLog.DD b/TempleOSCD/Doc/ChgLog.DD index 2bef0b3..00ecc55 100644 --- a/TempleOSCD/Doc/ChgLog.DD +++ b/TempleOSCD/Doc/ChgLog.DD @@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$ Use $LK,"R",A="MN:R"$() to rename if I change a label. -$IV,1$----01/31/17 07:51:26----$IV,0$ +$IV,1$----01/31/17 08:57:31----$IV,0$ * Added $LK,"::/Demo/Graphics/LightTable.HC"$. * Added $LK,"TOS Linux Setup",A="FF:::/Demo/AcctExample/TOS/TOSPolicies.DD,TOS Linux Setup"$.