/* Project 16 Source Code~
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123
*
* This file is part of Project 16.
*
* Project 16 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as publipage->shed by
+ * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You page->should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>, or
* write to the Free Software Foundation, Inc., 51 Franklin Street,
* Fifth Floor, Boston, MA 02110-1301 USA.
#include "src/lib/bakapee.h"
+/* clrstdin() clear any leftover chars tha may be in stdin stream */
+void clrstdin()
+{
+ int ch = 0;
+ while( ( ch = getchar() ) != '\n' && ch != EOF );
+}
+
//color \82Ä\82·\82Æ
void colortest(page_t *page, bakapee_t *pee)
{
//if(pee->coor < 256)
//{
- cls(page, pee->coor, VGA);
+ modexcls(page, pee->coor, VGA);
pee->coor++;
//}else pee->coor = 0;
}
{
if(pee->coor <= HGQ)
{
- cls(page, pee->coor, VGA);
+ modexcls(page, pee->coor, VGA);
pee->coor++;
}else pee->coor = LGQ;
}
//plot pixel or plot tile
void dingpp(page_t *page, bakapee_t *pee)
{
-#ifdef TILE
+ if(pee->tile)
+ {
#ifndef MXLIB
//fill_block(pee->xx, pee->yy, pee->xx+TILEWH, pee->yy+TILEWH, pee->coor);
- mxFillBox(pee->xx, pee->yy, TILEWH, TILEWH, pee->coor, OP_SET);
+ mxFillBox(pee->xx, pee->yy, TILEWH, TILEWH, pee->coor, OP_SET);
#else
- modexClearRegion(page, pee->xx, pee->yy, TILEWH, TILEWH, pee->coor);
-#endif
-#else
- modexputPixel(page, pee->xx, pee->yy, pee->coor);
+ modexClearRegion(page, pee->xx, pee->yy, TILEWH, TILEWH, pee->coor);
#endif
+ }
+ else
+ modexputPixel(page, pee->xx, pee->yy, pee->coor);
}
void dingo(page_t *page, bakapee_t *pee)
{
- #ifdef TILE
- if(pee->xx<0) pee->xx=(page->sw-TILEWH);
- if(pee->yy<0) pee->yy=(page->sh-TILEWH);
- if(pee->xx>(page->sw-TILEWH)) pee->xx=0;
- if(pee->yy>(page->sh-TILEWH)/*+(TILEWH*BUFFMX)*/) pee->yy=0;
- #else
- if(pee->xx<0) pee->xx=page->sw;
- if(pee->yy<0) pee->yy=page->sh;
- if(pee->xx>page->sw) pee->xx=0;
- if(pee->yy>page->sh) pee->yy=0;
- #endif
+ if(pee->tile)
+ {
+ if(pee->xx<0) pee->xx=(page->sw-TILEWH);
+ if(pee->yy<0) pee->yy=(page->sh-TILEWH);
+ if(pee->xx>(page->sw-TILEWH)) pee->xx=0;
+ if(pee->yy>(page->sh-TILEWH)/*+(TILEWH*BUFFMX)*/) pee->yy=0;
+ }
+ else
+ {
+ if(pee->xx<0) pee->xx=page->sw;
+ if(pee->yy<0) pee->yy=page->sh;
+ if(pee->xx>page->sw) pee->xx=0;
+ if(pee->yy>page->sh) pee->yy=0;
+ }
}
//assigning values from randomizer
if(pee->gq == BONK) dingu(pee);
if(!pee->bakax)
{
- #ifdef TILE
+ if(pee->tile)
pee->xx-=TILEWH;
- #else
- pee->xx--;
- #endif
+ else pee->xx--;
}
else if(pee->bakax>1)
{
- #ifdef TILE
+ if(pee->tile)
pee->xx+=TILEWH;
- #else
- pee->xx++;
- #endif
+ else pee->xx++;
}
if(!pee->bakay)
{
- #ifdef TILE
+ if(pee->tile)
pee->yy-=TILEWH;
- #else
- pee->yy--;
- #endif
+ else pee->yy--;
}
else if(pee->bakay>1)
{
- #ifdef TILE
+ if(pee->tile)
pee->yy+=TILEWH;
- #else
- pee->yy++;
- #endif
+ else pee->yy++;
}
}
dingas(pee);
dingo(page, pee);
dingpp(page, pee); //plot the pixel/tile
-#ifdef TILE
+ if(pee->tile)
modexClearRegion(page, (rand()*TILEWH)%page->width, (rand()*TILEWH)%(page->height), TILEWH, TILEWH, 0);
-#else
+ else
modexputPixel(page, rand()%page->width, rand()%page->height, 0);
-#endif
break;
case 3:
dingq(pee);
break;
case 6:
pee->coor = rand()%256;
- cls(page, pee->coor, VGA);
+ modexcls(page, pee->coor, VGA);
break;
case 7:
if(pee->coor <= HGQ)
break;
case 8:
colorz(page, pee);
- modexprint(page, page->sw/2, page->sh/2, 1, 47, 0, "bakapi", 1);
+ modexprint(page, page->sw/2, page->sh/2, 1, 47, 0, "bakapi");
break;
case 9:
if(pee->coor <= HGQ)
tx+=pee->xx+TILEWH+4;
ty+=pee->yy+TILEWH+4;
modexClearRegion(page, tx, ty, 4, 4, pee->coor);
-#ifdef TILE
+ if(pee->tile)
modexClearRegion(page, (rand()*TILEWH)%page->width, (rand()*TILEWH)%(page->height), TILEWH, TILEWH, 0);
-#else
+ else
modexputPixel(page, rand()%page->width, rand()%(page->height), 0);
-#endif
//printf("%d %d %d %d %d %d\n", pee->xx, pee->yy, tx, ty, TILEWH);
break;
default: