CPicStatic::CPicStatic() { pPic=NULL; nFileSize=0; x=y=0; GetPic(); }
void SpriteChangePic( Sprite *s, int picid ) { int ma; s->picid = (char)picid; s->ori_data= GetPic( picid, &ma, &s->width, &s->height ); s->data = s->ori_data; s->flip_data=0; s->maxani = (char)ma; s->sz=s->width*s->height; if ( s->ani > s->maxani ) s->ani = 0; }
Sprite *CreateSprite( int picid, int ani, int x, int y ) { Sprite *s; int ma; s=malloc(sizeof(Sprite)); memset(s,0,sizeof(Sprite)); s->countdown = 5; s->counter1 = 0; s->counter2 = 0; s->type = TYP_WALKER; s->x = x; s->y = y; s->oldx = x; s->oldy = y; s->picid = (char)picid; s->ori_data= GetPic( picid, &ma, &s->width, &s->height ); s->data = s->ori_data; s->maxani = (char)ma; s->sz=s->width*s->height; if ( ani <= s->maxani ) s->ani = ani; s->next=0; s->pre=last; if ( s->pre ) s->pre->next = s; last=s; if ( !root ) root=s; return s; }
void ListPNames(void) { int i,k,AltPos2,AltCPos2; unsigned char Taste=0,Ente=0; for(;;) { Taste=getch(); if (Taste==27) { Marked=0; break; } if (Taste==60) { /* Go edit Texture, nur wenn... */ if (!EdPName) { if (!Marked) { Error(9); DisplayPNames(); } else break; } else { DeleteMarked(); /* Neue PNames markieren ! */ Print(27,10,5,15," ���������������������������������������������Ŀ "); Print(27,11,5,15," � Now mark all graphic resources you want � "); Print(27,12,5,15," � as new PNames. Graphics ONLY! � "); Print(27,13,5,15," ����������������������������������������������� "); getch(); AltPos2=Pos; AltCPos2=CPos; Pos=0; CPos=2; GetNewPName=1; ScreenAufbau(); Display(); MainSchleife(); if (Marked>0) { Entry=E; for (k=0,i=0;i<Entries;i++) { if (Entry->Mark==1) { strcpy(PName[PNames+k].Name,Entry->RName); PName[PNames+k].Num=i; k++; } Entry++; } PNames+=Marked; } DeleteMarked(); Pos=AltPos2; CPos=AltCPos2; GetNewPName=0; ScreenAufbau(); DisplayPNames(); } } if (Taste==45 && EdPName) { /* F3 - Delete PName(s) */ if (Marked>0) { for (i=0;i<PNames;i++) { Entry=E+PName[i].Num; if (Entry->Mark==1) PName[i].Num=9999; } } else { PName[Pos+CPos-2].Num=9999; } DeletePNames(); if (Pos>PNames-22) Pos=PNames-22; if (Pos<0) { Pos=0; CPos=2; } if (Pos+CPos-2>=PNames) CPos=PNames-Pos+2; if (CPos-2>=PNames) CPos=PNames+1; DisplayPNames(); Taste=0; Taste=0; DisplayPNames(); } if (Taste==68 && EdPName) { /* F10 - Save PName-Resource */ Print(27,10,5,15," � Save PNames Data (WAD/RAW) ����������������Ŀ "); Print(27,11,5,15," � Outfile: � "); Print(27,12,5,15," ����������������������������������������������� "); strcpy(DateiName2,"PNAMES.RAW"); Print(39,11,5,0,DateiName2); for (;;) { if (Eingabe2(39,11,5,0)<0) break; else CWeg(); if (!strchr(DateiName2,'.')) strcat(DateiName2,".RAW"); if (SavePNameRes()) { Taste=0; break; } } ScreenAufbau(); DisplayPNames(); if (Taste==0) break; } if (Taste==73) { Pos-=21; if (Pos<0) { Pos=0; CPos=2; } DisplayPNames(); Taste=0; } if (Taste==81) { Pos+=21; if (Pos>PNames) Pos-=21; if (Pos>PNames-22) { Pos=PNames-22; CPos=23; } if (Pos<0) { Pos=0; CPos=2; } DisplayPNames(); Taste=0; } if (Taste==72 && CPos==2 && Pos>0) { Pos--; DisplayPNames(); Taste=0; } if (Taste==80 && CPos==23) { Pos++; if (Pos>PNames-22) Pos=PNames-22; DisplayPNames(); Taste=0; } if (Taste==72 && CPos==2 && Pos==0) Taste=0; if (Taste==80 && Pos+CPos<PNames+1) { CPos++; DisplayPNames(); Taste=0; } if (Taste==72) { CPos--; DisplayPNames(); Taste=0; } if (Taste==79) { Pos=PNames-22; CPos=23; if (Pos<0) { Pos=0; CPos=PNames+1; } DisplayPNames(); } if (Taste==71) { Pos=0; CPos=2; DisplayPNames(); } if (Taste==13) { i=Pos; k=CPos; Pos=PName[Pos+CPos-2].Num-CPos+2; GetPic(); Pos=i; CPos=k; DisplayPNames(); } if ( ((Taste>94 && Taste<123) || (Taste>32 && Taste<58)) && SPos<8) { SuchStr[SPos]=Taste; SuchStr[SPos+1]=0; Print(27,22,0,15," "); Print(27,22,0,15,SuchStr); SPos++; if (SPos>0) PNameSuchen(); } if (Taste==8 && SPos>0) { SPos--; SuchStr[SPos]=0; Print(27,22,0,15," "); Print(27,22,0,15,SuchStr); if (SPos>0) PNameSuchen(); } if (Taste==32 && Marking==1 && Entry->RLength!=0) { Ente=0; if (Entry->Mark==1) { Ente=1; Entry->Mark=0; Marked--; } if (!Ente && Entry->Mark==0 && Marked<64) { Entry->Mark=1; Marked++; } if (Pos+CPos-1<=PNames && CPos<24) CPos++; if (CPos==24) { Pos++; CPos=23; } if (Pos>PNames-22) Pos=PNames-22; DisplayPNames(); } if (Taste==68 && Marking==1 && !EdPName) { DeleteMarked(); DisplayPNames(); } } SuchStr[0]=0; SPos=0; }