Beispiel #1
0
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;
}
Beispiel #4
0
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;
}