equal
deleted
inserted
replaced
692 void OnNewDay_DisasterVehicle(Vehicle *v) |
692 void OnNewDay_DisasterVehicle(Vehicle *v) |
693 { |
693 { |
694 // not used |
694 // not used |
695 } |
695 } |
696 |
696 |
697 typedef void DisasterInitProc(); |
697 typedef void DisasterInitProc(void); |
698 |
698 |
699 // Zeppeliner which crashes on a small airport |
699 // Zeppeliner which crashes on a small airport |
700 static void Disaster0_Init() |
700 static void Disaster0_Init(void) |
701 { |
701 { |
702 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
702 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
703 Station *st; |
703 Station *st; |
704 int x; |
704 int x; |
705 |
705 |
728 InitializeDisasterVehicle(u, x, 0, 0, 3, 1); |
728 InitializeDisasterVehicle(u, x, 0, 0, 3, 1); |
729 u->vehstatus |= VS_DISASTER; |
729 u->vehstatus |= VS_DISASTER; |
730 } |
730 } |
731 } |
731 } |
732 |
732 |
733 static void Disaster1_Init() |
733 static void Disaster1_Init(void) |
734 { |
734 { |
735 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
735 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
736 int x; |
736 int x; |
737 |
737 |
738 if (v == NULL) |
738 if (v == NULL) |
751 InitializeDisasterVehicle(u,x,0,0,3,3); |
751 InitializeDisasterVehicle(u,x,0,0,3,3); |
752 u->vehstatus |= VS_DISASTER; |
752 u->vehstatus |= VS_DISASTER; |
753 } |
753 } |
754 } |
754 } |
755 |
755 |
756 static void Disaster2_Init() |
756 static void Disaster2_Init(void) |
757 { |
757 { |
758 Industry *i, *found; |
758 Industry *i, *found; |
759 Vehicle *v,*u; |
759 Vehicle *v,*u; |
760 int x,y; |
760 int x,y; |
761 |
761 |
787 InitializeDisasterVehicle(u,x,y,0,3,5); |
787 InitializeDisasterVehicle(u,x,y,0,3,5); |
788 u->vehstatus |= VS_DISASTER; |
788 u->vehstatus |= VS_DISASTER; |
789 } |
789 } |
790 } |
790 } |
791 |
791 |
792 static void Disaster3_Init() |
792 static void Disaster3_Init(void) |
793 { |
793 { |
794 Industry *i, *found; |
794 Industry *i, *found; |
795 Vehicle *v,*u,*w; |
795 Vehicle *v,*u,*w; |
796 int x,y; |
796 int x,y; |
797 |
797 |
829 InitializeDisasterVehicle(w,x,y,140,5,8); |
829 InitializeDisasterVehicle(w,x,y,140,5,8); |
830 } |
830 } |
831 } |
831 } |
832 } |
832 } |
833 |
833 |
834 static void Disaster4_Init() |
834 static void Disaster4_Init(void) |
835 { |
835 { |
836 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
836 Vehicle *v = ForceAllocateSpecialVehicle(), *u; |
837 int x,y; |
837 int x,y; |
838 |
838 |
839 if (v == NULL) |
839 if (v == NULL) |
854 u->vehstatus |= VS_DISASTER; |
854 u->vehstatus |= VS_DISASTER; |
855 } |
855 } |
856 } |
856 } |
857 |
857 |
858 // Submarine type 1 |
858 // Submarine type 1 |
859 static void Disaster5_Init() |
859 static void Disaster5_Init(void) |
860 { |
860 { |
861 Vehicle *v = ForceAllocateSpecialVehicle(); |
861 Vehicle *v = ForceAllocateSpecialVehicle(); |
862 int x,y; |
862 int x,y; |
863 byte dir; |
863 byte dir; |
864 uint32 r; |
864 uint32 r; |
875 InitializeDisasterVehicle(v, x, y, 0, dir,13); |
875 InitializeDisasterVehicle(v, x, y, 0, dir,13); |
876 v->age = 0; |
876 v->age = 0; |
877 } |
877 } |
878 |
878 |
879 // Submarine type 2 |
879 // Submarine type 2 |
880 static void Disaster6_Init() |
880 static void Disaster6_Init(void) |
881 { |
881 { |
882 Vehicle *v = ForceAllocateSpecialVehicle(); |
882 Vehicle *v = ForceAllocateSpecialVehicle(); |
883 int x,y; |
883 int x,y; |
884 byte dir; |
884 byte dir; |
885 uint32 r; |
885 uint32 r; |
895 if (r & 0x80000000) { y = MapMaxX() * 16 - 8 - 1; dir = 7; } |
895 if (r & 0x80000000) { y = MapMaxX() * 16 - 8 - 1; dir = 7; } |
896 InitializeDisasterVehicle(v, x, y, 0, dir,14); |
896 InitializeDisasterVehicle(v, x, y, 0, dir,14); |
897 v->age = 0; |
897 v->age = 0; |
898 } |
898 } |
899 |
899 |
900 static void Disaster7_Init() |
900 static void Disaster7_Init(void) |
901 { |
901 { |
902 Industry *i; |
902 Industry *i; |
903 int maxloop = 15; |
903 int maxloop = 15; |
904 int index = Random() & 0xF; |
904 int index = Random() & 0xF; |
905 |
905 |
952 MK(75,110), |
952 MK(75,110), |
953 MK(50,85), |
953 MK(50,85), |
954 }; |
954 }; |
955 |
955 |
956 |
956 |
957 static void DoDisaster() |
957 static void DoDisaster(void) |
958 { |
958 { |
959 byte buf[8]; |
959 byte buf[8]; |
960 byte year = _cur_year; |
960 byte year = _cur_year; |
961 int i,j; |
961 int i,j; |
962 |
962 |
971 |
971 |
972 _disaster_initprocs[buf[(uint16)Random() * j >> 16]](); |
972 _disaster_initprocs[buf[(uint16)Random() * j >> 16]](); |
973 } |
973 } |
974 |
974 |
975 |
975 |
976 static void ResetDisasterDelay() |
976 static void ResetDisasterDelay(void) |
977 { |
977 { |
978 _disaster_delay = (int)(Random() & 0x1FF) + 730; |
978 _disaster_delay = (int)(Random() & 0x1FF) + 730; |
979 } |
979 } |
980 |
980 |
981 void DisasterDailyLoop() |
981 void DisasterDailyLoop(void) |
982 { |
982 { |
983 if (--_disaster_delay != 0) |
983 if (--_disaster_delay != 0) |
984 return; |
984 return; |
985 |
985 |
986 ResetDisasterDelay(); |
986 ResetDisasterDelay(); |
987 |
987 |
988 if (_opt.diff.disasters != 0) |
988 if (_opt.diff.disasters != 0) |
989 DoDisaster(); |
989 DoDisaster(); |
990 } |
990 } |
991 |
991 |
992 void StartupDisasters() { |
992 void StartupDisasters(void) |
|
993 { |
993 ResetDisasterDelay(); |
994 ResetDisasterDelay(); |
994 } |
995 } |
995 |
996 |