Damn "bad pics"
I ran the following script (attached to a misc. sprite) and the image (285) just flickered on the screen and disappeared:
void main(void)
{
if (&snow == 1)
{
int &direct
int &speed
int &asnow = create_sprite(-180, -110, 9, 285, 1);
int &bsnow = create_sprite(420, -110, 9, 285, 1);
int &csnow = create_sprite(1020, -110, 9, 285, 1);
int &dsnow = create_sprite(-180, 290, 9, 285, 1);
int &esnow = create_sprite(420, 290, 9, 285, 1);
int &fsnow = create_sprite(1020, 290, 9, 285, 1);
sp_que(&asnow, 500);
sp_que(&bsnow, 500);
sp_que(&csnow, 500);
sp_que(&dsnow, 500);
sp_que(&esnow, 500);
sp_que(&fsnow, 500);
freeze(&asnow);
freeze(&bsnow);
freeze(&csnow);
freeze(&dsnow);
freeze(&esnow);
freeze(&fsnow);
&speed = random(4,2);
sp_speed(&asnow, &speed);
sp_speed(&bsnow, &speed);
sp_speed(&csnow, &speed);
sp_speed(&dsnow, &speed);
sp_speed(&esnow, &speed);
sp_speed(&fsnow, &speed);
loop:
move(&asnow, 1, 420, 1);
move(&bsnow, 1, 1020, 1);
move(&csnow, 1, 1620, 1);
move(&dsnow, 1, 420, 1);
move(&esnow, 1, 1020, 1);
move_stop(&fsnow, 1, 1620, 1);
sp_x(&esnow, -180);
sp_y(&esnow, -110);
sp_x(&fsnow, 420);
sp_y(&fsnow, -110);
sp_x(&csnow, 1020);
sp_y(&csnow, -110);
sp_x(&dsnow, -180);
sp_y(&dsnow, 290);
move(&asnow, 1, 1020, 1);
move(&bsnow, 1, 1620, 1);
move(&csnow, 1, 1620, 1);
move(&dsnow, 1, 420, 1);
move(&esnow, 1, 420, 1);
move_stop(&fsnow, 1, 1020, 1);
sp_x(&asnow, -180);
sp_y(&asnow, -110);
sp_x(&bsnow, 420);
sp_y(&bsnow, -110);
sp_x(&csnow, 1020);
sp_y(&csnow, -110);
sp_x(&dsnow, -180);
sp_y(&dsnow, 290);
goto loop;
}
}
I ran debug mode and the following came up when this script began to run:
Dink:Screendraw: running main of script snow..
Dink:Script snow is entered at offset 345.
Dink:Compared 1 to 1
Dink:If returned true
Dink:Moving: Sprite 19, dir 1, num 420
Dink:Moving: Sprite 20, dir 1, num 1020
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 1020
Dink:Move_stop: Sprite 24, dir 1, num 1620
Dink:giving script the boot
Dink:Yo, sprite 19 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 20 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 21 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 22 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 23 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:DDERR_INVALIDOBJECT
Dink:
Dink:MainSpriteDraw(): Could not draw sprite 23, pic 0.
Dink:Box_crap: 400 257 400 257, Box_real: 0 0 0 0
Dink:Script snow is entered at offset 1443.
Dink:Moving: Sprite 19, dir 1, num 1020
Dink:Moving: Sprite 20, dir 1, num 1620
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 420
Dink:Move_stop: Sprite 24, dir 1, num 1020
Dink:giving script the boot
Dink:Script snow is entered at offset 1858.
Dink:Found goto : Line is loop:
, word is loop:.
Dink:Moving: Sprite 19, dir 1, num 420
Dink:Moving: Sprite 20, dir 1, num 1020
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 1020
Dink:Move_stop: Sprite 24, dir 1, num 1620
Dink:giving script the boot
and the last 17 lines of above keep repeating.
the real reason this is odd is because the following script works beautifully without changing a thing:
void main(void)
{
if (&snow == 1)
{
int &direct
int &speed
int &asnow = create_sprite(420, -110, 9, 285, 1);
int &bsnow = create_sprite(420, 290, 9, 285, 1);
sp_que(&asnow, 500);
sp_que(&bsnow, 500);
freeze(&asnow);
freeze(&bsnow);
&speed = random(4,2);
sp_speed(&asnow, &speed);
sp_speed(&bsnow, &speed);
loop:
move(&asnow, 2, 290, 1);
move_stop(&bsnow, 2, 690, 1);
sp_y(&bsnow, -110);
move(&bsnow, 2, 290, 1);
move_stop(&asnow, 2, 690, 1);
sp_y(&asnow, -110);
goto loop;
}
}
I can't work out what is wrong. Any help would be greatly appreciated.
void main(void)
{
if (&snow == 1)
{
int &direct
int &speed
int &asnow = create_sprite(-180, -110, 9, 285, 1);
int &bsnow = create_sprite(420, -110, 9, 285, 1);
int &csnow = create_sprite(1020, -110, 9, 285, 1);
int &dsnow = create_sprite(-180, 290, 9, 285, 1);
int &esnow = create_sprite(420, 290, 9, 285, 1);
int &fsnow = create_sprite(1020, 290, 9, 285, 1);
sp_que(&asnow, 500);
sp_que(&bsnow, 500);
sp_que(&csnow, 500);
sp_que(&dsnow, 500);
sp_que(&esnow, 500);
sp_que(&fsnow, 500);
freeze(&asnow);
freeze(&bsnow);
freeze(&csnow);
freeze(&dsnow);
freeze(&esnow);
freeze(&fsnow);
&speed = random(4,2);
sp_speed(&asnow, &speed);
sp_speed(&bsnow, &speed);
sp_speed(&csnow, &speed);
sp_speed(&dsnow, &speed);
sp_speed(&esnow, &speed);
sp_speed(&fsnow, &speed);
loop:
move(&asnow, 1, 420, 1);
move(&bsnow, 1, 1020, 1);
move(&csnow, 1, 1620, 1);
move(&dsnow, 1, 420, 1);
move(&esnow, 1, 1020, 1);
move_stop(&fsnow, 1, 1620, 1);
sp_x(&esnow, -180);
sp_y(&esnow, -110);
sp_x(&fsnow, 420);
sp_y(&fsnow, -110);
sp_x(&csnow, 1020);
sp_y(&csnow, -110);
sp_x(&dsnow, -180);
sp_y(&dsnow, 290);
move(&asnow, 1, 1020, 1);
move(&bsnow, 1, 1620, 1);
move(&csnow, 1, 1620, 1);
move(&dsnow, 1, 420, 1);
move(&esnow, 1, 420, 1);
move_stop(&fsnow, 1, 1020, 1);
sp_x(&asnow, -180);
sp_y(&asnow, -110);
sp_x(&bsnow, 420);
sp_y(&bsnow, -110);
sp_x(&csnow, 1020);
sp_y(&csnow, -110);
sp_x(&dsnow, -180);
sp_y(&dsnow, 290);
goto loop;
}
}
I ran debug mode and the following came up when this script began to run:
Dink:Screendraw: running main of script snow..
Dink:Script snow is entered at offset 345.
Dink:Compared 1 to 1
Dink:If returned true
Dink:Moving: Sprite 19, dir 1, num 420
Dink:Moving: Sprite 20, dir 1, num 1020
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 1020
Dink:Move_stop: Sprite 24, dir 1, num 1620
Dink:giving script the boot
Dink:Yo, sprite 19 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 20 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 21 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 22 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:Yo, sprite 23 has a bad pic. (Map 699) Seq 285, Frame 1
Dink:DDERR_INVALIDOBJECT
Dink:
Dink:MainSpriteDraw(): Could not draw sprite 23, pic 0.
Dink:Box_crap: 400 257 400 257, Box_real: 0 0 0 0
Dink:Script snow is entered at offset 1443.
Dink:Moving: Sprite 19, dir 1, num 1020
Dink:Moving: Sprite 20, dir 1, num 1620
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 420
Dink:Move_stop: Sprite 24, dir 1, num 1020
Dink:giving script the boot
Dink:Script snow is entered at offset 1858.
Dink:Found goto : Line is loop:
, word is loop:.
Dink:Moving: Sprite 19, dir 1, num 420
Dink:Moving: Sprite 20, dir 1, num 1020
Dink:Moving: Sprite 21, dir 1, num 1620
Dink:Moving: Sprite 22, dir 1, num 420
Dink:Moving: Sprite 23, dir 1, num 1020
Dink:Move_stop: Sprite 24, dir 1, num 1620
Dink:giving script the boot
and the last 17 lines of above keep repeating.
the real reason this is odd is because the following script works beautifully without changing a thing:
void main(void)
{
if (&snow == 1)
{
int &direct
int &speed
int &asnow = create_sprite(420, -110, 9, 285, 1);
int &bsnow = create_sprite(420, 290, 9, 285, 1);
sp_que(&asnow, 500);
sp_que(&bsnow, 500);
freeze(&asnow);
freeze(&bsnow);
&speed = random(4,2);
sp_speed(&asnow, &speed);
sp_speed(&bsnow, &speed);
loop:
move(&asnow, 2, 290, 1);
move_stop(&bsnow, 2, 690, 1);
sp_y(&bsnow, -110);
move(&bsnow, 2, 290, 1);
move_stop(&asnow, 2, 690, 1);
sp_y(&asnow, -110);
goto loop;
}
}
I can't work out what is wrong. Any help would be greatly appreciated.