/************************************************************************ ** ** FILE : hakachange.c ** ** ZWECK : ** ** AUTOR : Michael C. Ancutici ** Universitaet Stuttgart, Fakultaet Informatik ** ** DATUM : 14.03.93 ** *************************************************************************/ #include "hakachange.h" #include "haka.H" #include "haka.h" #include "ka.h" #include "celltype.h" #include "hakadraw.h" #include "hakadelta.h" #include "hamess.h" #include "cellmisc.h" #include "ste.h" #include "tra.h" #include "kachange.h" #include "cellkaio.h" #include /************************************************************************* ** FUNKTION: HaKaChange_ST_STneg ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaKaChange_ST_STneg( SNr, TNr) int SNr, TNr; { HaKaDClearX( SNr, TNr); HaKaSTDrawX( SNr, TNr, ClearGC); KaKante[ SNr][ TNr].NachTrans->NegativKante = TRUE; HaKaSTDrawX( SNr, TNr, KaGC); HaKaDWriteX( SNr, TNr); } /************************************************************************* ** FUNKTION: HaKaChange_ST_TS ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaKaChange_ST_TS( SNr, TNr, DeltaNeu) int SNr, TNr; int DeltaNeu; { if ( (KaKante[ SNr][ TNr].NachStelle) ) { /* EXISTIERT GEGENKANTE */ HaMessage( HA_KA_EXIST); return; } HaKaDClearX( SNr, TNr); CellSTKaRemove( SNr, TNr); CellClearRL(); HaKaSTDrawX( SNr, TNr, ClearGC); /* AUS PIXMAP ENTFERNEN */ KaChangeTyp( SNr, TNr); /* RICHTUNG WECHSELN */ if (DeltaNeu != 0) KaKante[ SNr][ TNr].NachStelle->delta = DeltaNeu; HaKaTSDrawX( SNr, TNr, KaGC); /* NEUE KANTE ZEICHNEN */ CellTSKaInsert( SNr, TNr); HaKaDWriteX( SNr, TNr); } /************************************************************************* ** FUNKTION: HaKaChange_STneg_ST ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaKaChange_STneg_ST( SNr, TNr, DeltaNeu) int SNr, TNr; int DeltaNeu; { HaKaDClearX( SNr, TNr); if (DeltaNeu != 0) KaKante[ SNr][ TNr].NachTrans->delta = DeltaNeu; HaKaSTDrawX( SNr, TNr, ClearGC); KaKante[ SNr][ TNr].NachTrans->NegativKante = FALSE; HaKaSTDrawX( SNr, TNr, KaGC); HaKaDWriteX( SNr, TNr); } /************************************************************************* ** FUNKTION: HaKaChange_TS_ST ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaKaChange_TS_ST( SNr, TNr, DeltaNeu) int SNr, TNr; int DeltaNeu; { if ( (KaKante[ SNr][ TNr].NachTrans) ) { /* EXISTIERT GEGENKANTE */ HaMessage( HA_KA_EXIST); return; } HaKaDClearX( SNr, TNr); CellTSKaRemove( SNr, TNr); CellClearRL(); HaKaTSDrawX( SNr, TNr, ClearGC); /* AUS PIXMAP ENTFERNEN */ KaChangeTyp( SNr, TNr); /* RICHTUNG WECHSELN */ if (DeltaNeu != 0) KaKante[ SNr][ TNr].NachTrans->delta = DeltaNeu; HaKaSTDrawX( SNr, TNr, KaGC); /* NEUE KANTE ZEICHNEN */ CellSTKaInsert( SNr, TNr); HaKaDWriteX( SNr, TNr); } /************************************************************************* ** FUNKTION: HaKaChange_TS_STneg ** ZWECK: ** EINGABE: ** AUSGABE: ** RETURN: ** ANMERK: *************************************************************************/ void HaKaChange_TS_STneg( SNr, TNr) int SNr, TNr; { if ( (KaKante[ SNr][ TNr].NachTrans) ) { /* EXISTIERT GEGENKANTE */ HaMessage( HA_KA_EXIST); return; } HaKaDClearX( SNr, TNr); CellTSKaRemove( SNr, TNr); CellClearRL(); HaKaTSDrawX( SNr, TNr, ClearGC); /* AUS PIXMAP ENTFERNEN */ KaChangeTyp( SNr, TNr); /* RICHTUNG WECHSELN */ KaKante[ SNr][ TNr].NachTrans->NegativKante = TRUE; HaKaSTDrawX( SNr, TNr, KaGC); /* NEUE KANTE ZEICHNEN */ CellSTKaInsert( SNr, TNr); HaKaDWriteX( SNr, TNr); }